<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>131954</bug_id>
          
          <creation_ts>2014-04-21 14:45:15 -0700</creation_ts>
          <short_desc>[iOS WK2] Add test URL to crash reports for the UI process, clean up project</short_desc>
          <delta_ts>2014-04-30 14:57:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>aestes</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dfarler</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1002692</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-04-21 14:45:15 -0700</bug_when>
    <thetext>[iOS WK2] Add test URL to crash reports for the UI process, clean up project</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1002694</commentid>
    <comment_count>1</comment_count>
      <attachid>229836</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-04-21 14:47:56 -0700</bug_when>
    <thetext>Created attachment 229836
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1002752</commentid>
    <comment_count>2</comment_count>
      <attachid>229836</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-21 18:42:03 -0700</bug_when>
    <thetext>Comment on attachment 229836
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=229836&amp;action=review

&gt; Tools/WebKitTestRunner/cocoa/CrashReporterInfo.mm:26
&gt; +#import &quot;config.h&quot;

Where’s the include of CrashReporterInfo.h?

&gt; Tools/WebKitTestRunner/cocoa/CrashReporterInfo.mm:33
&gt; +#import &lt;wtf/text/WTFString.h&gt;

I don’t think you need this include if you’re including StringBuilder.h.

&gt; Tools/WebKitTestRunner/cocoa/CrashReporterInfo.mm:37
&gt; +using namespace WTF;

Should not need this.

&gt; Tools/WebKitTestRunner/cocoa/CrashReporterInfo.mm:48
&gt; +    String schemeString(schemeCFString.get());

Seems a shame to convert this CFStringRef to a WTF::String just to call equalIgnoringCase. Doesn’t CF have functions that can do that?

&gt; Tools/WebKitTestRunner/cocoa/CrashReporterInfo.mm:52
&gt; +        String layoutTests(&quot;/LayoutTests/&quot;);

Doesn’t seem like this should be a WTF::String. Should use a const char[] instead.

&gt; Tools/WebKitTestRunner/cocoa/CrashReporterInfo.mm:64
&gt; +    String hostString(hostCFString.get());

Doesn’t seem necessary to convert this to a WTF::String just to compare it with &quot;127.0.0.1&quot;.

&gt; Tools/WebKitTestRunner/cocoa/CrashReporterInfo.mm:74
&gt; +    if (!testPath.isNull()) {

I think early return is better.

&gt; Tools/WebKitTestRunner/cocoa/CrashReporterInfo.mm:78
&gt; +        StringBuilder builder;
&gt; +        builder.appendLiteral(&quot;CRASHING TEST: &quot;);
&gt; +        builder.append(testPath);
&gt; +        WKSetCrashReportApplicationSpecificInformation(builder.toString().createCFString().get());

No need for StringBuilder just to concatenate. Can write:

    WKSetCrashReportApplicationSpecificInformation((&quot;CRASHING TEST: &quot; + testPath).createCFString().get());</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1002875</commentid>
    <comment_count>3</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-04-22 07:00:32 -0700</bug_when>
    <thetext>*** Bug 131953 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005536</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-04-30 14:57:25 -0700</bug_when>
    <thetext>https://trac.webkit.org/r168045</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229836</attachid>
            <date>2014-04-21 14:47:56 -0700</date>
            <delta_ts>2014-04-21 18:42:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131954-20140421144734.patch</filename>
            <type>text/plain</type>
            <size>53120</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3NTkzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDZjNzM3NTI5NDIwOTdkYjBjMjhmY2U5ZjgyMmUyMTUw
NWY0N2UwMC4uMDY5Y2Q2NWQwZGQ2N2I3ZTdhZmQ4MzcyNDU3MjdiZTRkYzM5YzQ2ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4
IEBACisyMDE0LTA0LTIxICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFtpT1MgV0syXSBBZGQgdGVzdCBVUkwgdG8gY3Jhc2ggcmVwb3J0cyBmb3IgdGhl
IFVJIHByb2Nlc3MsIGNsZWFuIHVwIHByb2plY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTk1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciB3YXMgYWRkaW5n
IGFwcGxpY2F0aW9uLXNwZWNpZmljIGluZm9ybWF0aW9uIHRvIGNyYXNoIHJlcG9ydHMKKyAgICAg
ICAgdG8gbG9nIHRoZSB0ZXN0IHBhdGgsIGJ1dCBvbmx5IGluIHRoZSB3ZWIgcHJvY2Vzcy4gRml4
IGl0IHRvIGFsc28gZG8gdGhpcworICAgICAgICBmb3IgdGhlIFVJIHByb2Nlc3MsIGZvciBib3Ro
IGlPUyBhbmQgT1MgWC4KKyAgICAgICAgCisgICAgICAgIE1vdmVkIEluamVjdGVkQnVuZGxlUGFn
ZU1hYy5tbSB0byBJbmplY3RlZEJ1bmRsZVBhZ2VDb2NvYS5tbSBhbmQgY29tcGlsZSBpdCBmb3IK
KyAgICAgICAgYm90aCBpT1MgYW5kIE9TIFguCisgICAgICAgIAorICAgICAgICBGYWN0b3JlZCBj
cmFzaCByZXByb3J0ZXItcmVsYXRlZCBjb2RlIGludG8gQ3Jhc2hSZXBvcnRlckluZm8sIGFuZCBj
YWxsIGl0IGZyb20KKyAgICAgICAgYSBuZXcgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtV2lsbFJ1
blRlc3QoKSBmdW5jdGlvbiBvbiBNYWMgYW5kIGlPUy4KKyAgICAgICAgCisgICAgICAgIEFsc28g
cmVtb3ZlIFhjb2RlLWFkZGVkIHVuaXQgdGVzdCBqdW5rIGZyb20gdGhlIHByb2plY3QuCisKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2NvY29hL0luamVjdGVkQnVu
ZGxlUGFnZUNvY29hLm1tOiBDb3BpZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL2lvcy9JbmplY3RlZEJ1bmRsZVBhZ2VJT1MubW0uCisgICAgICAgIChXVFI6Oklu
amVjdGVkQnVuZGxlUGFnZTo6cGxhdGZvcm1EaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnJ1blRlc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OnVybCk6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzL1dlYktp
dFRlc3RSdW5uZXJBcHBUZXN0cy1JbmZvLnBsaXN0OiBSZW1vdmVkLgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzL1dlYktpdFRlc3RSdW5uZXJBcHBU
ZXN0cy5tOiBSZW1vdmVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1
bm5lckFwcFRlc3RzL2VuLmxwcm9qL0luZm9QbGlzdC5zdHJpbmdzOiBSZW1vdmVkLgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvY29jb2EvQ3Jhc2hSZXBvcnRlckluZm8uaDogUmVuYW1lZCBm
cm9tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0luamVjdGVkQnVu
ZGxlUGFnZUlPUy5tbS4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL0NyYXNoUmVw
b3J0ZXJJbmZvLm1tOiBSZW5hbWVkIGZyb20gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVQYWdlTWFjLm1tLgorICAgICAgICAoV1RSOjp0ZXN0
UGF0aEZyb21VUkwpOgorICAgICAgICAoV1RSOjpzZXRDcmFzaFJlcG9ydEFwcGxpY2F0aW9uU3Bl
Y2lmaWNJbmZvcm1hdGlvblRvVVJMKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2VmbC9U
ZXN0Q29udHJvbGxlckVmbC5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0
Zm9ybVdpbGxSdW5UZXN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2d0ay9UZXN0Q29u
dHJvbGxlckd0ay5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVdp
bGxSdW5UZXN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29udHJvbGxl
cklPUy5tbToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtV2lsbFJ1blRl
c3QpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0SGlkZGVuKToKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdU
Ujo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtV2lsbFJ1blRlc3QpOgorCiAyMDE0LTA0LTIxICBE
YXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgSGFzaFNldDo6dGFr
ZUFueQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9j
b2NvYS9JbmplY3RlZEJ1bmRsZVBhZ2VDb2NvYS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvY29jb2EvSW5qZWN0ZWRCdW5kbGVQYWdlQ29jb2EubW0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmZmOGUzNzJmYTJkOTc3MmM1ZTA0NjgyYjE5MDk2ZDUxMmU4ZTM0ZAotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvY29jb2EvSW5qZWN0
ZWRCdW5kbGVQYWdlQ29jb2EubW0KQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgImNvbmZpZy5oIgorI2ltcG9ydCAiSW5qZWN0ZWRCdW5kbGVQYWdlLmgiCisKKyNpbXBvcnQg
IkNyYXNoUmVwb3J0ZXJJbmZvLmgiCisjaW1wb3J0IDxXZWJLaXQyL1dLQnVuZGxlRnJhbWUuaD4K
KyNpbXBvcnQgPFdlYktpdDIvV0tVUkxDRi5oPgorCituYW1lc3BhY2UgV1RSIHsKKwordXNpbmcg
bmFtZXNwYWNlIFdURjsKKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnBsYXRmb3JtRGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lKQoreworICAg
IGlmICghV0tCdW5kbGVGcmFtZUlzTWFpbkZyYW1lKGZyYW1lKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IG1haW5GcmFtZVVSTCA9IGFkb3B0V0soV0tCdW5k
bGVGcmFtZUNvcHlQcm92aXNpb25hbFVSTChmcmFtZSkpOworICAgIHNldENyYXNoUmVwb3J0QXBw
bGljYXRpb25TcGVjaWZpY0luZm9ybWF0aW9uVG9VUkwobWFpbkZyYW1lVVJMLmdldCgpKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL2lvcy9JbmplY3RlZEJ1bmRsZVBhZ2VJT1MubW0gYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9JbmplY3RlZEJ1bmRsZVBhZ2VJT1MubW0K
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkZDM4OTMwYjUzYTUzYmQxZTE0OTU5NDM1
ZGE3MDg0MjNkYWVmMzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvSW5qZWN0ZWRC
dW5kbGVQYWdlSU9TLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiSW5qZWN0ZWRCdW5kbGVQYWdlLmgiCi0K
LSNpbXBvcnQgIlN0cmluZ0Z1bmN0aW9ucy5oIgotI2ltcG9ydCA8V2ViS2l0Mi9XS0J1bmRsZUZy
YW1lLmg+Ci0jaW1wb3J0IDxXZWJLaXQyL1dLVVJMQ0YuaD4KLSNpbXBvcnQgPFdlYktpdFN5c3Rl
bUludGVyZmFjZS5oPgotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgotI2ltcG9ydCA8d3RmL3Rl
eHQvU3RyaW5nQnVpbGRlci5oPgotI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5h
bWVzcGFjZSBXVFIgewotCi11c2luZyBuYW1lc3BhY2UgV1RGOwotCi12b2lkIEluamVjdGVkQnVu
ZGxlUGFnZTo6cGxhdGZvcm1EaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLQnVuZGxl
RnJhbWVSZWYpCi17Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVQYWdlTWFj
Lm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRC
dW5kbGVQYWdlTWFjLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZGE2ODkwYzlh
NmUwNGIwMWE5MWQ4MTExYTdjOWE2NDk0MmI0N2YxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvbWFjL0luamVjdGVkQnVuZGxlUGFnZU1hYy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDg5ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIkluamVjdGVk
QnVuZGxlUGFnZS5oIgotCi0jaW1wb3J0ICJTdHJpbmdGdW5jdGlvbnMuaCIKLSNpbXBvcnQgPFdl
YktpdDIvV0tCdW5kbGVGcmFtZS5oPgotI2ltcG9ydCA8V2ViS2l0Mi9XS1VSTENGLmg+Ci0jaW1w
b3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KLSNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
LSNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KLSNpbXBvcnQgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV1RSIHsKLQotdXNpbmcgbmFtZXNwYWNlIFdURjsKLQot
c3RhdGljIFN0cmluZyB0ZXN0UGF0aEZyb21VUkwoV0tVUkxSZWYgdXJsKQotewotICAgIFJldGFp
blB0cjxDRlVSTFJlZj4gY2ZVUkwgPSBhZG9wdENGKFdLVVJMQ29weUNGVVJMKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIHVybCkpOwotICAgIGlmICghY2ZVUkwpCi0gICAgICAgIHJldHVybiBTdHJpbmco
KTsKLQotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc2NoZW1lQ0ZTdHJpbmcgPSBhZG9wdENG
KENGVVJMQ29weVNjaGVtZShjZlVSTC5nZXQoKSkpOwotICAgIFJldGFpblB0cjxDRlN0cmluZ1Jl
Zj4gcGF0aENGU3RyaW5nID0gYWRvcHRDRihDRlVSTENvcHlQYXRoKGNmVVJMLmdldCgpKSk7Ci0K
LSAgICBTdHJpbmcgc2NoZW1lU3RyaW5nKHNjaGVtZUNGU3RyaW5nLmdldCgpKTsKLSAgICBTdHJp
bmcgcGF0aFN0cmluZyhwYXRoQ0ZTdHJpbmcuZ2V0KCkpOwotICAgIAotICAgIGlmIChlcXVhbEln
bm9yaW5nQ2FzZShzY2hlbWVTdHJpbmcsICJmaWxlIikpIHsKLSAgICAgICAgU3RyaW5nIGxheW91
dFRlc3RzKCIvTGF5b3V0VGVzdHMvIik7Ci0gICAgICAgIHNpemVfdCBsYXlvdXRUZXN0c09mZnNl
dCA9IHBhdGhTdHJpbmcuZmluZChsYXlvdXRUZXN0cyk7Ci0gICAgICAgIGlmIChsYXlvdXRUZXN0
c09mZnNldCA9PSBub3RGb3VuZCkKLSAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAg
ICAgICByZXR1cm4gcGF0aFN0cmluZy5zdWJzdHJpbmcobGF5b3V0VGVzdHNPZmZzZXQgKyBsYXlv
dXRUZXN0cy5sZW5ndGgoKSk7Ci0gICAgfQotCi0gICAgaWYgKCFlcXVhbElnbm9yaW5nQ2FzZShz
Y2hlbWVTdHJpbmcsICJodHRwIikgJiYgIWVxdWFsSWdub3JpbmdDYXNlKHNjaGVtZVN0cmluZywg
Imh0dHBzIikpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgIFJldGFpblB0cjxDRlN0
cmluZ1JlZj4gaG9zdENGU3RyaW5nID0gYWRvcHRDRihDRlVSTENvcHlIb3N0TmFtZShjZlVSTC5n
ZXQoKSkpOwotICAgIFN0cmluZyBob3N0U3RyaW5nKGhvc3RDRlN0cmluZy5nZXQoKSk7Ci0gICAg
aWYgKGhvc3RTdHJpbmcgPT0gIjEyNy4wLjAuMSIgICYmIChDRlVSTEdldFBvcnROdW1iZXIoY2ZV
UkwuZ2V0KCkpID09IDgwMDAgfHwgQ0ZVUkxHZXRQb3J0TnVtYmVyKGNmVVJMLmdldCgpKSA9PSA4
NDQzKSkKLSAgICAgICAgcmV0dXJuIHBhdGhTdHJpbmc7Ci0KLSAgICByZXR1cm4gU3RyaW5nKCk7
Ci19Ci0KLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpwbGF0Zm9ybURpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSkKLXsKLSAgICBpZiAoIVdLQnVu
ZGxlRnJhbWVJc01haW5GcmFtZShmcmFtZSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFdLUmV0
YWluUHRyPFdLVVJMUmVmPiBtYWluRnJhbWVVUkwgPSBhZG9wdFdLKFdLQnVuZGxlRnJhbWVDb3B5
UHJvdmlzaW9uYWxVUkwoZnJhbWUpKTsKLSAgICAKLSAgICBTdHJpbmcgdGVzdFBhdGggPSB0ZXN0
UGF0aEZyb21VUkwobWFpbkZyYW1lVVJMLmdldCgpKTsKLSAgICBpZiAoIXRlc3RQYXRoLmlzTnVs
bCgpKSB7Ci0gICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5h
cHBlbmRMaXRlcmFsKCJDUkFTSElORyBURVNUOiAiKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQo
dGVzdFBhdGgpOwotICAgICAgICBXS1NldENyYXNoUmVwb3J0QXBwbGljYXRpb25TcGVjaWZpY0lu
Zm9ybWF0aW9uKGJ1aWxkZXIudG9TdHJpbmcoKS5jcmVhdGVDRlN0cmluZygpLmdldCgpKTsKLSAg
ICB9Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcAppbmRleCAxNmEyYzQ0ZjQ5YTk0ZTI4NzBhNmMwNThkZTdjZmEwNzA3ODRj
NzQzLi43ODZlMWExMzg4ZTczMTllZTA3MDY1ODRhMzdhYjNmM2I0ZDdlMmZkIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtNzU0LDYgKzc1NCw4IEBAIGJv
b2wgVGVzdENvbnRyb2xsZXI6OnJ1blRlc3QoY29uc3QgY2hhciogaW5wdXRMaW5lKQogICAgIGlm
IChjb21tYW5kLnRpbWVvdXQgPiAwKQogICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5zZXRD
dXN0b21UaW1lb3V0KGNvbW1hbmQudGltZW91dCk7CiAKKyAgICBwbGF0Zm9ybVdpbGxSdW5UZXN0
KCptX2N1cnJlbnRJbnZvY2F0aW9uKTsKKwogICAgIG1fY3VycmVudEludm9jYXRpb24tPmludm9r
ZSgpOwogICAgIG1fY3VycmVudEludm9jYXRpb24uY2xlYXIoKTsKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDllMWM3NTI5NDEyODc0MzU4MmNhNGYwNGMwNTA1
OGYzOTRjYzhhZWMuLjkwOGY1YWYyNDE5ZmFhYzdhZTgwNjBiZGEzNWY2MmM4YzdmNjY4NmMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTExNyw2ICsxMTcsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiAgICAgdm9pZCBwbGF0
Zm9ybURlc3Ryb3koKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZUNvbnRleHQoKTsKKyAg
ICB2b2lkIHBsYXRmb3JtV2lsbFJ1blRlc3QoY29uc3QgVGVzdEludm9jYXRpb24mKTsKICAgICB2
b2lkIHBsYXRmb3JtUnVuVW50aWwoYm9vbCYgZG9uZSwgZG91YmxlIHRpbWVvdXQpOwogICAgIHZv
aWQgcGxhdGZvcm1EaWRDb21taXRMb2FkRm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmKTsK
ICAgICB2b2lkIGluaXRpYWxpemVJbmplY3RlZEJ1bmRsZVBhdGgoKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggNjA5YTdmNDhiMzNhMGM3ZTIwNzU2M2Zi
ZGZiNDVkMWU4NzdiNjMyNC4uNWU3NmYzOWQ1YmZiZTg0MGMwZDdiZjhjY2VjM2JmMzEyYWMwMGMz
NSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTEwNiw2
ICsxMDYsMTEgQEAgVGVzdEludm9jYXRpb246On5UZXN0SW52b2NhdGlvbigpCiB7CiB9CiAKK1dL
VVJMUmVmIFRlc3RJbnZvY2F0aW9uOjp1cmwoKSBjb25zdAoreworICAgIHJldHVybiBtX3VybC5n
ZXQoKTsKK30KKwogdm9pZCBUZXN0SW52b2NhdGlvbjo6c2V0SXNQaXhlbFRlc3QoY29uc3Qgc3Rk
OjpzdHJpbmcmIGV4cGVjdGVkUGl4ZWxIYXNoKQogewogICAgIG1fZHVtcFBpeGVscyA9IHRydWU7
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmggYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgKaW5kZXggYTMyNjc4MTM1NWE4
MmVhMmZkNTY5MDY2MzRiNWQ1YjE4OTExZTAxYi4uN2FiOTAyMjk4NGNiYjkzZWJlY2Y1YTc0Yjcy
YmZlMDBiMmY3MjI1NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaApA
QCAtNDAsNiArNDAsOCBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgVGVzdEludm9jYXRpb24oY29u
c3Qgc3RkOjpzdHJpbmcmIHBhdGhPclVSTCk7CiAgICAgflRlc3RJbnZvY2F0aW9uKCk7CiAKKyAg
ICBXS1VSTFJlZiB1cmwoKSBjb25zdDsKKwogICAgIHZvaWQgc2V0SXNQaXhlbFRlc3QoY29uc3Qg
c3RkOjpzdHJpbmcmIGV4cGVjdGVkUGl4ZWxIYXNoKTsKIAogICAgIHZvaWQgc2V0Q3VzdG9tVGlt
ZW91dChpbnQgZHVyYXRpb24pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9X
ZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBjYjg4NDUwZTJhZGE4YTk5ZmU4MzdjNTE1MWVhMjY0OTM1ODZlMTFlLi5jNzJiY2NkYjMyMjQ5
N2E0NDhhY2NmNGViYWIxZTMxYWVhODk2NmY2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMjMsNyArMjMsMTAgQEAKIC8qIEJlZ2luIFBCWEJ1aWxkRmlsZSBzZWN0aW9u
ICovCiAJCTBGNTE2OUNCMTQ0NTIyMkQwMEUwQTlENyAvKiBXZWJLaXQuZnJhbWV3b3JrIGluIEZy
YW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1MTY5Q0ExNDQ1
MjIyRDAwRTBBOUQ3IC8qIFdlYktpdC5mcmFtZXdvcmsgKi87IH07CiAJCTBGNTE2OUNDMTQ0NTIy
MkQwMEUwQTlENyAvKiBXZWJLaXQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1MTY5Q0ExNDQ1MjIyRDAwRTBBOUQ3IC8qIFdlYktp
dC5mcmFtZXdvcmsgKi87IH07Ci0JCTBGQUY2N0VGMTYwRDZDMTAwMDc3Q0IyQiAvKiBJbmplY3Rl
ZEJ1bmRsZVBhZ2VNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRkFGNjdFRTE2MEQ2QzEwMDA3N0NCMkIgLyogSW5qZWN0ZWRCdW5kbGVQYWdlTWFj
Lm1tICovOyB9OworCQkwRkVCOTBBMDE5MDVBODM0MDAwRkRCRjMgLyogSW5qZWN0ZWRCdW5kbGVQ
YWdlQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkVCOTA5RTE5MDVBNzc2MDAwRkRCRjMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29jb2EubW0g
Ki87IH07CisJCTBGRUI5MEE1MTkwNUMwMTYwMDBGREJGMyAvKiBDcmFzaFJlcG9ydGVySW5mby5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUI5MEEz
MTkwNUJDNkEwMDBGREJGMyAvKiBDcmFzaFJlcG9ydGVySW5mby5tbSAqLzsgfTsKKwkJMEZFQjkw
QTgxOTA1QzUzNzAwMEZEQkYzIC8qIENyYXNoUmVwb3J0ZXJJbmZvLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQjkwQTMxOTA1QkM2QTAwMEZEQkYz
IC8qIENyYXNoUmVwb3J0ZXJJbmZvLm1tICovOyB9OworCQkwRkVCOTBBOTE5MDVDNTQ4MDAwRkRC
RjMgLyogQ3Jhc2hSZXBvcnRlckluZm8ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRkVCOTBBMzE5MDVCQzZBMDAwRkRCRjMgLyogQ3Jhc2hSZXBvcnRl
ckluZm8ubW0gKi87IH07CiAJCTI2RDc1OEU3MTYwQkVDREQwMDI2ODQ3MiAvKiBHZW9sb2NhdGlv
blByb3ZpZGVyTW9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyNkQ3NThFNTE2MEJFQ0RDMDAyNjg0NzIgLyogR2VvbG9jYXRpb25Qcm92aWRlck1v
Y2suY3BwICovOyB9OwogCQkyOTIxMEVBRTE0NENBQ0I3MDA4MzVCQjUgLyogQWNjZXNzaWJpbGl0
eVVJRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyOTIxMEVBOTE0NENBQ0IyMDA4MzVCQjUgLyogQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5j
cHAgKi87IH07CiAJCTI5MjEwRUIwMTQ0Q0FDQkQwMDgzNUJCNSAvKiBBY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyOTIxMEVBMjE0NENBQUE1MDA4MzVCQjUgLyogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3Bw
ICovOyB9OwpAQCAtNDMsNyArNDYsNiBAQAogCQkyRTYzRUQ4RDE4OTFBRDdFMDAyQTdBRkMgLyog
QWN0aXZhdGVGb250c0lPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJFNjNFRDc5MTg5MUFDRTkwMDJBN0FGQyAvKiBBY3RpdmF0ZUZvbnRzSU9TLm1t
ICovOyB9OwogCQkyRTYzRUQ4RTE4OTFBRDdFMDAyQTdBRkMgLyogRXZlbnRTZW5kZXJQcm94eUlP
Uy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNjNF
RDdBMTg5MUFDRTkwMDJBN0FGQyAvKiBFdmVudFNlbmRlclByb3h5SU9TLm1tICovOyB9OwogCQky
RTYzRUQ4RjE4OTFBRDdFMDAyQTdBRkMgLyogSW5qZWN0ZWRCdW5kbGVJT1MubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTYzRUQ3QjE4OTFBQ0U5MDAy
QTdBRkMgLyogSW5qZWN0ZWRCdW5kbGVJT1MubW0gKi87IH07Ci0JCTJFNjNFRDkwMTg5MUFEN0Uw
MDJBN0FGQyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTYzRUQ3QzE4OTFBQ0U5MDAyQTdBRkMgLyogSW5q
ZWN0ZWRCdW5kbGVQYWdlSU9TLm1tICovOyB9OwogCQkyRTYzRUQ5MTE4OTFBREFEMDAyQTdBRkMg
LyogUGxhdGZvcm1XZWJWaWV3SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkVFNTJEMTMxODkwQTlGQjAwMTBFRDIxIC8qIFBsYXRmb3JtV2ViVmll
d0lPUy5tbSAqLzsgfTsKIAkJMkU2M0VEOTIxODkxQURBRDAwMkE3QUZDIC8qIFRlc3RDb250cm9s
bGVySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkVFNTJEMTQxODkwQTlGQjAwMTBFRDIxIC8qIFRlc3RDb250cm9sbGVySU9TLm1tICovOyB9Owog
CQkyRTYzRUQ5NDE4OTFBREFEMDAyQTdBRkMgLyogbWFpbklPUy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRTUyRDE2MTg5MEE5RkIwMDEwRUQyMSAv
KiBtYWluSU9TLm1tICovOyB9OwpAQCAtNjUsMTIgKzY3LDYgQEAKIAkJMkVFNTJDRTUxODkwQTlB
ODAwMTBFRDIxIC8qIENvcmVHcmFwaGljcy5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUU1MkNFNDE4OTBBOUE4MDAxMEVEMjEgLyog
Q29yZUdyYXBoaWNzLmZyYW1ld29yayAqLzsgfTsKIAkJMkVFNTJDRTcxODkwQTlBODAwMTBFRDIx
IC8qIFVJS2l0LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJFRTUyQ0U2MTg5MEE5QTgwMDEwRUQyMSAvKiBVSUtpdC5mcmFtZXdvcmsg
Ki87IH07CiAJCTJFRTUyQ0VEMTg5MEE5QTgwMDEwRUQyMSAvKiBJbmZvUGxpc3Quc3RyaW5ncyBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVFNTJDRUIx
ODkwQTlBODAwMTBFRDIxIC8qIEluZm9QbGlzdC5zdHJpbmdzICovOyB9OwotCQkyRUU1MkNGQzE4
OTBBOUE5MDAxMEVEMjEgLyogWENUZXN0LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRTUyQ0ZCMTg5MEE5QTkwMDEwRUQyMSAvKiBY
Q1Rlc3QuZnJhbWV3b3JrICovOyB9OwotCQkyRUU1MkNGRDE4OTBBOUE5MDAxMEVEMjEgLyogRm91
bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRUU1MkNFMjE4OTBBOUE4MDAxMEVEMjEgLyogRm91bmRhdGlvbi5mcmFtZXdv
cmsgKi87IH07Ci0JCTJFRTUyQ0ZFMTg5MEE5QTkwMDEwRUQyMSAvKiBVSUtpdC5mcmFtZXdvcmsg
aW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUU1MkNF
NjE4OTBBOUE4MDAxMEVEMjEgLyogVUlLaXQuZnJhbWV3b3JrICovOyB9OwotCQkyRUU1MkQwNjE4
OTBBOUE5MDAxMEVEMjEgLyogSW5mb1BsaXN0LnN0cmluZ3MgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRTUyRDA0MTg5MEE5QTkwMDEwRUQyMSAvKiBJ
bmZvUGxpc3Quc3RyaW5ncyAqLzsgfTsKLQkJMkVFNTJEMDgxODkwQTlBOTAwMTBFRDIxIC8qIFdl
YktpdFRlc3RSdW5uZXJBcHBUZXN0cy5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkVFNTJEMDcxODkwQTlBOTAwMTBFRDIxIC8qIFdlYktpdFRlc3RSdW5u
ZXJBcHBUZXN0cy5tICovOyB9OwotCQkyRUU1MkQxMTE4OTBBOUJCMDAxMEVEMjEgLyogV2ViS2l0
VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlLmJ1bmRsZSBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyNTE4NjIxMUQxNUQ1NDAwMkVCQzAxIC8qIFdlYktp
dFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZS5idW5kbGUgKi87IH07CiAJCTMxNjRDOEYwMTVEMUFE
QTEwMEVGMUZFMCAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTY0QzhFRjE1RDFBREExMDBFRjFGRTAg
LyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwICovOyB9OwogCQk0NDI5RkM1RjE2MjcwODk2
MDBGNjZEOEIgLyogV29ya1F1ZXVlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDI5RkM1RTE2MjcwODk2MDBGNjZEOEIgLyogV29ya1F1
ZXVlTWFuYWdlci5jcHAgKi87IH07CiAJCTUzMjJGQjQzMTNGREEwQ0QwMDQxQUJDQyAvKiBDeWNs
aWNSZWR1bmRhbmN5Q2hlY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTMyMkZCNDExM0ZEQTBDRDAwNDFBQkNDIC8qIEN5Y2xpY1JlZHVuZGFuY3lD
aGVjay5jcHAgKi87IH07CkBAIC0xMzEsMTMgKzEyNyw2IEBACiAJCQlyZW1vdGVHbG9iYWxJRFN0
cmluZyA9IEJDMjUxODYxMTFEMTVENTQwMDJFQkMwMTsKIAkJCXJlbW90ZUluZm8gPSBXZWJLaXRU
ZXN0UnVubmVySW5qZWN0ZWRCdW5kbGU7CiAJCX07Ci0JCTJFRTUyQ0ZGMTg5MEE5QTkwMDEwRUQy
MSAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7Ci0JCQlpc2EgPSBQQlhDb250YWluZXJJ
dGVtUHJveHk7Ci0JCQljb250YWluZXJQb3J0YWwgPSAwOEZCNzc5M0ZFODQxNTVEQzAyQUFDMDcg
LyogUHJvamVjdCBvYmplY3QgKi87Ci0JCQlwcm94eVR5cGUgPSAxOwotCQkJcmVtb3RlR2xvYmFs
SURTdHJpbmcgPSAyRUU1MkNERjE4OTBBOUE4MDAxMEVEMjE7Ci0JCQlyZW1vdGVJbmZvID0gV2Vi
S2l0VGVzdFJ1bm5lckFwcDsKLQkJfTsKIAkJQkMyNTE5NDExMUQxNUQ5NDAwMkVCQzAxIC8qIFBC
WENvbnRhaW5lckl0ZW1Qcm94eSAqLyA9IHsKIAkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94
eTsKIAkJCWNvbnRhaW5lclBvcnRhbCA9IDA4RkI3NzkzRkU4NDE1NURDMDJBQUMwNyAvKiBQcm9q
ZWN0IG9iamVjdCAqLzsKQEAgLTE1Nyw3ICsxNDYsOSBAQAogLyogQmVnaW4gUEJYRmlsZVJlZmVy
ZW5jZSBzZWN0aW9uICovCiAJCTBGMjEwOUM3MTg5QzY1MEQwMEY4NzlBMyAvKiBCYXNlVGFyZ2V0
LnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2VUYXJnZXQueGNjb25maWc7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGNTE2OUNBMTQ0NTIyMkQwMEUwQTlENyAvKiBXZWJLaXQuZnJh
bWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
d3JhcHBlci5mcmFtZXdvcms7IHBhdGggPSBXZWJLaXQuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OwotCQkwRkFGNjdFRTE2MEQ2QzEwMDA3N0NCMkIgLyogSW5q
ZWN0ZWRCdW5kbGVQYWdlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwRkVCOTA5RTE5MDVBNzc2MDAwRkRCRjMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29jb2Eu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBJbmplY3RlZEJ1bmRs
ZVBhZ2VDb2NvYS5tbTsgcGF0aCA9IGNvY29hL0luamVjdGVkQnVuZGxlUGFnZUNvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkVCOTBBMjE5MDVCQzZBMDAwRkRCRjMgLyog
Q3Jhc2hSZXBvcnRlckluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ3Jh
c2hSZXBvcnRlckluZm8uaDsgcGF0aCA9IGNvY29hL0NyYXNoUmVwb3J0ZXJJbmZvLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRUI5MEEzMTkwNUJDNkEwMDBGREJGMyAvKiBDcmFz
aFJlcG9ydGVySW5mby5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9
IENyYXNoUmVwb3J0ZXJJbmZvLm1tOyBwYXRoID0gY29jb2EvQ3Jhc2hSZXBvcnRlckluZm8ubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2RDc1OEU1MTYwQkVDREMwMDI2ODQ3MiAv
KiBHZW9sb2NhdGlvblByb3ZpZGVyTW9jay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBHZW9sb2NhdGlvblByb3ZpZGVyTW9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTI2RDc1OEU2MTYwQkVDREQwMDI2ODQ3MiAvKiBHZW9sb2NhdGlvblByb3Zp
ZGVyTW9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2NhdGlvblBy
b3ZpZGVyTW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTIxMEVBMjE0NENB
QUE1MDA4MzVCQjUgLyogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg5LDcgKzE4MCw2IEBACiAJCTJFNjNFRDc5MTg5
MUFDRTkwMDJBN0FGQyAvKiBBY3RpdmF0ZUZvbnRzSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gQWN0aXZhdGVGb250c0lPUy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMkU2M0VEN0ExODkxQUNFOTAwMkE3QUZDIC8qIEV2ZW50U2VuZGVyUHJv
eHlJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBFdmVudFNl
bmRlclByb3h5SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTYzRUQ3QjE4
OTFBQ0U5MDAyQTdBRkMgLyogSW5qZWN0ZWRCdW5kbGVJT1MubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZUlPUy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMkU2M0VEN0MxODkxQUNFOTAwMkE3QUZDIC8qIEluamVjdGVkQnVu
ZGxlUGFnZUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IElu
amVjdGVkQnVuZGxlUGFnZUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVF
NTJDRTAxODkwQTlBODAwMTBFRDIxIC8qIFdlYktpdFRlc3RSdW5uZXJBcHAuYXBwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmFwcGxpY2F0
aW9uOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBXZWJLaXRUZXN0UnVubmVyQXBwLmFwcDsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMkVFNTJDRTIxODkwQTlBODAw
MTBFRDIxIC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBGb3VuZGF0
aW9uLmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvRm91bmRhdGlv
bi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwogCQkyRUU1MkNFNDE4OTBBOUE4
MDAxMEVEMjEgLyogQ29yZUdyYXBoaWNzLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQ29y
ZUdyYXBoaWNzLmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29y
ZUdyYXBoaWNzLmZyYW1ld29yazsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07CkBAIC0xOTgsMTEg
KzE4OCw2IEBACiAJCTJFRTUyQ0VDMTg5MEE5QTgwMDEwRUQyMSAvKiBlbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3Quc3RyaW5nczsg
bmFtZSA9IGVuOyBwYXRoID0gZW4ubHByb2ovSW5mb1BsaXN0LnN0cmluZ3M7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJFRTUyQ0YxMTg5MEE5QTgwMDEwRUQyMSAvKiBBcHBEZWxlZ2F0
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBcHBEZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyRUU1MkNGMjE4OTBBOUE4MDAxMEVEMjEgLyogQXBwRGVsZWdhdGUubSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5v
YmpjOyBwYXRoID0gQXBwRGVsZWdhdGUubTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MkVFNTJDRkExODkwQTlBODAwMTBFRDIxIC8qIFdlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy54Y3Rl
c3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHdyYXBw
ZXIuY2ZidW5kbGU7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFdlYktpdFRlc3RSdW5uZXJB
cHBUZXN0cy54Y3Rlc3Q7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07Ci0JCTJF
RTUyQ0ZCMTg5MEE5QTkwMDEwRUQyMSAvKiBYQ1Rlc3QuZnJhbWV3b3JrICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5h
bWUgPSBYQ1Rlc3QuZnJhbWV3b3JrOyBwYXRoID0gTGlicmFyeS9GcmFtZXdvcmtzL1hDVGVzdC5m
cmFtZXdvcms7IHNvdXJjZVRyZWUgPSBERVZFTE9QRVJfRElSOyB9OwotCQkyRUU1MkQwMzE4OTBB
OUE5MDAxMEVEMjEgLyogV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzLUluZm8ucGxpc3QgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0Lnht
bDsgcGF0aCA9ICJXZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMtSW5mby5wbGlzdCI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJFRTUyRDA1MTg5MEE5QTkwMDEwRUQyMSAvKiBlbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3Qu
c3RyaW5nczsgbmFtZSA9IGVuOyBwYXRoID0gZW4ubHByb2ovSW5mb1BsaXN0LnN0cmluZ3M7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJFRTUyRDA3MTg5MEE5QTkwMDEwRUQyMSAvKiBX
ZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gV2ViS2l0VGVzdFJ1
bm5lckFwcFRlc3RzLm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFRTUyRDEzMTg5
MEE5RkIwMDEwRUQyMSAvKiBQbGF0Zm9ybVdlYlZpZXdJT1MubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9ybVdlYlZpZXdJT1MubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJFRTUyRDE0MTg5MEE5RkIwMDEwRUQyMSAvKiBUZXN0Q29udHJv
bGxlcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFRlc3RD
b250cm9sbGVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRUU1MkQxNTE4
OTBBOUZCMDAxMEVEMjEgLyogV2ViQXJjaGl2ZUR1bXBTdXBwb3J0SU9TLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQXJjaGl2ZUR1bXBTdXBwb3J0SU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzE4LDE2ICszMDMsNiBAQAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwotCQkyRUU1
MkNGNzE4OTBBOUE4MDAxMEVEMjEgLyogRnJhbWV3b3JrcyAqLyA9IHsKLQkJCWlzYSA9IFBCWEZy
YW1ld29ya3NCdWlsZFBoYXNlOwotCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKLQkJ
CWZpbGVzID0gKAotCQkJCTJFRTUyQ0ZDMTg5MEE5QTkwMDEwRUQyMSAvKiBYQ1Rlc3QuZnJhbWV3
b3JrIGluIEZyYW1ld29ya3MgKi8sCi0JCQkJMkVFNTJDRkUxODkwQTlBOTAwMTBFRDIxIC8qIFVJ
S2l0LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAotCQkJCTJFRTUyQ0ZEMTg5MEE5QTkwMDEw
RUQyMSAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovLAotCQkJKTsKLQkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwotCQl9OwogCQk4REQ3NkY5
QjA0ODZBQTc2MDBEOTZCNUUgLyogRnJhbWV3b3JrcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEZyYW1l
d29ya3NCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTM2
NCw3ICszMzksNiBAQAogCQkJCTA4RkI3NzlERkU4NDE1NURDMDJBQUMwNyAvKiBFeHRlcm5hbCBG
cmFtZXdvcmtzIGFuZCBMaWJyYXJpZXMgKi8sCiAJCQkJQkMyNTE5NDQxMUQxNURCRTAwMkVCQzAx
IC8qIFJlc291cmNlcyAqLywKIAkJCQkyRUU1MkNFODE4OTBBOUE4MDAxMEVEMjEgLyogV2ViS2l0
VGVzdFJ1bm5lckFwcCAqLywKLQkJCQkyRUU1MkQwMTE4OTBBOUE5MDAxMEVEMjEgLyogV2ViS2l0
VGVzdFJ1bm5lckFwcFRlc3RzICovLAogCQkJCTJFRTUyQ0UxMTg5MEE5QTgwMDEwRUQyMSAvKiBG
cmFtZXdvcmtzICovLAogCQkJCTFBQjY3NEFERkU5RDU0QjUxMUNBMkNCQiAvKiBQcm9kdWN0cyAq
LywKIAkJCSk7CkBAIC0zNzQsNiArMzQ4LDcgQEAKIAkJMDhGQjc3OTVGRTg0MTU1REMwMkFBQzA3
IC8qIFRlc3RSdW5uZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCTBGRUI5MEExMTkwNUJDNEEwMDBGREJGMyAvKiBjb2NvYSAqLywKIAkJCQkyRUU1MkQx
MjE4OTBBOUZCMDAxMEVEMjEgLyogaW9zICovLAogCQkJCTg0MUNDMDBEMTgxMTg1QkYwMDQyRTlC
NiAvKiBPcHRpb25zLmNwcCAqLywKIAkJCQk4NDFDQzAwRTE4MTE4NUJGMDA0MkU5QjYgLyogT3B0
aW9ucy5oICovLApAQCAtNDE0LDEzICszODksMjkgQEAKIAkJCW5hbWUgPSAiRXh0ZXJuYWwgRnJh
bWV3b3JrcyBhbmQgTGlicmFyaWVzIjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07
CisJCTBGRUI5MDlEMTkwNUE3NUQwMDBGREJGMyAvKiBjb2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBC
WEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJMEZFQjkwOUUxOTA1QTc3NjAwMEZEQkYzIC8q
IEluamVjdGVkQnVuZGxlUGFnZUNvY29hLm1tICovLAorCQkJKTsKKwkJCW5hbWUgPSBjb2NvYTsK
KwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTBGRUI5MEExMTkwNUJDNEEwMDBG
REJGMyAvKiBjb2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAo
CisJCQkJMEZFQjkwQTIxOTA1QkM2QTAwMEZEQkYzIC8qIENyYXNoUmVwb3J0ZXJJbmZvLmggKi8s
CisJCQkJMEZFQjkwQTMxOTA1QkM2QTAwMEZEQkYzIC8qIENyYXNoUmVwb3J0ZXJJbmZvLm1tICov
LAorCQkJKTsKKwkJCW5hbWUgPSBjb2NvYTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJ
CX07CiAJCTFBQjY3NEFERkU5RDU0QjUxMUNBMkNCQiAvKiBQcm9kdWN0cyAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJOERENzZGQTEwNDg2QUE3NjAwRDk2
QjVFIC8qIFdlYktpdFRlc3RSdW5uZXIgKi8sCiAJCQkJQkMyNTE4NjIxMUQxNUQ1NDAwMkVCQzAx
IC8qIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZS5idW5kbGUgKi8sCiAJCQkJMkVFNTJD
RTAxODkwQTlBODAwMTBFRDIxIC8qIFdlYktpdFRlc3RSdW5uZXJBcHAuYXBwICovLAotCQkJCTJF
RTUyQ0ZBMTg5MEE5QTgwMDEwRUQyMSAvKiBXZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMueGN0ZXN0
ICovLAogCQkJKTsKIAkJCW5hbWUgPSBQcm9kdWN0czsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CkBAIC00NTMsNyArNDQ0LDYgQEAKIAkJCQkyRTYzRUQ3OTE4OTFBQ0U5MDAyQTdBRkMgLyog
QWN0aXZhdGVGb250c0lPUy5tbSAqLywKIAkJCQkyRTYzRUQ3QTE4OTFBQ0U5MDAyQTdBRkMgLyog
RXZlbnRTZW5kZXJQcm94eUlPUy5tbSAqLywKIAkJCQkyRTYzRUQ3QjE4OTFBQ0U5MDAyQTdBRkMg
LyogSW5qZWN0ZWRCdW5kbGVJT1MubW0gKi8sCi0JCQkJMkU2M0VEN0MxODkxQUNFOTAwMkE3QUZD
IC8qIEluamVjdGVkQnVuZGxlUGFnZUlPUy5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gaW9zOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTQ2NCw3ICs0NTQsNiBAQAogCQkJCTJFRTUy
Q0UyMTg5MEE5QTgwMDEwRUQyMSAvKiBGb3VuZGF0aW9uLmZyYW1ld29yayAqLywKIAkJCQkyRUU1
MkNFNDE4OTBBOUE4MDAxMEVEMjEgLyogQ29yZUdyYXBoaWNzLmZyYW1ld29yayAqLywKIAkJCQky
RUU1MkNFNjE4OTBBOUE4MDAxMEVEMjEgLyogVUlLaXQuZnJhbWV3b3JrICovLAotCQkJCTJFRTUy
Q0ZCMTg5MEE5QTkwMDEwRUQyMSAvKiBYQ1Rlc3QuZnJhbWV3b3JrICovLAogCQkJKTsKIAkJCW5h
bWUgPSBGcmFtZXdvcmtzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTQ3OCwyNCAr
NDY3LDYgQEAKIAkJCXBhdGggPSBXZWJLaXRUZXN0UnVubmVyQXBwOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKIAkJfTsKLQkJMkVFNTJEMDExODkwQTlBOTAwMTBFRDIxIC8qIFdlYktpdFRl
c3RSdW5uZXJBcHBUZXN0cyAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4g
PSAoCi0JCQkJMkVFNTJEMDcxODkwQTlBOTAwMTBFRDIxIC8qIFdlYktpdFRlc3RSdW5uZXJBcHBU
ZXN0cy5tICovLAotCQkJCTJFRTUyRDAyMTg5MEE5QTkwMDEwRUQyMSAvKiBTdXBwb3J0aW5nIEZp
bGVzICovLAotCQkJKTsKLQkJCXBhdGggPSBXZWJLaXRUZXN0UnVubmVyQXBwVGVzdHM7Ci0JCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwotCQkyRUU1MkQwMjE4OTBBOUE5MDAxMEVEMjEg
LyogU3VwcG9ydGluZyBGaWxlcyAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRy
ZW4gPSAoCi0JCQkJMkVFNTJEMDMxODkwQTlBOTAwMTBFRDIxIC8qIFdlYktpdFRlc3RSdW5uZXJB
cHBUZXN0cy1JbmZvLnBsaXN0ICovLAotCQkJCTJFRTUyRDA0MTg5MEE5QTkwMDEwRUQyMSAvKiBJ
bmZvUGxpc3Quc3RyaW5ncyAqLywKLQkJCSk7Ci0JCQluYW1lID0gIlN1cHBvcnRpbmcgRmlsZXMi
OwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKIAkJMkVFNTJEMTIxODkwQTlGQjAw
MTBFRDIxIC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CkBAIC01MjcsNyArNDk4LDYgQEAKIAkJCQk1QzQ1QzMwRTE3Mzk4RTI5MDA3OTcxNEUgLyogV2Vi
QXJjaGl2ZUR1bXBTdXBwb3J0TWFjLm1tICovLAogCQkJCTY1RUI4NTlGMTFFQzY3Q0MwMDM0RDMw
MCAvKiBBY3RpdmF0ZUZvbnRzLm1tICovLAogCQkJCUJDOERBRDc3MTMxNkQ3QjkwMEVDOTZGQyAv
KiBJbmplY3RlZEJ1bmRsZU1hYy5tbSAqLywKLQkJCQkwRkFGNjdFRTE2MEQ2QzEwMDA3N0NCMkIg
LyogSW5qZWN0ZWRCdW5kbGVQYWdlTWFjLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBtYWM7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTUzLDYgKzUyMyw3IEBACiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTJFNjNFRDc0MTg5MUFDRTkwMDJBN0FGQyAv
KiBpb3MgKi8sCisJCQkJMEZFQjkwOUQxOTA1QTc1RDAwMEZEQkYzIC8qIGNvY29hICovLAogCQkJ
CTVDNDVDMzEwMTczOThFMzcwMDc5NzE0RSAvKiBjZiAqLywKIAkJCQlCQzk1MkMwQTExRjNCOTM5
MDAzMzk4QjQgLyogQmluZGluZ3MgKi8sCiAJCQkJQkMxNEU0RTAxMjBFMDJGOTAwODI2QzBDIC8q
IENvbnRyb2xsZXJzICovLApAQCAtNjk4LDI0ICs2NjksNiBAQAogCQkJcHJvZHVjdFJlZmVyZW5j
ZSA9IDJFRTUyQ0UwMTg5MEE5QTgwMDEwRUQyMSAvKiBXZWJLaXRUZXN0UnVubmVyQXBwLmFwcCAq
LzsKIAkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUuYXBwbGljYXRpb24i
OwogCQl9OwotCQkyRUU1MkNGOTE4OTBBOUE4MDAxMEVEMjEgLyogV2ViS2l0VGVzdFJ1bm5lckFw
cFRlc3RzICovID0gewotCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OwotCQkJYnVpbGRDb25maWd1
cmF0aW9uTGlzdCA9IDJFRTUyRDEwMTg5MEE5QTkwMDEwRUQyMSAvKiBCdWlsZCBjb25maWd1cmF0
aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAiV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzIiAq
LzsKLQkJCWJ1aWxkUGhhc2VzID0gKAotCQkJCTJFRTUyQ0Y2MTg5MEE5QTgwMDEwRUQyMSAvKiBT
b3VyY2VzICovLAotCQkJCTJFRTUyQ0Y3MTg5MEE5QTgwMDEwRUQyMSAvKiBGcmFtZXdvcmtzICov
LAotCQkJCTJFRTUyQ0Y4MTg5MEE5QTgwMDEwRUQyMSAvKiBSZXNvdXJjZXMgKi8sCi0JCQkpOwot
CQkJYnVpbGRSdWxlcyA9ICgKLQkJCSk7Ci0JCQlkZXBlbmRlbmNpZXMgPSAoCi0JCQkJMkVFNTJE
MDAxODkwQTlBOTAwMTBFRDIxIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCi0JCQkpOwotCQkJ
bmFtZSA9IFdlYktpdFRlc3RSdW5uZXJBcHBUZXN0czsKLQkJCXByb2R1Y3ROYW1lID0gV2ViS2l0
VGVzdFJ1bm5lckFwcFRlc3RzOwotCQkJcHJvZHVjdFJlZmVyZW5jZSA9IDJFRTUyQ0ZBMTg5MEE5
QTgwMDEwRUQyMSAvKiBXZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMueGN0ZXN0ICovOwotCQkJcHJv
ZHVjdFR5cGUgPSAiY29tLmFwcGxlLnByb2R1Y3QtdHlwZS5idW5kbGUudW5pdC10ZXN0IjsKLQkJ
fTsKIAkJOERENzZGOTYwNDg2QUE3NjAwRDk2QjVFIC8qIFdlYktpdFRlc3RSdW5uZXIgKi8gPSB7
CiAJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0g
MURFQjkyNzQwODczM0RENDAwMTBFOUNEIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3Ig
UEJYTmF0aXZlVGFyZ2V0ICJXZWJLaXRUZXN0UnVubmVyIiAqLzsKQEAgLTc1OCwxMSArNzExLDYg
QEAKIAkJMDhGQjc3OTNGRTg0MTU1REMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovID0gewog
CQkJaXNhID0gUEJYUHJvamVjdDsKIAkJCWF0dHJpYnV0ZXMgPSB7Ci0JCQkJVGFyZ2V0QXR0cmli
dXRlcyA9IHsKLQkJCQkJMkVFNTJDRjkxODkwQTlBODAwMTBFRDIxID0gewotCQkJCQkJVGVzdFRh
cmdldElEID0gMkVFNTJDREYxODkwQTlBODAwMTBFRDIxOwotCQkJCQl9OwotCQkJCX07CiAJCQl9
OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDFERUI5Mjc4MDg3MzNERDQwMDEwRTlDRCAv
KiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIldlYktpdFRlc3RSdW5u
ZXIiICovOwogCQkJY29tcGF0aWJpbGl0eVZlcnNpb24gPSAiWGNvZGUgMy4xIjsKQEAgLTc4Myw3
ICs3MzEsNiBAQAogCQkJCUJDMjUxODYxMTFEMTVENTQwMDJFQkMwMSAvKiBXZWJLaXRUZXN0UnVu
bmVySW5qZWN0ZWRCdW5kbGUgKi8sCiAJCQkJQkM5NTJENzcxMUYzQkY1RDAwMzM5OEI0IC8qIERl
cml2ZWQgU291cmNlcyAqLywKIAkJCQkyRUU1MkNERjE4OTBBOUE4MDAxMEVEMjEgLyogV2ViS2l0
VGVzdFJ1bm5lckFwcCAqLywKLQkJCQkyRUU1MkNGOTE4OTBBOUE4MDAxMEVEMjEgLyogV2ViS2l0
VGVzdFJ1bm5lckFwcFRlc3RzICovLAogCQkJKTsKIAkJfTsKIC8qIEVuZCBQQlhQcm9qZWN0IHNl
Y3Rpb24gKi8KQEAgLTc5OCwxNSArNzQ1LDYgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKLQkJMkVFNTJDRjgxODkwQTlBODAwMTBFRDIx
IC8qIFJlc291cmNlcyAqLyA9IHsKLQkJCWlzYSA9IFBCWFJlc291cmNlc0J1aWxkUGhhc2U7Ci0J
CQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwotCQkJZmlsZXMgPSAoCi0JCQkJMkVFNTJE
MTExODkwQTlCQjAwMTBFRDIxIC8qIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZS5idW5k
bGUgaW4gUmVzb3VyY2VzICovLAotCQkJCTJFRTUyRDA2MTg5MEE5QTkwMDEwRUQyMSAvKiBJbmZv
UGxpc3Quc3RyaW5ncyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkpOwotCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7Ci0JCX07CiAJCUJDMjUxODVFMTFEMTVENTQwMDJFQkMw
MSAvKiBSZXNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhSZXNvdXJjZXNCdWlsZFBoYXNlOwog
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKQEAgLTg1Niw2ICs3OTQsNyBAQAogCQkJ
CTJFNjNFRDk3MTg5MUFEQzcwMDJBN0FGQyAvKiBQaXhlbER1bXBTdXBwb3J0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTJFNjNFRDk4MTg5MUFEQzcwMDJBN0FGQyAvKiBUZXN0Q29udHJvbGxlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyRTYzRUQ5MjE4OTFBREFEMDAyQTdBRkMgLyogVGVzdENv
bnRyb2xsZXJJT1MubW0gaW4gU291cmNlcyAqLywKKwkJCQkwRkVCOTBBODE5MDVDNTM3MDAwRkRC
RjMgLyogQ3Jhc2hSZXBvcnRlckluZm8ubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRTYzRUQ5OTE4
OTFBREM3MDAyQTdBRkMgLyogVGVzdEludm9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkU2M0VEQTUxODkxQkQ4RTAwMkE3QUZDIC8qIFRlc3RJbnZvY2F0aW9uQ0cuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMkU2M0VEOUExODkxQURDNzAwMkE3QUZDIC8qIFdlYk5vdGlmaWNhdGlvblBy
b3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODY2LDE0ICs4MDUsNiBAQAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwotCQkyRUU1MkNG
NjE4OTBBOUE4MDAxMEVEMjEgLyogU291cmNlcyAqLyA9IHsKLQkJCWlzYSA9IFBCWFNvdXJjZXNC
dWlsZFBoYXNlOwotCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKLQkJCWZpbGVzID0g
KAotCQkJCTJFRTUyRDA4MTg5MEE5QTkwMDEwRUQyMSAvKiBXZWJLaXRUZXN0UnVubmVyQXBwVGVz
dHMubSBpbiBTb3VyY2VzICovLAotCQkJKTsKLQkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwotCQl9OwogCQk4REQ3NkY5OTA0ODZBQTc2MDBEOTZCNUUgLyogU291cmNl
cyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25N
YXNrID0gMjE0NzQ4MzY0NzsKQEAgLTg4OCw2ICs4MTksNyBAQAogCQkJCUUxQzY0MkM2MTdDQkNE
NEMwMEQ2NkEzQyAvKiBXZWJLaXRUZXN0UnVubmVyUGFzdGVib2FyZC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUJDNzkzNEU4MTE5MDY4NDYwMDVFQThFMiAvKiBQbGF0Zm9ybVdlYlZpZXdNYWMubW0g
aW4gU291cmNlcyAqLywKIAkJCQlCQzc5MzQzMTExOEY3RjE5MDA1RUE4RTIgLyogVGVzdENvbnRy
b2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQjkwQTkxOTA1QzU0ODAwMEZEQkYzIC8q
IENyYXNoUmVwb3J0ZXJJbmZvLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM4Qzc5NUMxMUQyNzg1
RDAwNDUzNUExIC8qIFRlc3RDb250cm9sbGVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNE
N0QyRjgxMTkyMTI3ODAwNkRCN0VFIC8qIFRlc3RJbnZvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDOTE5MjA1MTMzM0U0RjgwMDMwMTFEQyAvKiBUZXN0SW52b2NhdGlvbkNHLmNwcCBp
biBTb3VyY2VzICovLApAQCAtOTEwLDExICs4NDIsMTEgQEAKIAkJCQkyRTYzRUQ4RDE4OTFBRDdF
MDAyQTdBRkMgLyogQWN0aXZhdGVGb250c0lPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJFNjNF
RDhFMTg5MUFEN0UwMDJBN0FGQyAvKiBFdmVudFNlbmRlclByb3h5SU9TLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMkU2M0VEOEYxODkxQUQ3RTAwMkE3QUZDIC8qIEluamVjdGVkQnVuZGxlSU9TLm1t
IGluIFNvdXJjZXMgKi8sCi0JCQkJMkU2M0VEOTAxODkxQUQ3RTAwMkE3QUZDIC8qIEluamVjdGVk
QnVuZGxlUGFnZUlPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTI5MjEwRURBMTQ0Q0MzRUEwMDgz
NUJCNiAvKiBBY2Nlc3NpYmlsaXR5Q29tbW9uTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMjky
MTBFQjAxNDRDQUNCRDAwODM1QkI1IC8qIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTgwMzRDNjYyMTQ4NzYzNjQwMEFDMzJFOSAvKiBBY2Nlc3NpYmlsaXR5
Q29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTgwOTczMzhBMTQ4NzRBNUEwMDgx
NTZEOSAvKiBBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlci5tbSBpbiBTb3VyY2VzICov
LAorCQkJCTBGRUI5MEE1MTkwNUMwMTYwMDBGREJGMyAvKiBDcmFzaFJlcG9ydGVySW5mby5tbSBp
biBTb3VyY2VzICovLAogCQkJCTI5MjEwRUI0MTQ0Q0FDRDUwMDgzNUJCNSAvKiBBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyOTIxMEVCNTE0NENBQ0Q1MDA4
MzVCQjUgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkyOUE4RkNFMjE0NUYwMzdCMDA5MDQ1QTYgLyogQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5n
ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTkyOCw5ICs4NjAsOSBAQAogCQkJCUJDOERBRDdCMTMx
NkQ5MTAwMEVDOTZGQyAvKiBJbmplY3RlZEJ1bmRsZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUJDMjUxQTNFMTFEMTY4MzEwMDJFQkMwMSAvKiBJbmplY3RlZEJ1bmRsZU1haW4uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkNDOTk3QTUxMUQzQzhGNjAwMTdCQ0EyIC8qIEluamVjdGVkQnVuZGxl
UGFnZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkFGNjdFRjE2MEQ2QzEwMDA3N0NCMkIgLyog
SW5qZWN0ZWRCdW5kbGVQYWdlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMjkyMTBFREIxNDRD
RDQ3OTAwODM1QkI1IC8qIEpTQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMjlBOEZDQ0IxNDVFRjAyRTAwOTA0NUE2IC8qIEpTQWNjZXNzaWJpbGl0eVRleHRN
YXJrZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQjkwQTAxOTA1QTgzNDAwMEZEQkYzIC8q
IEluamVjdGVkQnVuZGxlUGFnZUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMjlBOEZDREQx
NDVGMDMzNzAwOTA0NUE2IC8qIEpTQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkyOTIxMEVFMTE0NENEQjI2MDA4MzVCQjUgLyogSlNBY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOEZEOEQyMTIwRTU0NUIwMEYz
RTcxQSAvKiBKU0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05
NTMsMTEgKzg4NSw2IEBACiAJCQl0YXJnZXQgPSBCQzI1MTg2MTExRDE1RDU0MDAyRUJDMDEgLyog
V2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlICovOwogCQkJdGFyZ2V0UHJveHkgPSAyRTYz
RUQ4ODE4OTFBRDQ3MDAyQTdBRkMgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovOwogCQl9Owot
CQkyRUU1MkQwMDE4OTBBOUE5MDAxMEVEMjEgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsK
LQkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7Ci0JCQl0YXJnZXQgPSAyRUU1MkNERjE4OTBB
OUE4MDAxMEVEMjEgLyogV2ViS2l0VGVzdFJ1bm5lckFwcCAqLzsKLQkJCXRhcmdldFByb3h5ID0g
MkVFNTJDRkYxODkwQTlBOTAwMTBFRDIxIC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKLQkJ
fTsKIAkJQkMyNTE5NDIxMUQxNUQ5NDAwMkVCQzAxIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8g
PSB7CiAJCQlpc2EgPSBQQlhUYXJnZXREZXBlbmRlbmN5OwogCQkJdGFyZ2V0ID0gQkMyNTE4NjEx
MUQxNUQ1NDAwMkVCQzAxIC8qIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZSAqLzsKQEAg
LTk4MCwxNCArOTA3LDYgQEAKIAkJCXBhdGggPSAuLi9XZWJLaXRUZXN0UnVubmVyQXBwOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJMkVFNTJEMDQxODkwQTlBOTAwMTBFRDIx
IC8qIEluZm9QbGlzdC5zdHJpbmdzICovID0gewotCQkJaXNhID0gUEJYVmFyaWFudEdyb3VwOwot
CQkJY2hpbGRyZW4gPSAoCi0JCQkJMkVFNTJEMDUxODkwQTlBOTAwMTBFRDIxIC8qIGVuICovLAot
CQkJKTsKLQkJCW5hbWUgPSBJbmZvUGxpc3Quc3RyaW5nczsKLQkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7Ci0JCX07CiAvKiBFbmQgUEJYVmFyaWFudEdyb3VwIHNlY3Rpb24gKi8KIAogLyogQmVn
aW4gWENCdWlsZENvbmZpZ3VyYXRpb24gc2VjdGlvbiAqLwpAQCAtMTA2NSwxNDMgKzk4NCw2IEBA
CiAJCQl9OwogCQkJbmFtZSA9IFByb2R1Y3Rpb247CiAJCX07Ci0JCTJFRTUyRDBDMTg5MEE5QTkw
MDEwRUQyMSAvKiBEZWJ1ZyAqLyA9IHsKLQkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwot
CQkJYnVpbGRTZXR0aW5ncyA9IHsKLQkJCQlBTFdBWVNfU0VBUkNIX1VTRVJfUEFUSFMgPSBOTzsK
LQkJCQlBUkNIUyA9ICIkKEFSQ0hTX1NUQU5EQVJEX0lOQ0xVRElOR182NF9CSVQpIjsKLQkJCQlC
VU5ETEVfTE9BREVSID0gIiQoQlVJTFRfUFJPRFVDVFNfRElSKS9XZWJLaXRUZXN0UnVubmVyQXBw
LmFwcC9XZWJLaXRUZXN0UnVubmVyQXBwIjsKLQkJCQlDTEFOR19DWFhfTEFOR1VBR0VfU1RBTkRB
UkQgPSAiZ251KysweCI7Ci0JCQkJQ0xBTkdfQ1hYX0xJQlJBUlkgPSAibGliYysrIjsKLQkJCQlD
TEFOR19FTkFCTEVfTU9EVUxFUyA9IFlFUzsKLQkJCQlDTEFOR19FTkFCTEVfT0JKQ19BUkMgPSBZ
RVM7Ci0JCQkJQ0xBTkdfV0FSTl9CT09MX0NPTlZFUlNJT04gPSBZRVM7Ci0JCQkJQ0xBTkdfV0FS
Tl9DT05TVEFOVF9DT05WRVJTSU9OID0gWUVTOwotCQkJCUNMQU5HX1dBUk5fRElSRUNUX09CSkNf
SVNBX1VTQUdFID0gWUVTX0VSUk9SOwotCQkJCUNMQU5HX1dBUk5fRU1QVFlfQk9EWSA9IFlFUzsK
LQkJCQlDTEFOR19XQVJOX0VOVU1fQ09OVkVSU0lPTiA9IFlFUzsKLQkJCQlDTEFOR19XQVJOX0lO
VF9DT05WRVJTSU9OID0gWUVTOwotCQkJCUNMQU5HX1dBUk5fT0JKQ19ST09UX0NMQVNTID0gWUVT
X0VSUk9SOwotCQkJCUNMQU5HX1dBUk5fX0RVUExJQ0FURV9NRVRIT0RfTUFUQ0ggPSBZRVM7Ci0J
CQkJQ09QWV9QSEFTRV9TVFJJUCA9IE5POwotCQkJCUZSQU1FV09SS19TRUFSQ0hfUEFUSFMgPSAo
Ci0JCQkJCSIkKFNES1JPT1QpL0RldmVsb3Blci9MaWJyYXJ5L0ZyYW1ld29ya3MiLAotCQkJCQki
JChpbmhlcml0ZWQpIiwKLQkJCQkJIiQoREVWRUxPUEVSX0ZSQU1FV09SS1NfRElSKSIsCi0JCQkJ
KTsKLQkJCQlHQ0NfQ19MQU5HVUFHRV9TVEFOREFSRCA9IGdudTk5OwotCQkJCUdDQ19EWU5BTUlD
X05PX1BJQyA9IE5POwotCQkJCUdDQ19QUkVDT01QSUxFX1BSRUZJWF9IRUFERVIgPSBZRVM7Ci0J
CQkJR0NDX1BSRUZJWF9IRUFERVIgPSAiV2ViS2l0VGVzdFJ1bm5lckFwcC9XZWJLaXRUZXN0UnVu
bmVyQXBwLVByZWZpeC5wY2giOwotCQkJCUdDQ19QUkVQUk9DRVNTT1JfREVGSU5JVElPTlMgPSAo
Ci0JCQkJCSJERUJVRz0xIiwKLQkJCQkJIiQoaW5oZXJpdGVkKSIsCi0JCQkJKTsKLQkJCQlHQ0Nf
U1lNQk9MU19QUklWQVRFX0VYVEVSTiA9IE5POwotCQkJCUdDQ19XQVJOXzY0X1RPXzMyX0JJVF9D
T05WRVJTSU9OID0gWUVTOwotCQkJCUdDQ19XQVJOX0FCT1VUX1JFVFVSTl9UWVBFID0gWUVTX0VS
Uk9SOwotCQkJCUdDQ19XQVJOX1VOREVDTEFSRURfU0VMRUNUT1IgPSBZRVM7Ci0JCQkJR0NDX1dB
Uk5fVU5JTklUSUFMSVpFRF9BVVRPUyA9IFlFUzsKLQkJCQlHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJ
T04gPSBZRVM7Ci0JCQkJR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOwotCQkJCUlORk9Q
TElTVF9GSUxFID0gIldlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy9XZWJLaXRUZXN0UnVubmVyQXBw
VGVzdHMtSW5mby5wbGlzdCI7Ci0JCQkJSVBIT05FT1NfREVQTE9ZTUVOVF9UQVJHRVQgPSA4LjA7
Ci0JCQkJT05MWV9BQ1RJVkVfQVJDSCA9IFlFUzsKLQkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJH
RVRfTkFNRSkiOwotCQkJCVNES1JPT1QgPSBpcGhvbmVvczsKLQkJCQlURVNUX0hPU1QgPSAiJChC
VU5ETEVfTE9BREVSKSI7Ci0JCQkJV1JBUFBFUl9FWFRFTlNJT04gPSB4Y3Rlc3Q7Ci0JCQl9Owot
CQkJbmFtZSA9IERlYnVnOwotCQl9OwotCQkyRUU1MkQwRDE4OTBBOUE5MDAxMEVEMjEgLyogUmVs
ZWFzZSAqLyA9IHsKLQkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwotCQkJYnVpbGRTZXR0
aW5ncyA9IHsKLQkJCQlBTFdBWVNfU0VBUkNIX1VTRVJfUEFUSFMgPSBOTzsKLQkJCQlBUkNIUyA9
ICIkKEFSQ0hTX1NUQU5EQVJEX0lOQ0xVRElOR182NF9CSVQpIjsKLQkJCQlCVU5ETEVfTE9BREVS
ID0gIiQoQlVJTFRfUFJPRFVDVFNfRElSKS9XZWJLaXRUZXN0UnVubmVyQXBwLmFwcC9XZWJLaXRU
ZXN0UnVubmVyQXBwIjsKLQkJCQlDTEFOR19DWFhfTEFOR1VBR0VfU1RBTkRBUkQgPSAiZ251Kysw
eCI7Ci0JCQkJQ0xBTkdfQ1hYX0xJQlJBUlkgPSAibGliYysrIjsKLQkJCQlDTEFOR19FTkFCTEVf
TU9EVUxFUyA9IFlFUzsKLQkJCQlDTEFOR19FTkFCTEVfT0JKQ19BUkMgPSBZRVM7Ci0JCQkJQ0xB
TkdfV0FSTl9CT09MX0NPTlZFUlNJT04gPSBZRVM7Ci0JCQkJQ0xBTkdfV0FSTl9DT05TVEFOVF9D
T05WRVJTSU9OID0gWUVTOwotCQkJCUNMQU5HX1dBUk5fRElSRUNUX09CSkNfSVNBX1VTQUdFID0g
WUVTX0VSUk9SOwotCQkJCUNMQU5HX1dBUk5fRU1QVFlfQk9EWSA9IFlFUzsKLQkJCQlDTEFOR19X
QVJOX0VOVU1fQ09OVkVSU0lPTiA9IFlFUzsKLQkJCQlDTEFOR19XQVJOX0lOVF9DT05WRVJTSU9O
ID0gWUVTOwotCQkJCUNMQU5HX1dBUk5fT0JKQ19ST09UX0NMQVNTID0gWUVTX0VSUk9SOwotCQkJ
CUNMQU5HX1dBUk5fX0RVUExJQ0FURV9NRVRIT0RfTUFUQ0ggPSBZRVM7Ci0JCQkJQ09QWV9QSEFT
RV9TVFJJUCA9IFlFUzsKLQkJCQlFTkFCTEVfTlNfQVNTRVJUSU9OUyA9IE5POwotCQkJCUZSQU1F
V09SS19TRUFSQ0hfUEFUSFMgPSAoCi0JCQkJCSIkKFNES1JPT1QpL0RldmVsb3Blci9MaWJyYXJ5
L0ZyYW1ld29ya3MiLAotCQkJCQkiJChpbmhlcml0ZWQpIiwKLQkJCQkJIiQoREVWRUxPUEVSX0ZS
QU1FV09SS1NfRElSKSIsCi0JCQkJKTsKLQkJCQlHQ0NfQ19MQU5HVUFHRV9TVEFOREFSRCA9IGdu
dTk5OwotCQkJCUdDQ19QUkVDT01QSUxFX1BSRUZJWF9IRUFERVIgPSBZRVM7Ci0JCQkJR0NDX1BS
RUZJWF9IRUFERVIgPSAiV2ViS2l0VGVzdFJ1bm5lckFwcC9XZWJLaXRUZXN0UnVubmVyQXBwLVBy
ZWZpeC5wY2giOwotCQkJCUdDQ19XQVJOXzY0X1RPXzMyX0JJVF9DT05WRVJTSU9OID0gWUVTOwot
CQkJCUdDQ19XQVJOX0FCT1VUX1JFVFVSTl9UWVBFID0gWUVTX0VSUk9SOwotCQkJCUdDQ19XQVJO
X1VOREVDTEFSRURfU0VMRUNUT1IgPSBZRVM7Ci0JCQkJR0NDX1dBUk5fVU5JTklUSUFMSVpFRF9B
VVRPUyA9IFlFUzsKLQkJCQlHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7Ci0JCQkJR0ND
X1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOwotCQkJCUlORk9QTElTVF9GSUxFID0gIldlYktp
dFRlc3RSdW5uZXJBcHBUZXN0cy9XZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMtSW5mby5wbGlzdCI7
Ci0JCQkJSVBIT05FT1NfREVQTE9ZTUVOVF9UQVJHRVQgPSA4LjA7Ci0JCQkJUFJPRFVDVF9OQU1F
ID0gIiQoVEFSR0VUX05BTUUpIjsKLQkJCQlTREtST09UID0gaXBob25lb3M7Ci0JCQkJVEVTVF9I
T1NUID0gIiQoQlVORExFX0xPQURFUikiOwotCQkJCVZBTElEQVRFX1BST0RVQ1QgPSBZRVM7Ci0J
CQkJV1JBUFBFUl9FWFRFTlNJT04gPSB4Y3Rlc3Q7Ci0JCQl9OwotCQkJbmFtZSA9IFJlbGVhc2U7
Ci0JCX07Ci0JCTJFRTUyRDBFMTg5MEE5QTkwMDEwRUQyMSAvKiBQcm9kdWN0aW9uICovID0gewot
CQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJ
CUFMV0FZU19TRUFSQ0hfVVNFUl9QQVRIUyA9IE5POwotCQkJCUFSQ0hTID0gIiQoQVJDSFNfU1RB
TkRBUkRfSU5DTFVESU5HXzY0X0JJVCkiOwotCQkJCUJVTkRMRV9MT0FERVIgPSAiJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL1dlYktpdFRlc3RSdW5uZXJBcHAuYXBwL1dlYktpdFRlc3RSdW5uZXJBcHAi
OwotCQkJCUNMQU5HX0NYWF9MQU5HVUFHRV9TVEFOREFSRCA9ICJnbnUrKzB4IjsKLQkJCQlDTEFO
R19DWFhfTElCUkFSWSA9ICJsaWJjKysiOwotCQkJCUNMQU5HX0VOQUJMRV9NT0RVTEVTID0gWUVT
OwotCQkJCUNMQU5HX0VOQUJMRV9PQkpDX0FSQyA9IFlFUzsKLQkJCQlDTEFOR19XQVJOX0JPT0xf
Q09OVkVSU0lPTiA9IFlFUzsKLQkJCQlDTEFOR19XQVJOX0NPTlNUQU5UX0NPTlZFUlNJT04gPSBZ
RVM7Ci0JCQkJQ0xBTkdfV0FSTl9ESVJFQ1RfT0JKQ19JU0FfVVNBR0UgPSBZRVNfRVJST1I7Ci0J
CQkJQ0xBTkdfV0FSTl9FTVBUWV9CT0RZID0gWUVTOwotCQkJCUNMQU5HX1dBUk5fRU5VTV9DT05W
RVJTSU9OID0gWUVTOwotCQkJCUNMQU5HX1dBUk5fSU5UX0NPTlZFUlNJT04gPSBZRVM7Ci0JCQkJ
Q0xBTkdfV0FSTl9PQkpDX1JPT1RfQ0xBU1MgPSBZRVNfRVJST1I7Ci0JCQkJQ0xBTkdfV0FSTl9f
RFVQTElDQVRFX01FVEhPRF9NQVRDSCA9IFlFUzsKLQkJCQlDT1BZX1BIQVNFX1NUUklQID0gWUVT
OwotCQkJCUVOQUJMRV9OU19BU1NFUlRJT05TID0gTk87Ci0JCQkJRlJBTUVXT1JLX1NFQVJDSF9Q
QVRIUyA9ICgKLQkJCQkJIiQoU0RLUk9PVCkvRGV2ZWxvcGVyL0xpYnJhcnkvRnJhbWV3b3JrcyIs
Ci0JCQkJCSIkKGluaGVyaXRlZCkiLAotCQkJCQkiJChERVZFTE9QRVJfRlJBTUVXT1JLU19ESVIp
IiwKLQkJCQkpOwotCQkJCUdDQ19DX0xBTkdVQUdFX1NUQU5EQVJEID0gZ251OTk7Ci0JCQkJR0ND
X1BSRUNPTVBJTEVfUFJFRklYX0hFQURFUiA9IFlFUzsKLQkJCQlHQ0NfUFJFRklYX0hFQURFUiA9
ICJXZWJLaXRUZXN0UnVubmVyQXBwL1dlYktpdFRlc3RSdW5uZXJBcHAtUHJlZml4LnBjaCI7Ci0J
CQkJR0NDX1dBUk5fNjRfVE9fMzJfQklUX0NPTlZFUlNJT04gPSBZRVM7Ci0JCQkJR0NDX1dBUk5f
QUJPVVRfUkVUVVJOX1RZUEUgPSBZRVNfRVJST1I7Ci0JCQkJR0NDX1dBUk5fVU5ERUNMQVJFRF9T
RUxFQ1RPUiA9IFlFUzsKLQkJCQlHQ0NfV0FSTl9VTklOSVRJQUxJWkVEX0FVVE9TID0gWUVTOwot
CQkJCUdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKLQkJCQlHQ0NfV0FSTl9VTlVTRURf
VkFSSUFCTEUgPSBZRVM7Ci0JCQkJSU5GT1BMSVNUX0ZJTEUgPSAiV2ViS2l0VGVzdFJ1bm5lckFw
cFRlc3RzL1dlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy1JbmZvLnBsaXN0IjsKLQkJCQlJUEhPTkVP
U19ERVBMT1lNRU5UX1RBUkdFVCA9IDguMDsKLQkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRf
TkFNRSkiOwotCQkJCVNES1JPT1QgPSBpcGhvbmVvczsKLQkJCQlURVNUX0hPU1QgPSAiJChCVU5E
TEVfTE9BREVSKSI7Ci0JCQkJVkFMSURBVEVfUFJPRFVDVCA9IFlFUzsKLQkJCQlXUkFQUEVSX0VY
VEVOU0lPTiA9IHhjdGVzdDsKLQkJCX07Ci0JCQluYW1lID0gUHJvZHVjdGlvbjsKLQkJfTsKIAkJ
QkMyNTE4NjQxMUQxNUQ1NTAwMkVCQzAxIC8qIERlYnVnICovID0gewogCQkJaXNhID0gWENCdWls
ZENvbmZpZ3VyYXRpb247CiAJCQliYXNlQ29uZmlndXJhdGlvblJlZmVyZW5jZSA9IEJDMjUxOTcx
MTFEMTVFNjEwMDJFQkMwMSAvKiBJbmplY3RlZEJ1bmRsZS54Y2NvbmZpZyAqLzsKQEAgLTEyOTEs
MTYgKzEwNzMsNiBAQAogCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwogCQkJ
ZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKLQkJMkVFNTJEMTAx
ODkwQTlBOTAwMTBFRDIxIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZl
VGFyZ2V0ICJXZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMiICovID0gewotCQkJaXNhID0gWENDb25m
aWd1cmF0aW9uTGlzdDsKLQkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCi0JCQkJMkVFNTJEMEMx
ODkwQTlBOTAwMTBFRDIxIC8qIERlYnVnICovLAotCQkJCTJFRTUyRDBEMTg5MEE5QTkwMDEwRUQy
MSAvKiBSZWxlYXNlICovLAotCQkJCTJFRTUyRDBFMTg5MEE5QTkwMDEwRUQyMSAvKiBQcm9kdWN0
aW9uICovLAotCQkJKTsKLQkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKLQkJ
CWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFByb2R1Y3Rpb247Ci0JCX07CiAJCUJDMjUxODY2
MTFEMTVENTUwMDJFQkMwMSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2
ZVRhcmdldCAiV2ViS2l0VGVzdFJ1bm5lckluamVjdGVkQnVuZGxlIiAqLyA9IHsKIAkJCWlzYSA9
IFhDQ29uZmlndXJhdGlvbkxpc3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKApkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMvV2Vi
S2l0VGVzdFJ1bm5lckFwcFRlc3RzLUluZm8ucGxpc3QgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1dlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy9XZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMtSW5mby5w
bGlzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGRhMTAyYWE3OTNmZTFhOWRlNzM1
MWQwNzVhOWJjMWM4MDYyODM4My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXJBcHBUZXN0
cy9XZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMtSW5mby5wbGlzdAorKysgL2Rldi9udWxsCkBAIC0x
LDIyICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08IURP
Q1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8v
d3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KLTxwbGlzdCB2ZXJzaW9u
PSIxLjAiPgotPGRpY3Q+Ci0JPGtleT5DRkJ1bmRsZURldmVsb3BtZW50UmVnaW9uPC9rZXk+Ci0J
PHN0cmluZz5lbjwvc3RyaW5nPgotCTxrZXk+Q0ZCdW5kbGVFeGVjdXRhYmxlPC9rZXk+Ci0JPHN0
cmluZz4ke0VYRUNVVEFCTEVfTkFNRX08L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSWRlbnRpZmll
cjwva2V5PgotCTxzdHJpbmc+b3JnLndlYmtpdC4ke1BST0RVQ1RfTkFNRTpyZmMxMDM0aWRlbnRp
Zmllcn08L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlSW5mb0RpY3Rpb25hcnlWZXJzaW9uPC9rZXk+
Ci0JPHN0cmluZz42LjA8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlUGFja2FnZVR5cGU8L2tleT4K
LQk8c3RyaW5nPkJOREw8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlU2hvcnRWZXJzaW9uU3RyaW5n
PC9rZXk+Ci0JPHN0cmluZz4xLjA8L3N0cmluZz4KLQk8a2V5PkNGQnVuZGxlU2lnbmF0dXJlPC9r
ZXk+Ci0JPHN0cmluZz4/Pz8/PC9zdHJpbmc+Ci0JPGtleT5DRkJ1bmRsZVZlcnNpb248L2tleT4K
LQk8c3RyaW5nPjE8L3N0cmluZz4KLTwvZGljdD4KLTwvcGxpc3Q+CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy9XZWJLaXRUZXN0UnVu
bmVyQXBwVGVzdHMubSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFw
cFRlc3RzL1dlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy5tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBkZjI4YmNkYzhlZjU4YWVmMjk3ZDNiY2ZhMjI1OGY5MWZiYjI1NjVlLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzL1dlYktpdFRlc3RSdW5uZXJBcHBUZXN0cy5t
CisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotLy8KLS8vICBXZWJLaXRUZXN0UnVubmVy
QXBwVGVzdHMubQotLy8gIFdlYktpdFRlc3RSdW5uZXJBcHBUZXN0cwotLy8KLS8vICBDcmVhdGVk
IGJ5IERhdmlkIEZhcmxlciBvbiAxLzIyLzE0LgotLy8KLS8vCi0KLSNpbXBvcnQgPFhDVGVzdC9Y
Q1Rlc3QuaD4KLQotQGludGVyZmFjZSBXZWJLaXRUZXN0UnVubmVyQXBwVGVzdHMgOiBYQ1Rlc3RD
YXNlCi0KLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIFdlYktpdFRlc3RSdW5uZXJBcHBUZXN0cwot
Ci0tICh2b2lkKXNldFVwCi17Ci0gICAgW3N1cGVyIHNldFVwXTsKLSAgICAvLyBQdXQgc2V0dXAg
Y29kZSBoZXJlLiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYmVmb3JlIHRoZSBpbnZvY2F0aW9uIG9m
IGVhY2ggdGVzdCBtZXRob2QgaW4gdGhlIGNsYXNzLgotfQotCi0tICh2b2lkKXRlYXJEb3duCi17
Ci0gICAgLy8gUHV0IHRlYXJkb3duIGNvZGUgaGVyZS4gVGhpcyBtZXRob2QgaXMgY2FsbGVkIGFm
dGVyIHRoZSBpbnZvY2F0aW9uIG9mIGVhY2ggdGVzdCBtZXRob2QgaW4gdGhlIGNsYXNzLgotICAg
IFtzdXBlciB0ZWFyRG93bl07Ci19Ci0KLS0gKHZvaWQpdGVzdEV4YW1wbGUKLXsKLSAgICBYQ1RG
YWlsKEAiTm8gaW1wbGVtZW50YXRpb24gZm9yIFwiJXNcIiIsIF9fUFJFVFRZX0ZVTkNUSU9OX18p
OwotfQotCi1AZW5kCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRl
c3RSdW5uZXJBcHBUZXN0cy9lbi5scHJvai9JbmZvUGxpc3Quc3RyaW5ncyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcFRlc3RzL2VuLmxwcm9qL0luZm9QbGlzdC5z
dHJpbmdzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NzdiMjhmZjhmODZhMzE1OGE3
MWM0OTM0ZmJkM2EyNDU2NzE3ZDdhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lckFwcFRl
c3RzL2VuLmxwcm9qL0luZm9QbGlzdC5zdHJpbmdzCisrKyAvZGV2L251bGwKQEAgLTEsMiArMCww
IEBACi0vKiBMb2NhbGl6ZWQgdmVyc2lvbnMgb2YgSW5mby5wbGlzdCBrZXlzICovCi0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvQ3Jhc2hSZXBvcnRlckluZm8uaCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvQ3Jhc2hSZXBvcnRlckluZm8uaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41M2ZmZGEzMzhmYzAwNGM3MTc4OGQyNDE0YjliMWM5OTc1YTBjZTc3Ci0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9DcmFzaFJlcG9ydGVySW5mby5o
CkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENyYXNoUmVwb3J0ZXJJbmZv
X2gKKyNkZWZpbmUgQ3Jhc2hSZXBvcnRlckluZm9faAorCituYW1lc3BhY2UgV1RSIHsKKwordm9p
ZCBzZXRDcmFzaFJlcG9ydEFwcGxpY2F0aW9uU3BlY2lmaWNJbmZvcm1hdGlvblRvVVJMKFdLVVJM
UmVmKTsKKworfQorCisjZW5kaWYgLy8gQ3Jhc2hSZXBvcnRlckluZm9faApkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9DcmFzaFJlcG9ydGVySW5mby5tbSBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvY29jb2EvQ3Jhc2hSZXBvcnRlckluZm8ubW0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmM0ZWJmYzAyOTc1ZWJjMTE5NmZkZmIwMTA5ZDgyMWUwYzY1OTk4MQotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvQ3Jhc2hSZXBvcnRlckluZm8ubW0KQEAg
LTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaW1wb3J0
ICJTdHJpbmdGdW5jdGlvbnMuaCIKKyNpbXBvcnQgPFdlYktpdDIvV0tVUkxDRi5oPgorI2ltcG9y
dCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+Cisj
aW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKworbmFtZXNwYWNlIFdUUiB7CisKK3VzaW5nIG5hbWVzcGFjZSBXVEY7CisKK3N0
YXRpYyBTdHJpbmcgdGVzdFBhdGhGcm9tVVJMKFdLVVJMUmVmIHVybCkKK3sKKyAgICBSZXRhaW5Q
dHI8Q0ZVUkxSZWY+IGNmVVJMID0gYWRvcHRDRihXS1VSTENvcHlDRlVSTChrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCB1cmwpKTsKKyAgICBpZiAoIWNmVVJMKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CisKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNjaGVtZUNGU3RyaW5nID0gYWRvcHRDRihD
RlVSTENvcHlTY2hlbWUoY2ZVUkwuZ2V0KCkpKTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+
IHBhdGhDRlN0cmluZyA9IGFkb3B0Q0YoQ0ZVUkxDb3B5UGF0aChjZlVSTC5nZXQoKSkpOworCisg
ICAgU3RyaW5nIHNjaGVtZVN0cmluZyhzY2hlbWVDRlN0cmluZy5nZXQoKSk7CisgICAgU3RyaW5n
IHBhdGhTdHJpbmcocGF0aENGU3RyaW5nLmdldCgpKTsKKyAgICAKKyAgICBpZiAoZXF1YWxJZ25v
cmluZ0Nhc2Uoc2NoZW1lU3RyaW5nLCAiZmlsZSIpKSB7CisgICAgICAgIFN0cmluZyBsYXlvdXRU
ZXN0cygiL0xheW91dFRlc3RzLyIpOworICAgICAgICBzaXplX3QgbGF5b3V0VGVzdHNPZmZzZXQg
PSBwYXRoU3RyaW5nLmZpbmQobGF5b3V0VGVzdHMpOworICAgICAgICBpZiAobGF5b3V0VGVzdHNP
ZmZzZXQgPT0gbm90Rm91bmQpCisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICAg
ICAgcmV0dXJuIHBhdGhTdHJpbmcuc3Vic3RyaW5nKGxheW91dFRlc3RzT2Zmc2V0ICsgbGF5b3V0
VGVzdHMubGVuZ3RoKCkpOworICAgIH0KKworICAgIGlmICghZXF1YWxJZ25vcmluZ0Nhc2Uoc2No
ZW1lU3RyaW5nLCAiaHR0cCIpICYmICFlcXVhbElnbm9yaW5nQ2FzZShzY2hlbWVTdHJpbmcsICJo
dHRwcyIpKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICBSZXRhaW5QdHI8Q0ZTdHJp
bmdSZWY+IGhvc3RDRlN0cmluZyA9IGFkb3B0Q0YoQ0ZVUkxDb3B5SG9zdE5hbWUoY2ZVUkwuZ2V0
KCkpKTsKKyAgICBTdHJpbmcgaG9zdFN0cmluZyhob3N0Q0ZTdHJpbmcuZ2V0KCkpOworICAgIGlm
IChob3N0U3RyaW5nID09ICIxMjcuMC4wLjEiICAmJiAoQ0ZVUkxHZXRQb3J0TnVtYmVyKGNmVVJM
LmdldCgpKSA9PSA4MDAwIHx8IENGVVJMR2V0UG9ydE51bWJlcihjZlVSTC5nZXQoKSkgPT0gODQ0
MykpCisgICAgICAgIHJldHVybiBwYXRoU3RyaW5nOworCisgICAgcmV0dXJuIFN0cmluZygpOwor
fQorCit2b2lkIHNldENyYXNoUmVwb3J0QXBwbGljYXRpb25TcGVjaWZpY0luZm9ybWF0aW9uVG9V
UkwoV0tVUkxSZWYgdXJsKQoreworICAgIFN0cmluZyB0ZXN0UGF0aCA9IHRlc3RQYXRoRnJvbVVS
TCh1cmwpOworICAgIGlmICghdGVzdFBhdGguaXNOdWxsKCkpIHsKKyAgICAgICAgU3RyaW5nQnVp
bGRlciBidWlsZGVyOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIkNSQVNISU5HIFRF
U1Q6ICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCh0ZXN0UGF0aCk7CisgICAgICAgIFdLU2V0
Q3Jhc2hSZXBvcnRBcHBsaWNhdGlvblNwZWNpZmljSW5mb3JtYXRpb24oYnVpbGRlci50b1N0cmlu
ZygpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2Ug
V1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2VmbC9UZXN0Q29udHJvbGxl
ckVmbC5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2VmbC9UZXN0Q29udHJvbGxlckVmbC5j
cHAKaW5kZXggZGY4ZGNkOTEzNWI3YTUyNGFjYmE1MzNkZTkxNDQ4YzZmMzM0Mzc1NC4uZjdmMzJm
MTQ2Yjg0ZWU3ZDUzMzE4ZTg0MWE1Zjg0MzJhMmE5YTQyOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9lZmwvVGVzdENvbnRyb2xsZXJFZmwuY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvZWZsL1Rlc3RDb250cm9sbGVyRWZsLmNwcApAQCAtNjMsNiArNjMsMTAgQEAg
dm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1EZXN0cm95KCkKIHsKIH0KIAordm9pZCBUZXN0
Q29udHJvbGxlcjo6cGxhdGZvcm1XaWxsUnVuVGVzdChjb25zdCBUZXN0SW52b2NhdGlvbiYpCit7
Cit9CisKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUnVuVW50aWwoYm9vbCYgY29uZGl0
aW9uLCBkb3VibGUgdGltZW91dCkKIHsKICAgICBpZiAodGltZW91dCA9PSBtX25vVGltZW91dCkg
ewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xsZXJH
dGsuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvVGVzdENvbnRyb2xsZXJHdGsuY3Bw
CmluZGV4IGQ4ZmI5ZjcyODg0NWIyMmEyYWY5ODA0MTE0YjI4NjI0NWMwNWEwYjguLmU1Y2I3MWUw
ZTI3NDc3NjEzMTM4ZTU5MTMyZTU0NzljZTNmNGY5YzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2d0ay9UZXN0Q29udHJvbGxlckd0ay5jcHAKQEAgLTY1LDYgKzY1LDEwIEBAIHN0
YXRpYyBnYm9vbGVhbiB0aW1lb3V0Q2FsbGJhY2soZ3BvaW50ZXIpCiAgICAgcmV0dXJuIEZBTFNF
OwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVdpbGxSdW5UZXN0KGNvbnN0IFRl
c3RJbnZvY2F0aW9uJikKK3sKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SdW5V
bnRpbChib29sJiwgZG91YmxlIHRpbWVvdXQpCiB7CiAgICAgY2FuY2VsVGltZW91dCgpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0g
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbQppbmRleCBk
Mzc2Y2IyOTA0YzNhYmI5YWJkY2MwYzRkMTY0NTFiN2E1MDM5Yjc5Li4yNDFjYzg4OGE5YzBjNTI3
MGFkZGE0YmU5YzIyZWRkZTZjMDg5MmQ4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2lvcy9UZXN0Q29udHJvbGxlcklPUy5tbQpAQCAtMjYsNyArMjYsOSBAQAogI2ltcG9ydCAiY29u
ZmlnLmgiCiAjaW1wb3J0ICJUZXN0Q29udHJvbGxlci5oIgogCisjaW1wb3J0ICJDcmFzaFJlcG9y
dGVySW5mby5oIgogI2ltcG9ydCAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW1wb3J0ICJUZXN0SW52
b2NhdGlvbi5oIgogI2ltcG9ydCA8V2ViS2l0Mi9XS1N0cmluZ0NGLmg+CiAjaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWQuaD4KIApAQCAtNTUsNiArNTcsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6
aW5pdGlhbGl6ZVRlc3RQbHVnaW5EaXJlY3RvcnkoKQogICAgIG1fdGVzdFBsdWdpbkRpcmVjdG9y
eS5hZG9wdChXS1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZygoQ0ZTdHJpbmdSZWYpW1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBidW5kbGVQYXRoXSkpOwogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjpw
bGF0Zm9ybVdpbGxSdW5UZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJiB0ZXN0SW52b2NhdGlvbikK
K3sKKyAgICBzZXRDcmFzaFJlcG9ydEFwcGxpY2F0aW9uU3BlY2lmaWNJbmZvcm1hdGlvblRvVVJM
KHRlc3RJbnZvY2F0aW9uLnVybCgpKTsKK30KKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZv
cm1SdW5VbnRpbChib29sJiBkb25lLCBkb3VibGUgdGltZW91dCkKIHsKICAgICBOU0RhdGUgKmVu
ZERhdGUgPSAodGltZW91dCA+IDApID8gW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNl
Tm93OnRpbWVvdXRdIDogW05TRGF0ZSBkaXN0YW50RnV0dXJlXTsKQEAgLTgxLDcgKzg4LDggQEAg
Y29uc3QgY2hhciogVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtTGlicmFyeVBhdGhGb3JUZXN0aW5n
KCkKICAgICByZXR1cm4gW1tAIn4vTGlicmFyeS9BcHBsaWNhdGlvbiBTdXBwb3J0L1dlYktpdFRl
c3RSdW5uZXIiIHN0cmluZ0J5RXhwYW5kaW5nVGlsZGVJblBhdGhdIFVURjhTdHJpbmddOwogfQog
Ci12b2lkIFRlc3RDb250cm9sbGVyOjpzZXRIaWRkZW4oYm9vbCkgewordm9pZCBUZXN0Q29udHJv
bGxlcjo6c2V0SGlkZGVuKGJvb2wpCit7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudCBmb3IgaU9T
CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1Rlc3RDb250cm9s
bGVyTWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVGVzdENvbnRyb2xsZXJNYWMu
bW0KaW5kZXggY2RmMWNiYzM0NzEwYTU5NzA4ZWVmZWQ0ZDAwY2VhZjYwOTFjYWI4YS4uZDAxNjI2
MDZmODI0OWVkM2U2OWQwZjMzNTA2MzdkZmZhN2Q0NjAwZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9tYWMvVGVzdENvbnRyb2xsZXJNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9tYWMvVGVzdENvbnRyb2xsZXJNYWMubW0KQEAgLTI2LDggKzI2LDEwIEBACiAj
aW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlRlc3RDb250cm9sbGVyLmgiCiAKKyNpbXBvcnQg
IkNyYXNoUmVwb3J0ZXJJbmZvLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVdlYlZpZXcuaCIKICNpbXBv
cnQgIlBvc2VBc0NsYXNzLmgiCisjaW1wb3J0ICJUZXN0SW52b2NhdGlvbi5oIgogI2ltcG9ydCAi
V2ViS2l0VGVzdFJ1bm5lclBhc3RlYm9hcmQuaCIKICNpbXBvcnQgPFdlYktpdDIvV0tTdHJpbmdD
Ri5oPgogI2ltcG9ydCA8bWFjaC1vL2R5bGQuaD4gCkBAIC02Niw2ICs2OCwxMSBAQCB2b2lkIFRl
c3RDb250cm9sbGVyOjppbml0aWFsaXplVGVzdFBsdWdpbkRpcmVjdG9yeSgpCiAgICAgbV90ZXN0
UGx1Z2luRGlyZWN0b3J5LmFkb3B0KFdLU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKChDRlN0cmlu
Z1JlZilbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZVBhdGhdKSk7CiB9CiAKK3ZvaWQgVGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtV2lsbFJ1blRlc3QoY29uc3QgVGVzdEludm9jYXRpb24mIHRl
c3RJbnZvY2F0aW9uKQoreworICAgIHNldENyYXNoUmVwb3J0QXBwbGljYXRpb25TcGVjaWZpY0lu
Zm9ybWF0aW9uVG9VUkwodGVzdEludm9jYXRpb24udXJsKCkpOworfQorCiB2b2lkIFRlc3RDb250
cm9sbGVyOjpwbGF0Zm9ybVJ1blVudGlsKGJvb2wmIGRvbmUsIGRvdWJsZSB0aW1lb3V0KQogewog
ICAgIE5TRGF0ZSAqZW5kRGF0ZSA9ICh0aW1lb3V0ID4gMCkgPyBbTlNEYXRlIGRhdGVXaXRoVGlt
ZUludGVydmFsU2luY2VOb3c6dGltZW91dF0gOiBbTlNEYXRlIGRpc3RhbnRGdXR1cmVdOwo=
</data>
<flag name="review"
          id="254198"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>