<?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>25852</bug_id>
          
          <creation_ts>2009-05-18 03:59:36 -0700</creation_ts>
          <short_desc>No way to test multi-file drags in DumpRenderTree</short_desc>
          <delta_ts>2009-05-20 22:59:39 -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>Mac</rep_platform>
          <op_sys>OS X 10.5</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>
          
          <blocked>25862</blocked>
    
    <blocked>25879</blocked>
    
    <blocked>25909</blocked>
    
    <blocked>25924</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>121775</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-18 03:59:36 -0700</bug_when>
    <thetext>No way to test file drags in DumpRenderTree

Which means we can&apos;t test &lt;input type=&quot;file&quot;&gt; dragging.  I&apos;m going to take a moment tomorrow and look at adding such.  Maybe something like:

eventSender.beginFileDrag(&quot;foo.png&quot;);
eventSender.mouseMoveTo(10, 10);
eventSender.mouseUp();

We could even use this for testing the &quot;hover&quot; effect on &lt;input type=&quot;file&quot;&gt; by causing the pixel dump to occur before the actual mouseUp().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121777</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-18 04:13:28 -0700</bug_when>
    <thetext>Oh, turns out we already have layoutTestController.addFileToPasteboardOnDrag()

Not quite everything I want, but it&apos;s a start.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121865</commentid>
    <comment_count>2</comment_count>
      <attachid>30458</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-18 23:54:56 -0700</bug_when>
    <thetext>Created attachment 30458
Remove layoutTestController.addFileToPasteboardOnDrag and add eventSender.beginDragWithFiles

 14 files changed, 206 insertions(+), 85 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121866</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-18 23:55:27 -0700</bug_when>
    <thetext>Oops,  I forgot to mention in the changeLog that I sorted the selectors in a couple functions.  I&apos;ll update my local copy of the ChangeLog to say so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121868</commentid>
    <comment_count>4</comment_count>
      <attachid>30458</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-18 23:57:56 -0700</bug_when>
    <thetext>Comment on attachment 30458
Remove layoutTestController.addFileToPasteboardOnDrag and add eventSender.beginDragWithFiles

I&apos;ll post an updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121869</commentid>
    <comment_count>5</comment_count>
      <attachid>30459</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-18 23:58:13 -0700</bug_when>
    <thetext>Created attachment 30459
Remove layoutTestController.addFileToPasteboardOnDrag and add eventSender.beginDragWithFiles

 14 files changed, 225 insertions(+), 85 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121873</commentid>
    <comment_count>6</comment_count>
      <attachid>30460</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-19 00:14:52 -0700</bug_when>
    <thetext>Created attachment 30460
Remove layoutTestController.addFileToPasteboardOnDrag and add eventSender.beginDragWithFiles

 14 files changed, 210 insertions(+), 87 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121991</commentid>
    <comment_count>7</comment_count>
      <attachid>30487</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-19 17:37:27 -0700</bug_when>
    <thetext>Created attachment 30487
Remove layoutTestController.addFileToPasteboardOnDrag and add eventSender.beginDragWithFiles

 23 files changed, 389 insertions(+), 164 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121992</commentid>
    <comment_count>8</comment_count>
      <attachid>30460</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-19 17:38:15 -0700</bug_when>
    <thetext>Comment on attachment 30460
Remove layoutTestController.addFileToPasteboardOnDrag and add eventSender.beginDragWithFiles

Sadly this patch was still in the queue this morning, so I decided to fix bug 25862 as well.  I&apos;ve uploaded a new (slightly larger, but much much cooler) patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122002</commentid>
    <comment_count>9</comment_count>
      <attachid>30488</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-19 18:50:26 -0700</bug_when>
    <thetext>Created attachment 30488
Remove layoutTestController.addFileToPasteboardOnDrag and add eventSender.beginDragWithFiles

 23 files changed, 419 insertions(+), 164 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122080</commentid>
    <comment_count>10</comment_count>
      <attachid>30488</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-05-19 23:18:06 -0700</bug_when>
    <thetext>Comment on attachment 30488
Remove layoutTestController.addFileToPasteboardOnDrag and add eventSender.beginDragWithFiles

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122089</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-20 00:32:49 -0700</bug_when>
    <thetext>YAY!

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	D	LayoutTests/fast/forms/dragging-to-disabled-file-input-expected.txt
	D	LayoutTests/fast/forms/dragging-to-disabled-file-input.html
	D	LayoutTests/fast/forms/dragging-to-file-input-expected.txt
	D	LayoutTests/fast/forms/dragging-to-file-input.html
	M	LayoutTests/ChangeLog
	A	LayoutTests/editing/pasteboard/file-input-files-access-expected.txt
	A	LayoutTests/editing/pasteboard/file-input-files-access.html
	A	LayoutTests/editing/pasteboard/resources/File With Spaces! For Drägging?.gif
	A	LayoutTests/editing/pasteboard/resources/apple.gif
	A	LayoutTests/editing/pasteboard/resources/file-input-files-access.js
	A	LayoutTests/editing/pasteboard/resources/mozilla.gif
	M	LayoutTests/platform/gtk/Skipped
	M	LayoutTests/platform/qt/Skipped
	M	LayoutTests/platform/win/Skipped
	M	WebKitTools/ChangeLog
	M	WebKitTools/DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj
	A	WebKitTools/DumpRenderTree/DumpRenderTreeFileDraggingSource.h
	A	WebKitTools/DumpRenderTree/DumpRenderTreeFileDraggingSource.m
	M	WebKitTools/DumpRenderTree/LayoutTestController.cpp
	M	WebKitTools/DumpRenderTree/LayoutTestController.h
	M	WebKitTools/DumpRenderTree/mac/DumpRenderTree.mm
	M	WebKitTools/DumpRenderTree/mac/EventSendingController.mm
	M	WebKitTools/DumpRenderTree/mac/UIDelegate.mm
Committed r43890
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30458</attachid>
            <date>2009-05-18 23:54:56 -0700</date>
            <delta_ts>2009-05-18 23:57:56 -0700</delta_ts>
            <desc>Remove layoutTestController.addFileToPasteboardOnDrag and add eventSender.beginDragWithFiles</desc>
            <filename>Remove-layoutTestController.addFileToPasteboardOnDrag-and-add-eventSender.beginDragWithFiles.patch</filename>
            <type>text/plain</type>
            <size>29422</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">YzU4ZWM1OTFmZTNkY2MxZmVmY2QxYWRlM2E3NGFhNzYwY2IyYjFjOApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVlZjVlNTku
LmY1ZDBiYWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAwOS0wNS0xOCAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVtb3ZlIGxheW91dFRlc3RDb250cm9sbGVyLmFkZEZpbGVUb1Bhc3RlYm9h
cmRPbkRyYWcgYW5kIGFkZCBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1ODUyCisKKyAgICAgICAg
UmUtd3JvdGUgdGhlc2UgdGVzdHMgdG8gdXNlIHRoZSBtb3JlIGZlYXR1cmUtZnVsbCBldmVudFNl
bmRlci5iZWdpbkRyYWdXaXRoRmlsZXMKKyAgICAgICAgTm9uLW1hYyBwbGF0Zm9ybXMgYWxyZWFk
eSBza2lwIHRoZXNlIHRlc3RzLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9kcmFnZ2luZy10by1k
aXNhYmxlZC1maWxlLWlucHV0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Ry
YWdnaW5nLXRvLWRpc2FibGVkLWZpbGUtaW5wdXQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1z
L2RyYWdnaW5nLXRvLWZpbGUtaW5wdXQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9y
bXMvZHJhZ2dpbmctdG8tZmlsZS1pbnB1dC5odG1sOgorCiAyMDA5LTA1LTE4ICBEYXZpZCBLaWx6
ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgQnVnIDIwNjUyOiBXZWJLaXQgZG9l
c24ndCBkaXNwbGF5IGZhdmljb25zIHdpdGggTUlNRSB0eXBlIGltYWdlL3ZuZC5taWNyb3NvZnQu
aWNvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kcmFnZ2luZy10by1kaXNh
YmxlZC1maWxlLWlucHV0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJh
Z2dpbmctdG8tZGlzYWJsZWQtZmlsZS1pbnB1dC1leHBlY3RlZC50eHQKaW5kZXggNTI4YmUyYy4u
YWY5YWM1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kcmFnZ2luZy10by1k
aXNhYmxlZC1maWxlLWlucHV0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2RyYWdnaW5nLXRvLWRpc2FibGVkLWZpbGUtaW5wdXQtZXhwZWN0ZWQudHh0CkBAIC0zLDYg
KzMsNSBAQCBUaGlzIHRlc3RzIHRoYXQgeW91IGNhbid0IGRyYWcgYSBmaWxlIG9udG8gYSBkaXNh
YmxlZCA8aW5wdXQgdHlwZT0iZmlsZSI+CiBUbyB0ZXN0IG1hbnVhbGx5IHlvdSBuZWVkIHRvIGF0
dGVtcHQgdG8gZHJhZyBhIGZpbGUgb250byB0aGUgZmlsZSBpbnB1dCBiZWxvdwogCiAKLQogUEFT
UzogQ291bGQgbm90IGRyb3AgZmlsZSBvbiB0byB0aGUgZGlzYWJsZWQgZmlsZSBpbnB1dAogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RyYWdnaW5nLXRvLWRpc2FibGVkLWZp
bGUtaW5wdXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZGlzYWJs
ZWQtZmlsZS1pbnB1dC5odG1sCmluZGV4IDg3MmQwODkuLjE5ZGI5YzAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZGlzYWJsZWQtZmlsZS1pbnB1dC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZGlzYWJsZWQtZmlsZS1p
bnB1dC5odG1sCkBAIC0xLDEwICsxLDggQEAKIDxwPlRoaXMgdGVzdHMgdGhhdCB5b3UgY2FuJ3Qg
ZHJhZyBhIGZpbGUgb250byBhIGRpc2FibGVkICZsdDtpbnB1dCB0eXBlPSJmaWxlIiZndDs8L3A+
CiA8cD5UbyB0ZXN0IG1hbnVhbGx5IHlvdSBuZWVkIHRvIGF0dGVtcHQgdG8gZHJhZyBhIGZpbGUg
b250byB0aGUgZmlsZSBpbnB1dCBiZWxvdzwvcD4KLTxpbnB1dCBpZD0idGFyZ2V0IiB0eXBlPSJm
aWxlIiBkaXNhYmxlZC8+PGJyIC8+Ci08aW5wdXQgaWQ9ImRyYWdTdGFydCIgdHlwZT0idGV4dCIg
dmFsdWU9IlRoaXMgaW5wdXQgZmllbGQgaXMgb25seSBwcmVzZW50IHRvIGFsbG93IERSVCB0byBp
bml0aWF0ZSBhIGRyYWciPjwvaW5wdXQ+PGJyIC8+Cis8aW5wdXQgaWQ9InRhcmdldCIgdHlwZT0i
ZmlsZSIgZGlzYWJsZWQgLz48YnIgLz4KIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgogCi0KIDxz
Y3JpcHQ+CiAgICAgZnVuY3Rpb24gZGVidWcoc3RyKSB7CiAgICAgICAgIHZhciBjID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKQpAQCAtMTIsMjQgKzEwLDE2IEBACiAgICAgfQog
CiAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAgICAgdmFyIGRyYWdTdGFydCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJkcmFnU3RhcnQiKTsKLSAgICAgICAgdmFyIHggPSBkcmFnU3Rh
cnQub2Zmc2V0TGVmdCArIGRyYWdTdGFydC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZhciB5
ID0gZHJhZ1N0YXJ0Lm9mZnNldFRvcCArIGRyYWdTdGFydC5vZmZzZXRIZWlnaHQgLyAyOwotCiAg
ICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAg
ICAgICAgIHZhciB0eCA9IHRhcmdldC5vZmZzZXRMZWZ0ICsgdGFyZ2V0Lm9mZnNldFdpZHRoIC8g
MjsKICAgICAgICAgdmFyIHR5ID0gdGFyZ2V0Lm9mZnNldFRvcCArIHRhcmdldC5vZmZzZXRIZWln
aHQgLyAyOwotICAgICAgICAKLSAgICAgICAgZHJhZ1N0YXJ0LnNlbGVjdCgpOwogCiAgICAgICAg
IHZhciBpbml0aWFsVmFsdWUgPSB0YXJnZXQudmFsdWU7Ci0gICAgICAgIAotICAgICAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3du
KCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDQwMCk7CisKKyAgICAgICAgZXZl
bnRTZW5kZXIuYmVnaW5EcmFnV2l0aEZpbGVzKFsnRFJURmFrZUZpbGUnXSk7CiAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHR4LCB0eSk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsgICAgICAgCi0gICAgICAgICAKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwor
CiAgICAgICAgIHZhciBmaW5hbFZhbHVlID0gdGFyZ2V0LnZhbHVlOwogICAgICAgICBpZiAoaW5p
dGlhbFZhbHVlID09IGZpbmFsVmFsdWUpCiAgICAgICAgICAgICBkZWJ1ZygiUEFTUzogQ291bGQg
bm90IGRyb3AgZmlsZSBvbiB0byB0aGUgZGlzYWJsZWQgZmlsZSBpbnB1dCIpOwpAQCAtMzgsMTMg
KzI4LDcgQEAKICAgICB9CiAKICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFkZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWco
KTsKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICBy
dW5UZXN0KCk7CiAgICAgfQotICAgIAotICAgIC8vIHJlbW92ZSBkcmFnIHNvdXJjZQotICAgIHZh
ciBkcmFnU3RhcnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHJhZ1N0YXJ0Iik7Ci0gICAg
ZHJhZ1N0YXJ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZHJhZ1N0YXJ0KTsKLSAgICAKIDwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kcmFnZ2luZy10by1maWxl
LWlucHV0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8t
ZmlsZS1pbnB1dC1leHBlY3RlZC50eHQKaW5kZXggYmU5MTA3MS4uZGIxMzJhYyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kcmFnZ2luZy10by1maWxlLWlucHV0LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RyYWdnaW5nLXRvLWZpbGUtaW5wdXQt
ZXhwZWN0ZWQudHh0CkBAIC0zLDcgKzMsNiBAQCBUaGlzIHRlc3RzIHRoZSBhYmlsaXR5IHRvIGRy
YWcgYSBmaWxlIG9udG8gPGlucHV0IHR5cGU9ImZpbGUiPgogVG8gdGVzdCBtYW51YWxseSB5b3Ug
bmVlZCB0byBhdHRlbXB0IHRvIGRyYWcgYSBmaWxlIG9udG8gdGhlIGZpbGUgaW5wdXQgYmVsb3cK
IAogCi0KIFBBU1M6IFN1Y2Nlc3NmdWxseSBkcm9wcGVkIGZpbGUgb24gdG8gZmlsZSBpbnB1dAog
UEFTUzogRmluaXNoZWQgdGVzdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2RyYWdnaW5nLXRvLWZpbGUtaW5wdXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJh
Z2dpbmctdG8tZmlsZS1pbnB1dC5odG1sCmluZGV4IDA4ZDJjZDcuLmYyZDNjNzIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZmlsZS1pbnB1dC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZmlsZS1pbnB1dC5odG1sCkBA
IC0xLDEwICsxLDggQEAKIDxwPlRoaXMgdGVzdHMgdGhlIGFiaWxpdHkgdG8gZHJhZyBhIGZpbGUg
b250byAmbHQ7aW5wdXQgdHlwZT0iZmlsZSImZ3Q7PC9wPgogPHA+VG8gdGVzdCBtYW51YWxseSB5
b3UgbmVlZCB0byBhdHRlbXB0IHRvIGRyYWcgYSBmaWxlIG9udG8gdGhlIGZpbGUgaW5wdXQgYmVs
b3c8L3A+Ci08aW5wdXQgaWQ9InRhcmdldCIgdHlwZT0iZmlsZSIvPjxiciAvPgotPGlucHV0IGlk
PSJkcmFnU3RhcnQiIHR5cGU9InRleHQiIHZhbHVlPSJUaGlzIGlucHV0IGZpZWxkIGlzIG9ubHkg
cHJlc2VudCB0byBhbGxvdyBEUlQgdG8gaW5pdGlhdGUgYSBkcmFnIj48L2lucHV0PjxiciAvPgor
PGlucHV0IGlkPSJ0YXJnZXQiIHR5cGU9ImZpbGUiIC8+PGJyIC8+CiA8cHJlIGlkPSJjb25zb2xl
Ij48L3ByZT4KIAotCiA8c2NyaXB0PgogICAgIGZ1bmN0aW9uIGRlYnVnKHN0cikgewogICAgICAg
ICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykKQEAgLTEyLDQxICsx
MCwyNyBAQAogICAgIH0KIAogICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIHZhciBk
cmFnU3RhcnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHJhZ1N0YXJ0Iik7Ci0gICAgICAg
IHZhciB4ID0gZHJhZ1N0YXJ0Lm9mZnNldExlZnQgKyBkcmFnU3RhcnQub2Zmc2V0V2lkdGggLyAy
OwotICAgICAgICB2YXIgeSA9IGRyYWdTdGFydC5vZmZzZXRUb3AgKyBkcmFnU3RhcnQub2Zmc2V0
SGVpZ2h0IC8gMjsKLQogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRhcmdldCIpOwogICAgICAgICB2YXIgdHggPSB0YXJnZXQub2Zmc2V0TGVmdCArIHRhcmdl
dC5vZmZzZXRXaWR0aCAvIDI7CiAgICAgICAgIHZhciB0eSA9IHRhcmdldC5vZmZzZXRUb3AgKyB0
YXJnZXQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgCi0gICAgICAgIGRyYWdTdGFydC5zZWxl
Y3QoKTsKIAogICAgICAgICB2YXIgaW5pdGlhbFZhbHVlID0gdGFyZ2V0LnZhbHVlOwotICAgICAg
ICAKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7Ci0gICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlRG93bigpOwotICAgICAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCg0MDAp
OworCisgICAgICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhbJ0RSVEZha2VGaWxl
J10pOwogICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh0eCwgdHkpOwotICAgICAgICBl
dmVudFNlbmRlci5tb3VzZVVwKCk7ICAgICAgIAotICAgICAgICAgCisgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlVXAoKTsKKwogICAgICAgICB2YXIgZmluYWxWYWx1ZSA9IHRhcmdldC52YWx1ZTsK
ICAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSA9PSBmaW5hbFZhbHVlIHx8IGZpbmFsVmFsdWUgIT0g
IkRSVEZha2VGaWxlIikKLSAgICAgICAgICAgIGRlYnVnKCJGQUlMOiBDb3VsZCBub3QgZHJvcCBm
aWxlIG9uIHRvIGZpbGUgaW5wdXQiKTsKKyAgICAgICAgICAgIGRlYnVnKCJGQUlMOiBDb3VsZCBu
b3QgZHJvcCBmaWxlIG9uIHRvIGZpbGUgaW5wdXQgYXQgIiArIHR4ICsgIiwgIiArIHR5ICsgIiAg
aW5pdGlhbFZhbHVlOiAiICsgaW5pdGlhbFZhbHVlICsgIiBmaW5hbFZhbHVlOiAiICsgZmluYWxW
YWx1ZSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGRlYnVnKCJQQVNTOiBTdWNjZXNzZnVs
bHkgZHJvcHBlZCBmaWxlIG9uIHRvIGZpbGUgaW5wdXQiKTsKLSAgICAgICAgICAgIAorCiAgICAg
ICAgIGRlYnVnKCJQQVNTOiBGaW5pc2hlZCB0ZXN0Iik7CiAgICAgfQogCiAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5h
ZGRGaWxlVG9QYXN0ZWJvYXJkT25EcmFnKCk7CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKICAgICAgICAgcnVuVGVzdCgpOwogICAgIH0KLSAgICAKLSAgICAvLyBy
ZW1vdmUgZHJhZyBzb3VyY2UKLSAgICB2YXIgZHJhZ1N0YXJ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImRyYWdTdGFydCIpOwotICAgIGRyYWdTdGFydC5wYXJlbnROb2RlLnJlbW92ZUNoaWxk
KGRyYWdTdGFydCk7Ci0gICAgCi08L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRv
b2xzL0NoYW5nZUxvZwppbmRleCAwYzAyOGNiLi5kZjBjMGY3IDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQg
QEAKKzIwMDktMDUtMTggIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBsYXlvdXRUZXN0
Q29udHJvbGxlci5hZGRGaWxlVG9QYXN0ZWJvYXJkT25EcmFnIGFuZCBhZGQgZXZlbnRTZW5kZXIu
YmVnaW5EcmFnV2l0aEZpbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yNTg1MgorCisgICAgICAgIFRoaXMgYWxsb3dzIHVzIHRvIG5vdyB0ZXN0IG11
bHRpLWZpbGUgZmlsZSBkcmFncyBpbiBEdW1wUmVuZGVyVHJlZS4KKyAgICAgICAgSSBkaWQgbm90
IGFkZCBhbnkgYWRkaXRpb25hbCB0ZXN0cyAoeWV0KSwgYnV0IEkgcmUtd3JvdGUKKyAgICAgICAg
dGhlIGV4aXN0aW5nIHRlc3RzIHdoaWNoIHVzZWQgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkRmls
ZVRvUGFzdGVib2FyZE9uRHJhZworCisgICAgICAgIEkgYWRkZWQgYSBEdW1wUmVuZGVyVHJlZUZp
bGVEcmFnZ2luZ1NvdXJjZSBjbGFzcyB0byBhdm9pZAorICAgICAgICB0aGUgaGFjayBvZiBpZiAo
IWRyYWdnaW5nU291cmNlKSBpbiBbRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8gZHJhZ2dpbmdT
b3VyY2VPcGVyYXRpb25NYXNrXQorCisgICAgICAgIEkgd2lsbCBhZGQgdGVzdHMgaW4gZm9sbG93
LXVwIHBhdGNoZXMgd2hpY2ggdGVzdCBtdWx0aS1maWxlIGRyYWc6CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTg2MgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5oOiBB
ZGRlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2lu
Z1NvdXJjZS5tOiBBZGRlZC4KKyAgICAgICAgKC1bRHVtcFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdT
b3VyY2UgZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrRm9yTG9jYWw6XSk6CisgICAgICAgICgt
W0R1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlIGRyYWdnZWRJbWFnZTpiZWdhbkF0Ol0p
OgorICAgICAgICAoLVtEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZSBkcmFnZ2VkSW1h
Z2U6ZW5kZWRBdDpvcGVyYXRpb246XSk6CisgICAgICAgICgtW0R1bXBSZW5kZXJUcmVlRmlsZURy
YWdnaW5nU291cmNlIGRyYWdnZWRJbWFnZTptb3ZlZFRvOl0pOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250
cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c3RhdGljVmFsdWVzKToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0
aWNGdW5jdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9s
bGVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgor
ICAgICAgICAocnVuVGVzdCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2Vu
ZGluZ0NvbnRyb2xsZXIubW06CisgICAgICAgICgrW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIgaXNT
ZWxlY3RvckV4Y2x1ZGVkRnJvbVdlYlNjcmlwdDpdKToKKyAgICAgICAgKCtbRXZlbnRTZW5kaW5n
Q29udHJvbGxlciB3ZWJTY3JpcHROYW1lRm9yU2VsZWN0b3I6XSk6CisgICAgICAgICgtW0V2ZW50
U2VuZGluZ0NvbnRyb2xsZXIgYmVnaW5EcmFnV2l0aEZpbGVzOl0pOgorICAgICAgICAoLVtFdmVu
dFNlbmRpbmdDb250cm9sbGVyIG1vdXNlTW92ZVRvWDpZOl0pOgorICAgICAgICAoLVtFdmVudFNl
bmRpbmdDb250cm9sbGVyIGtleURvd246d2l0aE1vZGlmaWVyczpdKToKKyAgICAgICAgKC1bRXZl
bnRTZW5kaW5nQ29udHJvbGxlciBmaXJlS2V5Ym9hcmRFdmVudHNUb0VsZW1lbnQ6XSk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW06CisgICAgICAgICgtW1VJRGVs
ZWdhdGUgd2ViVmlldzpkcmFnSW1hZ2U6YXQ6b2Zmc2V0OmV2ZW50OnBhc3RlYm9hcmQ6c291cmNl
OnNsaWRlQmFjazpmb3JWaWV3Ol0pOgorCiAyMDA5LTA1LTE4ICBLZXZpbiBPbGxpdmllciAgPGtl
dmlub0B0aGVvbGxpdmllcnMuY29tPgogCiAgICAgICAgIHd4IGJ1aWxkIGZpeC4gVXNlIHB5dGhv
bi1jb25maWcgdG8gZ2V0IFB5dGhvbiBsaW5raW5nIGluZm8gb24gVW5peCBPU2VzLiAKZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVy
VHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYyZWE0MDEuLmNlMDYxNGYgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVt
cFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTcsNiArNTcsOCBAQAog
CQlBOEI5MUFFMjBDRjNCMzcyMDA4RjkxRkYgLyogRHVtcFJlbmRlclRyZWVQYXN0ZWJvYXJkLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEI5MUFERjBD
RjNCMzcyMDA4RjkxRkYgLyogRHVtcFJlbmRlclRyZWVQYXN0ZWJvYXJkLmggKi87IH07CiAJCUE4
QjkxQkZEMENGNTIyQjQwMDhGOTFGRiAvKiBDaGVja2VkTWFsbG9jLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QjkxQkY3MENGNTIyQjQwMDhGOTFG
RiAvKiBDaGVja2VkTWFsbG9jLmNwcCAqLzsgfTsKIAkJQThCOTFCRkYwQ0Y1MjJCNDAwOEY5MUZG
IC8qIENoZWNrZWRNYWxsb2MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QjkxQkY5MENGNTIyQjQwMDhGOTFGRiAvKiBDaGVja2VkTWFsbG9jLmggKi87
IH07CisJCUE4RDc5Q0VBMEZDMjhCMkMwMDRBQzhGRSAvKiBEdW1wUmVuZGVyVHJlZUZpbGVEcmFn
Z2luZ1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQThENzlDRTgwRkMyOEIyQzAwNEFDOEZFIC8qIER1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5n
U291cmNlLmggKi87IH07CisJCUE4RDc5Q0VCMEZDMjhCMkMwMDRBQzhGRSAvKiBEdW1wUmVuZGVy
VHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQThENzlDRTkwRkMyOEIyQzAwNEFDOEZFIC8qIER1bXBSZW5kZXJUcmVl
RmlsZURyYWdnaW5nU291cmNlLm0gKi87IH07CiAJCUFFODI1OUYzMDhEMjI0NjMwMDA1MDdBQiAv
KiBDYXJib24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQUU4MjU3RUYwOEQyMjM4OTAwMDUwN0FCIC8qIENhcmJvbi5mcmFtZXdvcmsg
Ki87IH07CiAJCUFFODI1OUY0MDhEMjI0NjMwMDA1MDdBQiAvKiBDYXJib24uZnJhbWV3b3JrIGlu
IEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUU4MjU3RUYw
OEQyMjM4OTAwMDUwN0FCIC8qIENhcmJvbi5mcmFtZXdvcmsgKi87IH07CiAJCUI1QTc1MkEyMDhB
RjVEMUYwMDEzOEU0NSAvKiBRdWFydHpDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1QTc1MkExMDhBRjVEMUYwMDEzOEU0NSAv
KiBRdWFydHpDb3JlLmZyYW1ld29yayAqLzsgfTsKQEAgLTE5MSw2ICsxOTMsOCBAQAogCQlBOEI5
MUFERjBDRjNCMzcyMDA4RjkxRkYgLyogRHVtcFJlbmRlclRyZWVQYXN0ZWJvYXJkLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IER1bXBSZW5kZXJUcmVlUGFzdGVib2FyZC5oOyBw
YXRoID0gbWFjL0R1bXBSZW5kZXJUcmVlUGFzdGVib2FyZC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBOEI5MUJGNzBDRjUyMkI0MDA4RjkxRkYgLyogQ2hlY2tlZE1hbGxvYy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDaGVja2VkTWFsbG9jLmNwcDsg
cGF0aCA9IG1hYy9DaGVja2VkTWFsbG9jLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQThCOTFCRjkwQ0Y1MjJCNDAwOEY5MUZGIC8qIENoZWNrZWRNYWxsb2MuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ2hlY2tlZE1hbGxvYy5oOyBwYXRoID0gbWFjL0NoZWNr
ZWRNYWxsb2MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQThENzlDRTgwRkMyOEIy
QzAwNEFDOEZFIC8qIER1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IER1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4RDc5Q0U5MEZDMjhCMkMwMDRBQzhG
RSAvKiBEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLm9iamM7IHBhdGggPSBEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBQTdGMTBDMjBDQjNDMTAzMDAwM0JEQzkgLyog
QUhFTV9fX18uVFRGICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gZmlsZTsgbmFtZSA9ICJBSEVNX19fXy5UVEYiOyBwYXRoID0gInF0L2ZvbnRzL0FIRU1f
X19fLlRURiI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFFODI1N0VGMDhEMjIzODkw
MDA1MDdBQiAvKiBDYXJib24uZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBDYXJib24uZnJh
bWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9uLmZyYW1ld29y
azsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJQjVBNzUyNjcwOEFGNEE0QTAwMTM4
RTQ1IC8qIEltYWdlRGlmZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZp
bGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsgaW5jbHVkZUluSW5kZXggPSAw
OyBwYXRoID0gSW1hZ2VEaWZmOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpA
QCAtMzA2LDYgKzMxMCw4IEBACiAJCQkJQkNBMThDMEEwQzlCNTlFRjAwMTE0MzY5IC8qIER1bXBS
ZW5kZXJUcmVlTWFjLmggKi8sCiAJCQkJQkNBMThCNzMwQzlCMDhGMTAwMTE0MzY5IC8qIER1bXBS
ZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLmggKi8sCiAJCQkJQkNBMThCNzQwQzlCMDhGMTAwMTE0MzY5
IC8qIER1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLm1tICovLAorCQkJCUE4RDc5Q0U4MEZDMjhC
MkMwMDRBQzhGRSAvKiBEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5oICovLAorCQkJ
CUE4RDc5Q0U5MEZDMjhCMkMwMDRBQzhGRSAvKiBEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1Nv
dXJjZS5tICovLAogCQkJCUJDOUQ5MDIxMEM5NzQ3MkQwMDk5QTRBMyAvKiBXb3JrUXVldWUuY3Bw
ICovLAogCQkJCUJDOUQ5MDIyMEM5NzQ3MkUwMDk5QTRBMyAvKiBXb3JrUXVldWUuaCAqLywKIAkJ
CQlCQzlEOTAyMzBDOTc0NzJFMDA5OUE0QTMgLyogV29ya1F1ZXVlSXRlbS5oICovLApAQCAtNTEz
LDYgKzUxOSw3IEBACiAJCQkJQkM5RDkwMjUwQzk3NDcyRTAwOTlBNEEzIC8qIFdvcmtRdWV1ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5RDkwMjYwQzk3NDcyRTAwOTlBNEEzIC8qIFdvcmtRdWV1
ZUl0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzM0JGNUFCMEY5M0ZBNUMwMDBGMDQ0MSAvKiBQ
bGFpblRleHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlBOEQ3OUNFQTBGQzI4QjJD
MDA0QUM4RkUgLyogRHVtcFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdTb3VyY2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpAQCAtNjU4LDYgKzY2NSw3IEBACiAJCQkJQkM5RDkwMjQwQzk3NDcyRTAwOTlBNEEzIC8q
IFdvcmtRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0ExOEIyNjBDOUIwMTVDMDAxMTQz
NjkgLyogV29ya1F1ZXVlSXRlbU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzM0JGNUFDMEY5
M0ZBNUMwMDBGMDQ0MSAvKiBQbGFpblRleHRDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJQThENzlDRUIwRkMyOEIyQzAwNEFDOEZFIC8qIER1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5n
U291cmNlLm0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL0R1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlLmggYi9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhMTE4MzcKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJj
ZS5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlLCBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisgKiAzLiAgTmVp
dGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBu
YW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPENvY29hL0NvY29hLmg+CisKKy8v
IEFuIGltcGxlbWVudGF0aW9uIG9mIE5TRHJhZ2dpbmdTb3VyY2UgZm9yIHVzZSB3aXRoIER1bXBS
ZW5kZXJUcmVlRHJhZ2dpbmdJbmZvIHdoZW4gZHJhZ2dpbmcgZmlsZXMKKy8vIFVzZWQgYnkgLVtF
dmVudFNlbmRpbmdDb250cm9sbGVyIGJlZ2luRHJhZ1dpdGhGaWxlczpdCisKK0BpbnRlcmZhY2Ug
RHVtcFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdTb3VyY2UgOiBOU09iamVjdCB7Cit9CisKKy0gKE5T
RHJhZ09wZXJhdGlvbilkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2tGb3JMb2NhbDooQk9PTClm
bGFnOworCisvLyBJbXBsZW1lbnQgdGhlc2UgdG8gcHJldmVudCAidW5yZWNvZ25pemVkIHNlbGVj
dG9yIiBlcnJvcnMsIGRlc3BpdGUKKy8vIHdoYXQgTlNEcmFnZ2luZy5oJ3MgQkFMRCBGQUNFRCBM
SUVTIGFib3V0IHRoZXNlIG9ubHkgYmVpbmcgc2VudCB0byBvYmplY3RzIHdoaWNoIGltcGxlbWVu
dCB0aGVtLgorLSAodm9pZClkcmFnZ2VkSW1hZ2U6KE5TSW1hZ2UgKilpbWFnZSBiZWdhbkF0OihO
U1BvaW50KXNjcmVlblBvaW50OworLSAodm9pZClkcmFnZ2VkSW1hZ2U6KE5TSW1hZ2UgKilpbWFn
ZSBlbmRlZEF0OihOU1BvaW50KXNjcmVlblBvaW50IG9wZXJhdGlvbjooTlNEcmFnT3BlcmF0aW9u
KW9wZXJhdGlvbjsKKy0gKHZvaWQpZHJhZ2dlZEltYWdlOihOU0ltYWdlICopaW1hZ2UgbW92ZWRU
bzooTlNQb2ludClzY3JlZW5Qb2ludDsKKworQGVuZApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdTb3VyY2UubSBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlLm0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGU2OWE4YwotLS0gL2Rldi9udWxs
CisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlRmlsZURyYWdn
aW5nU291cmNlLm0KQEAgLTAsMCArMSwzMSBAQAorLy8KKy8vICBEdW1wUmVuZGVyVHJlZUZpbGVE
cmFnZ2luZ1NvdXJjZS5tCisvLyAgRHVtcFJlbmRlclRyZWUKKy8vCisvLyAgQ3JlYXRlZCBieSBF
cmljIFNlaWRlbCBvbiA1LzE5LzA5LgorLy8gIENvcHlyaWdodCAyMDA5IF9fTXlDb21wYW55TmFt
ZV9fLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8KKworI2ltcG9ydCAiRHVtcFJlbmRlclRyZWVG
aWxlRHJhZ2dpbmdTb3VyY2UuaCIKKworCitAaW1wbGVtZW50YXRpb24gRHVtcFJlbmRlclRyZWVG
aWxlRHJhZ2dpbmdTb3VyY2UKKworLSAoTlNEcmFnT3BlcmF0aW9uKWRyYWdnaW5nU291cmNlT3Bl
cmF0aW9uTWFza0ZvckxvY2FsOihCT09MKWZsYWcKK3sKKyAgICByZXR1cm4gTlNEcmFnT3BlcmF0
aW9uQ29weTsKK30KKworLSAodm9pZClkcmFnZ2VkSW1hZ2U6KE5TSW1hZ2UgKilpbWFnZSBiZWdh
bkF0OihOU1BvaW50KXNjcmVlblBvaW50Cit7Cit9CisKKy0gKHZvaWQpZHJhZ2dlZEltYWdlOihO
U0ltYWdlICopaW1hZ2UgZW5kZWRBdDooTlNQb2ludClzY3JlZW5Qb2ludCBvcGVyYXRpb246KE5T
RHJhZ09wZXJhdGlvbilvcGVyYXRpb24KK3sKK30KKworLSAodm9pZClkcmFnZ2VkSW1hZ2U6KE5T
SW1hZ2UgKilpbWFnZSBtb3ZlZFRvOihOU1BvaW50KXNjcmVlblBvaW50Cit7Cit9CisKK0BlbmQK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
LmNwcAppbmRleCAyMjgyZjY5Li41MGY5NmQzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC01MSw3ICs1MSw2IEBAIExh
eW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihjb25zdCBzdGQ6OnN0cmlu
ZyYgdGVzdFBhdGhPclVSTCwgY29uCiAgICAgLCBtX2R1bXBFZGl0aW5nQ2FsbGJhY2tzKGZhbHNl
KQogICAgICwgbV9kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKGZhbHNlKQogICAgICwgbV9kdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzKGZhbHNlKQotICAgICwgbV9hZGRGaWxlVG9QYXN0ZWJvYXJkT25E
cmFnKGZhbHNlKQogICAgICwgbV9jYWxsQ2xvc2VPbldlYlZpZXdzKHRydWUpCiAgICAgLCBtX2Nh
bk9wZW5XaW5kb3dzKGZhbHNlKQogICAgICwgbV9jbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29t
cGxldGUodHJ1ZSkKQEAgLTIyNCwxMyArMjIzLDYgQEAgc3RhdGljIEpTVmFsdWVSZWYgdGVzdFJl
cGFpbnRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24K
ICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKLXN0YXRpYyBK
U1ZhbHVlUmVmIGFkZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWdDYWxsYmFjayhKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNp
emVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pCi17Ci0gICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIg
PSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0
aGlzT2JqZWN0KSk7Ci0gICAgY29udHJvbGxlci0+c2V0QWRkRmlsZVRvUGFzdGVib2FyZE9uRHJh
Zyh0cnVlKTsKLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0K
IHN0YXRpYyBKU1ZhbHVlUmVmIGFkZERpc2FsbG93ZWRVUkxDYWxsYmFjayhKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNp
emVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pCiB7CiAgICAgLy8gSGFzIG1hYyBpbXBsZW1lbnRhdGlvbgpAQCAtODI1
LDE0ICs4MTcsMTIgQEAgSlNTdGF0aWNWYWx1ZSogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRp
Y1ZhbHVlcygpCiAgICAgICAgIHsgMCwgMCwgMCwgMCB9CiAgICAgfTsKICAgICByZXR1cm4gc3Rh
dGljVmFsdWVzOwotCiB9CiAKIEpTU3RhdGljRnVuY3Rpb24qIExheW91dFRlc3RDb250cm9sbGVy
OjpzdGF0aWNGdW5jdGlvbnMoKQogewogICAgIHN0YXRpYyBKU1N0YXRpY0Z1bmN0aW9uIHN0YXRp
Y0Z1bmN0aW9uc1tdID0gewogICAgICAgICB7ICJhZGREaXNhbGxvd2VkVVJMIiwgYWRkRGlzYWxs
b3dlZFVSTENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgImFkZEZpbGVUb1Bhc3RlYm9hcmRP
bkRyYWciLCBhZGRGaWxlVG9QYXN0ZWJvYXJkT25EcmFnQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAg
ICAgeyAiY2xlYXJBbGxEYXRhYmFzZXMiLCBjbGVhckFsbERhdGFiYXNlc0NhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCiAgICAgICAgIHsgImNsZWFyQmFja0ZvcndhcmRMaXN0IiwgY2xlYXJCYWNrRm9yd2FyZExp
c3RDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJjbGVhclBlcnNpc3RlbnRVc2VyU3R5bGVT
aGVldCIsIGNsZWFyUGVyc2lzdGVudFVzZXJTdHlsZVNoZWV0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
LmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmlu
ZGV4IDdlMzBiOTUuLjQxOGIwYTAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMTIyLDkgKzEyMiw2IEBAIHB1YmxpYzoKICAg
ICBib29sIGR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSBjb25zdCB7IHJldHVybiBtX2R1bXBGcmFt
ZUxvYWRDYWxsYmFja3M7IH0KICAgICB2b2lkIHNldER1bXBGcmFtZUxvYWRDYWxsYmFja3MoYm9v
bCBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKSB7IG1fZHVtcEZyYW1lTG9hZENhbGxiYWNrcyA9IGR1
bXBGcmFtZUxvYWRDYWxsYmFja3M7IH0KIAotICAgIGJvb2wgYWRkRmlsZVRvUGFzdGVib2FyZE9u
RHJhZygpIGNvbnN0IHsgcmV0dXJuIG1fYWRkRmlsZVRvUGFzdGVib2FyZE9uRHJhZzsgfQotICAg
IHZvaWQgc2V0QWRkRmlsZVRvUGFzdGVib2FyZE9uRHJhZyhib29sIGFkZEZpbGVUb1Bhc3RlYm9h
cmRPbkRyYWcpIHsgbV9hZGRGaWxlVG9QYXN0ZWJvYXJkT25EcmFnID0gYWRkRmlsZVRvUGFzdGVi
b2FyZE9uRHJhZzsgfQotCiAgICAgYm9vbCBjYWxsQ2xvc2VPbldlYlZpZXdzKCkgY29uc3QgeyBy
ZXR1cm4gbV9jYWxsQ2xvc2VPbldlYlZpZXdzOyB9CiAgICAgdm9pZCBzZXRDYWxsQ2xvc2VPbldl
YlZpZXdzKGJvb2wgY2FsbENsb3NlT25XZWJWaWV3cykgeyBtX2NhbGxDbG9zZU9uV2ViVmlld3Mg
PSBjYWxsQ2xvc2VPbldlYlZpZXdzOyB9CiAKQEAgLTE3Nyw3ICsxNzQsNiBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9kdW1wRWRpdGluZ0NhbGxiYWNrczsKICAgICBib29sIG1fZHVtcFJlc291cmNl
TG9hZENhbGxiYWNrczsKICAgICBib29sIG1fZHVtcEZyYW1lTG9hZENhbGxiYWNrczsKLSAgICBi
b29sIG1fYWRkRmlsZVRvUGFzdGVib2FyZE9uRHJhZzsKICAgICBib29sIG1fY2FsbENsb3NlT25X
ZWJWaWV3czsKICAgICBib29sIG1fY2FuT3BlbldpbmRvd3M7CiAgICAgYm9vbCBtX2Nsb3NlUmVt
YWluaW5nV2luZG93c1doZW5Db21wbGV0ZTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCAxMjEwOTc2Li43ZmQzYWExIDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysr
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0y
NiwxMSArMjYsMTIgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgogICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwotIAor
CiAjaW1wb3J0ICJEdW1wUmVuZGVyVHJlZS5oIgogCiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5oIgogI2ltcG9ydCAiQ2hlY2tlZE1hbGxvYy5oIgorI2ltcG9ydCAiRHVtcFJlbmRl
clRyZWVEcmFnZ2luZ0luZm8uaCIKICNpbXBvcnQgIkR1bXBSZW5kZXJUcmVlUGFzdGVib2FyZC5o
IgogI2ltcG9ydCAiRHVtcFJlbmRlclRyZWVXaW5kb3cuaCIKICNpbXBvcnQgIkVkaXRpbmdEZWxl
Z2F0ZS5oIgpAQCAtMTA5MSw2ICsxMDkyLDggQEAgc3RhdGljIHZvaWQgcnVuVGVzdChjb25zdCBz
dHJpbmcmIHRlc3RQYXRoT3JVUkwpCiAKICAgICBnTGF5b3V0VGVzdENvbnRyb2xsZXIgPSBuZXcg
TGF5b3V0VGVzdENvbnRyb2xsZXIodGVzdFVSTCwgZXhwZWN0ZWRQaXhlbEhhc2gpOwogICAgIHRv
cExvYWRpbmdGcmFtZSA9IG5pbDsKKyAgICBBU1NFUlQoIWRyYWdnaW5nSW5mbyk7IC8vIHRoZSBw
cmV2aW91cyB0ZXN0IHNob3VsZCBoYXZlIGNhbGxlZCBldmVudFNlbmRlci5tb3VzZVVwIHRvIGRy
b3AhCisgICAgcmVsZWFzZUFuZFplcm8oJmRyYWdnaW5nSW5mbyk7CiAgICAgZG9uZSA9IE5POwog
CiAgICAgZ0xheW91dFRlc3RDb250cm9sbGVyLT5zZXRJY29uRGF0YWJhc2VFbmFibGVkKGZhbHNl
KTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRp
bmdDb250cm9sbGVyLm1tIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2Vu
ZGluZ0NvbnRyb2xsZXIubW0KaW5kZXggNTg4MzAyNi4uNDYyMTdmMyAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubW0KKysr
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIu
bW0KQEAgLTMzLDYgKzMzLDcgQEAKIAogI2ltcG9ydCAiRHVtcFJlbmRlclRyZWUuaCIKICNpbXBv
cnQgIkR1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLmgiCisjaW1wb3J0ICJEdW1wUmVuZGVyVHJl
ZUZpbGVEcmFnZ2luZ1NvdXJjZS5oIgogCiAjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIEdldEN1cnJlbnRFdmVudFRpbWUoKQogI2ltcG9y
dCA8V2ViS2l0L0RPTVByaXZhdGUuaD4KQEAgLTExOCwxNiArMTE5LDE3IEBAIEJPT0wgcmVwbGF5
aW5nU2F2ZWRFdmVudHM7CiAKICsgKEJPT0wpaXNTZWxlY3RvckV4Y2x1ZGVkRnJvbVdlYlNjcmlw
dDooU0VMKWFTZWxlY3RvcgogewotICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKG1vdXNl
RG93bjopCi0gICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKG1vdXNlVXA6KQor
ICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGJlZ2luRHJhZ1dpdGhGaWxlczopCisgICAg
ICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGNsZWFyS2lsbFJpbmcpCiAgICAgICAg
ICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGNvbnRleHRDbGljaykKLSAgICAgICAgICAg
IHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3Ioc2NoZWR1bGVBc3luY2hyb25vdXNDbGljaykKLSAg
ICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IobW91c2VNb3ZlVG9YOlk6KQotICAg
ICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihsZWFwRm9yd2FyZDopCi0gICAgICAg
ICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGtleURvd246d2l0aE1vZGlmaWVyczopCiAg
ICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGVuYWJsZURPTVVJRXZlbnRMb2dn
aW5nOikKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoZmlyZUtleWJvYXJk
RXZlbnRzVG9FbGVtZW50OikKLSAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3Io
Y2xlYXJLaWxsUmluZykKKyAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3Ioa2V5
RG93bjp3aXRoTW9kaWZpZXJzOikKKyAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0
b3IobGVhcEZvcndhcmQ6KQorICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvciht
b3VzZURvd246KQorICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcihtb3VzZU1v
dmVUb1g6WTopCisgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKG1vdXNlVXA6
KQorICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihzY2hlZHVsZUFzeW5jaHJv
bm91c0NsaWNrKQogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcih0ZXh0Wm9v
bUluKQogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcih0ZXh0Wm9vbU91dCkK
ICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3Ioem9vbVBhZ2VJbikKQEAgLTE0
NSwyMCArMTQ3LDIyIEBAIEJPT0wgcmVwbGF5aW5nU2F2ZWRFdmVudHM7CiAKICsgKE5TU3RyaW5n
ICopd2ViU2NyaXB0TmFtZUZvclNlbGVjdG9yOihTRUwpYVNlbGVjdG9yCiB7CisgICAgaWYgKGFT
ZWxlY3RvciA9PSBAc2VsZWN0b3IoYmVnaW5EcmFnV2l0aEZpbGVzOikpCisgICAgICAgIHJldHVy
biBAImJlZ2luRHJhZ1dpdGhGaWxlcyI7CisgICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3Io
ZW5hYmxlRE9NVUlFdmVudExvZ2dpbmc6KSkKKyAgICAgICAgcmV0dXJuIEAiZW5hYmxlRE9NVUlF
dmVudExvZ2dpbmciOworICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGZpcmVLZXlib2Fy
ZEV2ZW50c1RvRWxlbWVudDopKQorICAgICAgICByZXR1cm4gQCJmaXJlS2V5Ym9hcmRFdmVudHNU
b0VsZW1lbnQiOworICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGtleURvd246d2l0aE1v
ZGlmaWVyczopKQorICAgICAgICByZXR1cm4gQCJrZXlEb3duIjsKKyAgICBpZiAoYVNlbGVjdG9y
ID09IEBzZWxlY3RvcihsZWFwRm9yd2FyZDopKQorICAgICAgICByZXR1cm4gQCJsZWFwRm9yd2Fy
ZCI7CiAgICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IobW91c2VEb3duOikpCiAgICAgICAg
IHJldHVybiBAIm1vdXNlRG93biI7CiAgICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IobW91
c2VVcDopKQogICAgICAgICByZXR1cm4gQCJtb3VzZVVwIjsKICAgICBpZiAoYVNlbGVjdG9yID09
IEBzZWxlY3Rvcihtb3VzZU1vdmVUb1g6WTopKQogICAgICAgICByZXR1cm4gQCJtb3VzZU1vdmVU
byI7Ci0gICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IobGVhcEZvcndhcmQ6KSkKLSAgICAg
ICAgcmV0dXJuIEAibGVhcEZvcndhcmQiOwotICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9y
KGtleURvd246d2l0aE1vZGlmaWVyczopKQotICAgICAgICByZXR1cm4gQCJrZXlEb3duIjsKLSAg
ICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihlbmFibGVET01VSUV2ZW50TG9nZ2luZzopKQot
ICAgICAgICByZXR1cm4gQCJlbmFibGVET01VSUV2ZW50TG9nZ2luZyI7Ci0gICAgaWYgKGFTZWxl
Y3RvciA9PSBAc2VsZWN0b3IoZmlyZUtleWJvYXJkRXZlbnRzVG9FbGVtZW50OikpCi0gICAgICAg
IHJldHVybiBAImZpcmVLZXlib2FyZEV2ZW50c1RvRWxlbWVudCI7CiAgICAgaWYgKGFTZWxlY3Rv
ciA9PSBAc2VsZWN0b3Ioc2V0RHJhZ01vZGU6KSkKICAgICAgICAgcmV0dXJuIEAic2V0RHJhZ01v
ZGUiOwogICAgIHJldHVybiBuaWw7CkBAIC0yMzgsNiArMjQyLDMzIEBAIHN0YXRpYyBOU0V2ZW50
VHlwZSBldmVudFR5cGVGb3JNb3VzZUJ1dHRvbkFuZEFjdGlvbihpbnQgYnV0dG9uLCBNb3VzZUFj
dGlvbiBhY3RpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE5TRXZlbnRUeXBlPigwKTsKIH0KIAor
LSAodm9pZCliZWdpbkRyYWdXaXRoRmlsZXM6KFdlYlNjcmlwdE9iamVjdCopanNGaWxlUGF0aHMK
K3sKKyAgICBhc3NlcnQoIWRyYWdnaW5nSW5mbyk7CisgICAgYXNzZXJ0KFtqc0ZpbGVQYXRocyBp
c0tpbmRPZkNsYXNzOltXZWJTY3JpcHRPYmplY3QgY2xhc3NdXSk7CisKKyAgICBOU1Bhc3RlYm9h
cmQgKnBib2FyZCA9IFtOU1Bhc3RlYm9hcmQgcGFzdGVib2FyZFdpdGhVbmlxdWVOYW1lXTsKKyAg
ICBbcGJvYXJkIGRlY2xhcmVUeXBlczpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6TlNGaWxlbmFt
ZXNQYm9hcmRUeXBlXSBvd25lcjpuaWxdOworCisgICAgTlNNdXRhYmxlQXJyYXkgKmZpbGVQYXRo
cyA9IFtOU011dGFibGVBcnJheSBhcnJheV07CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgW1tq
c0ZpbGVQYXRocyB3ZWJTY3JpcHRWYWx1ZUF0SW5kZXg6aV0gaXNLaW5kT2ZDbGFzczpbTlNTdHJp
bmcgY2xhc3NdXTsgaSsrKSB7CisgICAgICAgIE5TU3RyaW5nICpmaWxlUGF0aCA9IChOU1N0cmlu
ZyAqKVtqc0ZpbGVQYXRocyB3ZWJTY3JpcHRWYWx1ZUF0SW5kZXg6aV07CisgICAgICAgIC8vIEZJ
WE1FOiBXZSB3aWxsIG5lZWQgdG8gcmVzb2x2ZSBwYXRocyB0byBhYnNvbHV0ZSBmb3IgRmlsZS5m
aWxlU2l6ZSB0byB3b3JrIGNvcnJlY3RseQorICAgICAgICBbZmlsZVBhdGhzIGFkZE9iamVjdDpm
aWxlUGF0aF07CisgICAgfQorCisgICAgW3Bib2FyZCBzZXRQcm9wZXJ0eUxpc3Q6ZmlsZVBhdGhz
IGZvclR5cGU6TlNGaWxlbmFtZXNQYm9hcmRUeXBlXTsKKyAgICBhc3NlcnQoW3Bib2FyZCBwcm9w
ZXJ0eUxpc3RGb3JUeXBlOk5TRmlsZW5hbWVzUGJvYXJkVHlwZV0pOyAvLyBzZXRQcm9wZXJ0eUxp
c3Qgd2lsbCBzaWxlbnRseSBmYWlsIG9uIGVycm9yLCBhc3NlcnQgdGhhdCBpdCBkaWRuJ3QgZmFp
bAorCisgICAgLy8gV2UgcHJvdmlkZSBhIHNvdXJjZSwgb3RoZXJ3aXNlIFtEdW1wUmVuZGVyVHJl
ZURyYWdnaW5nSW5mbyBkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2tdIHJldHVybnMgTlNEcmFn
T3BlcmF0aW9uTm9uZQorICAgIER1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlICpzb3Vy
Y2UgPSBbW1tEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZSBhbGxvY10gaW5pdF0gYXV0
b3JlbGVhc2VdOworICAgIGRyYWdnaW5nSW5mbyA9IFtbRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0lu
Zm8gYWxsb2NdIGluaXRXaXRoSW1hZ2U6bmlsIG9mZnNldDpOU1plcm9TaXplIHBhc3RlYm9hcmQ6
cGJvYXJkIHNvdXJjZTpzb3VyY2VdOworICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIGRyYWdnaW5n
RW50ZXJlZDpkcmFnZ2luZ0luZm9dOworCisgICAgZHJhZ01vZGUgPSBOTzsgLy8gZHJhZ01vZGUg
c2F2ZXMgZXZlbnRzIGFuZCB0aGVuIHJlcGxheXMgdGhlbSBsYXRlci4gIFdlIGRvbid0IG5lZWQv
d2FudCB0aGF0LgorICAgIGxlZnRNb3VzZUJ1dHRvbkRvd24gPSBZRVM7IC8vIE1ha2UgdGhlIHJl
c3Qgb2YgZXZlbnRTZW5kZXIgdGhpbmsgYSBkcmFnIGlzIGluIHByb2dyZXNzCit9CisKIC0gKHZv
aWQpdXBkYXRlQ2xpY2tDb3VudEZvckJ1dHRvbjooaW50KWJ1dHRvbk51bWJlcgogewogICAgIGlm
ICgoW3NlbGYgY3VycmVudEV2ZW50VGltZV0gLSBsYXN0Q2xpY2sgPj0gMSkgfHwKQEAgLTM1NSw3
ICszODYsNiBAQCBzdGF0aWMgTlNFdmVudFR5cGUgZXZlbnRUeXBlRm9yTW91c2VCdXR0b25BbmRB
Y3Rpb24oaW50IGJ1dHRvbiwgTW91c2VBY3Rpb24gYWN0aQogICAgICAgICBbaW52b2NhdGlvbiBz
ZXRBcmd1bWVudDomeSBhdEluZGV4OjNdOwogICAgICAgICAKICAgICAgICAgW0V2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIgc2F2ZUV2ZW50Omludm9jYXRpb25dOwotICAgICAgICAKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApAQCAtNDc2LDcgKzUwNiw3IEBAIHN0YXRpYyBOU0V2ZW50VHlwZSBldmVu
dFR5cGVGb3JNb3VzZUJ1dHRvbkFuZEFjdGlvbihpbnQgYnV0dG9uLCBNb3VzZUFjdGlvbiBhY3Rp
CiAgICAgICAgIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVycyA9IFtjaGFyYWN0ZXIgbG93ZXJj
YXNlU3RyaW5nXTsKICAgICB9CiAKLSAgICBpZiAoW21vZGlmaWVycyBpc0tpbmRPZkNsYXNzOltX
ZWJTY3JpcHRPYmplY3QgY2xhc3NdXSkKKyAgICBpZiAoW21vZGlmaWVycyBpc0tpbmRPZkNsYXNz
OltXZWJTY3JpcHRPYmplY3QgY2xhc3NdXSkgewogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBbW21vZGlmaWVycyB3ZWJTY3JpcHRWYWx1ZUF0SW5kZXg6aV0gaXNLaW5kT2ZDbGFzczpbTlNT
dHJpbmcgY2xhc3NdXTsgaSsrKSB7CiAgICAgICAgICAgICBOU1N0cmluZyAqbW9kaWZpZXIgPSAo
TlNTdHJpbmcgKilbbW9kaWZpZXJzIHdlYlNjcmlwdFZhbHVlQXRJbmRleDppXTsKICAgICAgICAg
ICAgIGlmIChbbW9kaWZpZXIgaXNFcXVhbDpAImN0cmxLZXkiXSkKQEAgLTQ4OCw2ICs1MTgsNyBA
QCBzdGF0aWMgTlNFdmVudFR5cGUgZXZlbnRUeXBlRm9yTW91c2VCdXR0b25BbmRBY3Rpb24oaW50
IGJ1dHRvbiwgTW91c2VBY3Rpb24gYWN0aQogICAgICAgICAgICAgZWxzZSBpZiAoW21vZGlmaWVy
IGlzRXF1YWw6QCJtZXRhS2V5Il0pCiAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFncyB8PSBO
U0NvbW1hbmRLZXlNYXNrOwogICAgICAgICB9CisgICAgfQogCiAgICAgW1tbbWFpbkZyYW1lIGZy
YW1lVmlld10gZG9jdW1lbnRWaWV3XSBsYXlvdXRdOwogCkBAIC02MTcsOSArNjQ4LDggQEAgc3Rh
dGljIE5TRXZlbnRUeXBlIGV2ZW50VHlwZUZvck1vdXNlQnV0dG9uQW5kQWN0aW9uKGludCBidXR0
b24sIE1vdXNlQWN0aW9uIGFjdGkKIC8vIHRvIHdvcmsgd2VsbCBlbm91Z2ggdGhhdCB3ZSBjYW4g
dGVzdCB0aGF0IHdheSBpbnN0ZWFkLgogLSAodm9pZClmaXJlS2V5Ym9hcmRFdmVudHNUb0VsZW1l
bnQ6KFdlYlNjcmlwdE9iamVjdCAqKWVsZW1lbnQgewogICAgIAotICAgIGlmICghW2VsZW1lbnQg
aXNLaW5kT2ZDbGFzczpbRE9NSFRNTEVsZW1lbnQgY2xhc3NdXSkgeworICAgIGlmICghW2VsZW1l
bnQgaXNLaW5kT2ZDbGFzczpbRE9NSFRNTEVsZW1lbnQgY2xhc3NdXSkKICAgICAgICAgcmV0dXJu
OwotICAgIH0KICAgICAKICAgICBET01IVE1MRWxlbWVudCAqdGFyZ2V0ID0gKERPTUhUTUxFbGVt
ZW50KillbGVtZW50OwogICAgIERPTURvY3VtZW50ICpkb2N1bWVudCA9IFt0YXJnZXQgb3duZXJE
b2N1bWVudF07CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlE
ZWxlZ2F0ZS5tbSBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1t
CmluZGV4IDFmODI4OTIuLjY2YWFkZjkgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9VSURlbGVnYXRlLm1tCkBAIC05NSwxMCArOTUsNiBAQCBEdW1wUmVuZGVyVHJlZURyYWdn
aW5nSW5mbyAqZHJhZ2dpbmdJbmZvID0gbmlsOwogLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICop
c2VuZGVyIGRyYWdJbWFnZTooTlNJbWFnZSAqKWFuSW1hZ2UgYXQ6KE5TUG9pbnQpdmlld0xvY2F0
aW9uIG9mZnNldDooTlNTaXplKWluaXRpYWxPZmZzZXQgZXZlbnQ6KE5TRXZlbnQgKilldmVudCBw
YXN0ZWJvYXJkOihOU1Bhc3RlYm9hcmQgKilwYm9hcmQgc291cmNlOihpZClzb3VyY2VPYmogc2xp
ZGVCYWNrOihCT09MKXNsaWRlRmxhZyBmb3JWaWV3OihOU1ZpZXcgKil2aWV3CiB7CiAgICAgIGFz
c2VydCghZHJhZ2dpbmdJbmZvKTsKLSAgICAgaWYgKGdMYXlvdXRUZXN0Q29udHJvbGxlci0+YWRk
RmlsZVRvUGFzdGVib2FyZE9uRHJhZygpKSB7Ci0gICAgICAgICBbcGJvYXJkIGRlY2xhcmVUeXBl
czpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6TlNGaWxlbmFtZXNQYm9hcmRUeXBlXSBvd25lcjpu
aWxdOwotICAgICAgICAgW3Bib2FyZCBzZXRQcm9wZXJ0eUxpc3Q6W05TQXJyYXkgYXJyYXlXaXRo
T2JqZWN0OkAiRFJURmFrZUZpbGUiXSBmb3JUeXBlOk5TRmlsZW5hbWVzUGJvYXJkVHlwZV07Ci0g
ICAgIH0KICAgICAgZHJhZ2dpbmdJbmZvID0gW1tEdW1wUmVuZGVyVHJlZURyYWdnaW5nSW5mbyBh
bGxvY10gaW5pdFdpdGhJbWFnZTphbkltYWdlIG9mZnNldDppbml0aWFsT2Zmc2V0IHBhc3RlYm9h
cmQ6cGJvYXJkIHNvdXJjZTpzb3VyY2VPYmpdOwogICAgICBbc2VuZGVyIGRyYWdnaW5nVXBkYXRl
ZDpkcmFnZ2luZ0luZm9dOwogICAgICBbRXZlbnRTZW5kaW5nQ29udHJvbGxlciByZXBsYXlTYXZl
ZEV2ZW50c107Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30459</attachid>
            <date>2009-05-18 23:58:13 -0700</date>
            <delta_ts>2009-05-19 00:15:18 -0700</delta_ts>
            <desc>Remove layoutTestController.addFileToPasteboardOnDrag and add eventSender.beginDragWithFiles</desc>
            <filename>Remove-layoutTestController.addFileToPasteboardOnDrag-and-add-eventSender.beginDragWithFiles.patch</filename>
            <type>text/plain</type>
            <size>31073</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">NDYyYTViNzVlM2YwNzdjNzEzZDRhMmRhZmQxNjJjMDU4ZDQ3NDAzMwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVlZjVlNTku
LmY1ZDBiYWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAwOS0wNS0xOCAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVtb3ZlIGxheW91dFRlc3RDb250cm9sbGVyLmFkZEZpbGVUb1Bhc3RlYm9h
cmRPbkRyYWcgYW5kIGFkZCBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1ODUyCisKKyAgICAgICAg
UmUtd3JvdGUgdGhlc2UgdGVzdHMgdG8gdXNlIHRoZSBtb3JlIGZlYXR1cmUtZnVsbCBldmVudFNl
bmRlci5iZWdpbkRyYWdXaXRoRmlsZXMKKyAgICAgICAgTm9uLW1hYyBwbGF0Zm9ybXMgYWxyZWFk
eSBza2lwIHRoZXNlIHRlc3RzLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9kcmFnZ2luZy10by1k
aXNhYmxlZC1maWxlLWlucHV0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Ry
YWdnaW5nLXRvLWRpc2FibGVkLWZpbGUtaW5wdXQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1z
L2RyYWdnaW5nLXRvLWZpbGUtaW5wdXQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9y
bXMvZHJhZ2dpbmctdG8tZmlsZS1pbnB1dC5odG1sOgorCiAyMDA5LTA1LTE4ICBEYXZpZCBLaWx6
ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgQnVnIDIwNjUyOiBXZWJLaXQgZG9l
c24ndCBkaXNwbGF5IGZhdmljb25zIHdpdGggTUlNRSB0eXBlIGltYWdlL3ZuZC5taWNyb3NvZnQu
aWNvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kcmFnZ2luZy10by1kaXNh
YmxlZC1maWxlLWlucHV0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJh
Z2dpbmctdG8tZGlzYWJsZWQtZmlsZS1pbnB1dC1leHBlY3RlZC50eHQKaW5kZXggNTI4YmUyYy4u
YWY5YWM1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kcmFnZ2luZy10by1k
aXNhYmxlZC1maWxlLWlucHV0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2RyYWdnaW5nLXRvLWRpc2FibGVkLWZpbGUtaW5wdXQtZXhwZWN0ZWQudHh0CkBAIC0zLDYg
KzMsNSBAQCBUaGlzIHRlc3RzIHRoYXQgeW91IGNhbid0IGRyYWcgYSBmaWxlIG9udG8gYSBkaXNh
YmxlZCA8aW5wdXQgdHlwZT0iZmlsZSI+CiBUbyB0ZXN0IG1hbnVhbGx5IHlvdSBuZWVkIHRvIGF0
dGVtcHQgdG8gZHJhZyBhIGZpbGUgb250byB0aGUgZmlsZSBpbnB1dCBiZWxvdwogCiAKLQogUEFT
UzogQ291bGQgbm90IGRyb3AgZmlsZSBvbiB0byB0aGUgZGlzYWJsZWQgZmlsZSBpbnB1dAogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RyYWdnaW5nLXRvLWRpc2FibGVkLWZp
bGUtaW5wdXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZGlzYWJs
ZWQtZmlsZS1pbnB1dC5odG1sCmluZGV4IDg3MmQwODkuLjE5ZGI5YzAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZGlzYWJsZWQtZmlsZS1pbnB1dC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZGlzYWJsZWQtZmlsZS1p
bnB1dC5odG1sCkBAIC0xLDEwICsxLDggQEAKIDxwPlRoaXMgdGVzdHMgdGhhdCB5b3UgY2FuJ3Qg
ZHJhZyBhIGZpbGUgb250byBhIGRpc2FibGVkICZsdDtpbnB1dCB0eXBlPSJmaWxlIiZndDs8L3A+
CiA8cD5UbyB0ZXN0IG1hbnVhbGx5IHlvdSBuZWVkIHRvIGF0dGVtcHQgdG8gZHJhZyBhIGZpbGUg
b250byB0aGUgZmlsZSBpbnB1dCBiZWxvdzwvcD4KLTxpbnB1dCBpZD0idGFyZ2V0IiB0eXBlPSJm
aWxlIiBkaXNhYmxlZC8+PGJyIC8+Ci08aW5wdXQgaWQ9ImRyYWdTdGFydCIgdHlwZT0idGV4dCIg
dmFsdWU9IlRoaXMgaW5wdXQgZmllbGQgaXMgb25seSBwcmVzZW50IHRvIGFsbG93IERSVCB0byBp
bml0aWF0ZSBhIGRyYWciPjwvaW5wdXQ+PGJyIC8+Cis8aW5wdXQgaWQ9InRhcmdldCIgdHlwZT0i
ZmlsZSIgZGlzYWJsZWQgLz48YnIgLz4KIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgogCi0KIDxz
Y3JpcHQ+CiAgICAgZnVuY3Rpb24gZGVidWcoc3RyKSB7CiAgICAgICAgIHZhciBjID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKQpAQCAtMTIsMjQgKzEwLDE2IEBACiAgICAgfQog
CiAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAgICAgdmFyIGRyYWdTdGFydCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJkcmFnU3RhcnQiKTsKLSAgICAgICAgdmFyIHggPSBkcmFnU3Rh
cnQub2Zmc2V0TGVmdCArIGRyYWdTdGFydC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZhciB5
ID0gZHJhZ1N0YXJ0Lm9mZnNldFRvcCArIGRyYWdTdGFydC5vZmZzZXRIZWlnaHQgLyAyOwotCiAg
ICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAg
ICAgICAgIHZhciB0eCA9IHRhcmdldC5vZmZzZXRMZWZ0ICsgdGFyZ2V0Lm9mZnNldFdpZHRoIC8g
MjsKICAgICAgICAgdmFyIHR5ID0gdGFyZ2V0Lm9mZnNldFRvcCArIHRhcmdldC5vZmZzZXRIZWln
aHQgLyAyOwotICAgICAgICAKLSAgICAgICAgZHJhZ1N0YXJ0LnNlbGVjdCgpOwogCiAgICAgICAg
IHZhciBpbml0aWFsVmFsdWUgPSB0YXJnZXQudmFsdWU7Ci0gICAgICAgIAotICAgICAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3du
KCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDQwMCk7CisKKyAgICAgICAgZXZl
bnRTZW5kZXIuYmVnaW5EcmFnV2l0aEZpbGVzKFsnRFJURmFrZUZpbGUnXSk7CiAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHR4LCB0eSk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsgICAgICAgCi0gICAgICAgICAKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwor
CiAgICAgICAgIHZhciBmaW5hbFZhbHVlID0gdGFyZ2V0LnZhbHVlOwogICAgICAgICBpZiAoaW5p
dGlhbFZhbHVlID09IGZpbmFsVmFsdWUpCiAgICAgICAgICAgICBkZWJ1ZygiUEFTUzogQ291bGQg
bm90IGRyb3AgZmlsZSBvbiB0byB0aGUgZGlzYWJsZWQgZmlsZSBpbnB1dCIpOwpAQCAtMzgsMTMg
KzI4LDcgQEAKICAgICB9CiAKICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFkZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWco
KTsKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICBy
dW5UZXN0KCk7CiAgICAgfQotICAgIAotICAgIC8vIHJlbW92ZSBkcmFnIHNvdXJjZQotICAgIHZh
ciBkcmFnU3RhcnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHJhZ1N0YXJ0Iik7Ci0gICAg
ZHJhZ1N0YXJ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZHJhZ1N0YXJ0KTsKLSAgICAKIDwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kcmFnZ2luZy10by1maWxl
LWlucHV0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8t
ZmlsZS1pbnB1dC1leHBlY3RlZC50eHQKaW5kZXggYmU5MTA3MS4uZGIxMzJhYyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kcmFnZ2luZy10by1maWxlLWlucHV0LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RyYWdnaW5nLXRvLWZpbGUtaW5wdXQt
ZXhwZWN0ZWQudHh0CkBAIC0zLDcgKzMsNiBAQCBUaGlzIHRlc3RzIHRoZSBhYmlsaXR5IHRvIGRy
YWcgYSBmaWxlIG9udG8gPGlucHV0IHR5cGU9ImZpbGUiPgogVG8gdGVzdCBtYW51YWxseSB5b3Ug
bmVlZCB0byBhdHRlbXB0IHRvIGRyYWcgYSBmaWxlIG9udG8gdGhlIGZpbGUgaW5wdXQgYmVsb3cK
IAogCi0KIFBBU1M6IFN1Y2Nlc3NmdWxseSBkcm9wcGVkIGZpbGUgb24gdG8gZmlsZSBpbnB1dAog
UEFTUzogRmluaXNoZWQgdGVzdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2RyYWdnaW5nLXRvLWZpbGUtaW5wdXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJh
Z2dpbmctdG8tZmlsZS1pbnB1dC5odG1sCmluZGV4IDA4ZDJjZDcuLmYyZDNjNzIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZmlsZS1pbnB1dC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZmlsZS1pbnB1dC5odG1sCkBA
IC0xLDEwICsxLDggQEAKIDxwPlRoaXMgdGVzdHMgdGhlIGFiaWxpdHkgdG8gZHJhZyBhIGZpbGUg
b250byAmbHQ7aW5wdXQgdHlwZT0iZmlsZSImZ3Q7PC9wPgogPHA+VG8gdGVzdCBtYW51YWxseSB5
b3UgbmVlZCB0byBhdHRlbXB0IHRvIGRyYWcgYSBmaWxlIG9udG8gdGhlIGZpbGUgaW5wdXQgYmVs
b3c8L3A+Ci08aW5wdXQgaWQ9InRhcmdldCIgdHlwZT0iZmlsZSIvPjxiciAvPgotPGlucHV0IGlk
PSJkcmFnU3RhcnQiIHR5cGU9InRleHQiIHZhbHVlPSJUaGlzIGlucHV0IGZpZWxkIGlzIG9ubHkg
cHJlc2VudCB0byBhbGxvdyBEUlQgdG8gaW5pdGlhdGUgYSBkcmFnIj48L2lucHV0PjxiciAvPgor
PGlucHV0IGlkPSJ0YXJnZXQiIHR5cGU9ImZpbGUiIC8+PGJyIC8+CiA8cHJlIGlkPSJjb25zb2xl
Ij48L3ByZT4KIAotCiA8c2NyaXB0PgogICAgIGZ1bmN0aW9uIGRlYnVnKHN0cikgewogICAgICAg
ICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykKQEAgLTEyLDQxICsx
MCwyNyBAQAogICAgIH0KIAogICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIHZhciBk
cmFnU3RhcnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHJhZ1N0YXJ0Iik7Ci0gICAgICAg
IHZhciB4ID0gZHJhZ1N0YXJ0Lm9mZnNldExlZnQgKyBkcmFnU3RhcnQub2Zmc2V0V2lkdGggLyAy
OwotICAgICAgICB2YXIgeSA9IGRyYWdTdGFydC5vZmZzZXRUb3AgKyBkcmFnU3RhcnQub2Zmc2V0
SGVpZ2h0IC8gMjsKLQogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRhcmdldCIpOwogICAgICAgICB2YXIgdHggPSB0YXJnZXQub2Zmc2V0TGVmdCArIHRhcmdl
dC5vZmZzZXRXaWR0aCAvIDI7CiAgICAgICAgIHZhciB0eSA9IHRhcmdldC5vZmZzZXRUb3AgKyB0
YXJnZXQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgCi0gICAgICAgIGRyYWdTdGFydC5zZWxl
Y3QoKTsKIAogICAgICAgICB2YXIgaW5pdGlhbFZhbHVlID0gdGFyZ2V0LnZhbHVlOwotICAgICAg
ICAKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7Ci0gICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlRG93bigpOwotICAgICAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCg0MDAp
OworCisgICAgICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhbJ0RSVEZha2VGaWxl
J10pOwogICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh0eCwgdHkpOwotICAgICAgICBl
dmVudFNlbmRlci5tb3VzZVVwKCk7ICAgICAgIAotICAgICAgICAgCisgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlVXAoKTsKKwogICAgICAgICB2YXIgZmluYWxWYWx1ZSA9IHRhcmdldC52YWx1ZTsK
ICAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSA9PSBmaW5hbFZhbHVlIHx8IGZpbmFsVmFsdWUgIT0g
IkRSVEZha2VGaWxlIikKLSAgICAgICAgICAgIGRlYnVnKCJGQUlMOiBDb3VsZCBub3QgZHJvcCBm
aWxlIG9uIHRvIGZpbGUgaW5wdXQiKTsKKyAgICAgICAgICAgIGRlYnVnKCJGQUlMOiBDb3VsZCBu
b3QgZHJvcCBmaWxlIG9uIHRvIGZpbGUgaW5wdXQgYXQgIiArIHR4ICsgIiwgIiArIHR5ICsgIiAg
aW5pdGlhbFZhbHVlOiAiICsgaW5pdGlhbFZhbHVlICsgIiBmaW5hbFZhbHVlOiAiICsgZmluYWxW
YWx1ZSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGRlYnVnKCJQQVNTOiBTdWNjZXNzZnVs
bHkgZHJvcHBlZCBmaWxlIG9uIHRvIGZpbGUgaW5wdXQiKTsKLSAgICAgICAgICAgIAorCiAgICAg
ICAgIGRlYnVnKCJQQVNTOiBGaW5pc2hlZCB0ZXN0Iik7CiAgICAgfQogCiAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5h
ZGRGaWxlVG9QYXN0ZWJvYXJkT25EcmFnKCk7CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKICAgICAgICAgcnVuVGVzdCgpOwogICAgIH0KLSAgICAKLSAgICAvLyBy
ZW1vdmUgZHJhZyBzb3VyY2UKLSAgICB2YXIgZHJhZ1N0YXJ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImRyYWdTdGFydCIpOwotICAgIGRyYWdTdGFydC5wYXJlbnROb2RlLnJlbW92ZUNoaWxk
KGRyYWdTdGFydCk7Ci0gICAgCi08L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRv
b2xzL0NoYW5nZUxvZwppbmRleCAwYzAyOGNiLi43ZjY5ZmE1IDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQg
QEAKKzIwMDktMDUtMTggIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBsYXlvdXRUZXN0
Q29udHJvbGxlci5hZGRGaWxlVG9QYXN0ZWJvYXJkT25EcmFnIGFuZCBhZGQgZXZlbnRTZW5kZXIu
YmVnaW5EcmFnV2l0aEZpbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yNTg1MgorCisgICAgICAgIFRoaXMgYWxsb3dzIHVzIHRvIG5vdyB0ZXN0IG11
bHRpLWZpbGUgZmlsZSBkcmFncyBpbiBEdW1wUmVuZGVyVHJlZS4KKyAgICAgICAgSSBkaWQgbm90
IGFkZCBhbnkgYWRkaXRpb25hbCB0ZXN0cyAoeWV0KSwgYnV0IEkgcmUtd3JvdGUKKyAgICAgICAg
dGhlIGV4aXN0aW5nIHRlc3RzIHdoaWNoIHVzZWQgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkRmls
ZVRvUGFzdGVib2FyZE9uRHJhZworCisgICAgICAgIEkgYWRkZWQgYSBEdW1wUmVuZGVyVHJlZUZp
bGVEcmFnZ2luZ1NvdXJjZSBjbGFzcyB0byBhdm9pZAorICAgICAgICB0aGUgaGFjayBvZiBpZiAo
IWRyYWdnaW5nU291cmNlKSBpbiBbRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8gZHJhZ2dpbmdT
b3VyY2VPcGVyYXRpb25NYXNrXQorCisgICAgICAgIEkgd2lsbCBhZGQgdGVzdHMgaW4gZm9sbG93
LXVwIHBhdGNoZXMgd2hpY2ggdGVzdCBtdWx0aS1maWxlIGRyYWc6CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTg2MgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5oOiBB
ZGRlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2lu
Z1NvdXJjZS5tOiBBZGRlZC4KKyAgICAgICAgKC1bRHVtcFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdT
b3VyY2UgZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrRm9yTG9jYWw6XSk6CisgICAgICAgICgt
W0R1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlIGRyYWdnZWRJbWFnZTpiZWdhbkF0Ol0p
OgorICAgICAgICAoLVtEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZSBkcmFnZ2VkSW1h
Z2U6ZW5kZWRBdDpvcGVyYXRpb246XSk6CisgICAgICAgICgtW0R1bXBSZW5kZXJUcmVlRmlsZURy
YWdnaW5nU291cmNlIGRyYWdnZWRJbWFnZTptb3ZlZFRvOl0pOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250
cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c3RhdGljVmFsdWVzKTogcmVtb3ZlZCBhZGRGaWxlVG9QYXN0ZWJvYXJkT25EcmFnIHN1
cHBvcnQKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMpOiBy
ZW1vdmVkIGFkZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWcgc3VwcG9ydAorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAocnVuVGVzdCk6IEFTU0VSVCB0aGF0
IGRyYWdnaW5nSW5mbyBoYXMgYmVlbiBjbGVhcmVkCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
bWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubW06CisgICAgICAgICgrW0V2ZW50U2VuZGluZ0Nv
bnRyb2xsZXIgaXNTZWxlY3RvckV4Y2x1ZGVkRnJvbVdlYlNjcmlwdDpdKTogU29ydGVkIHNlbGVj
dG9ycy4KKyAgICAgICAgKCtbRXZlbnRTZW5kaW5nQ29udHJvbGxlciB3ZWJTY3JpcHROYW1lRm9y
U2VsZWN0b3I6XSk6IFNvcnRlZCBzZWxlY3RvcnMuCisgICAgICAgICgtW0V2ZW50U2VuZGluZ0Nv
bnRyb2xsZXIgYmVnaW5EcmFnV2l0aEZpbGVzOl0pOgorICAgICAgICAoLVtFdmVudFNlbmRpbmdD
b250cm9sbGVyIG1vdXNlTW92ZVRvWDpZOl0pOgorICAgICAgICAoLVtFdmVudFNlbmRpbmdDb250
cm9sbGVyIGtleURvd246d2l0aE1vZGlmaWVyczpdKToKKyAgICAgICAgKC1bRXZlbnRTZW5kaW5n
Q29udHJvbGxlciBmaXJlS2V5Ym9hcmRFdmVudHNUb0VsZW1lbnQ6XSk6IHJlbW92ZWQgc3B1cmlv
dXMgeyB9CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW06CisgICAg
ICAgICgtW1VJRGVsZWdhdGUgd2ViVmlldzpkcmFnSW1hZ2U6YXQ6b2Zmc2V0OmV2ZW50OnBhc3Rl
Ym9hcmQ6c291cmNlOnNsaWRlQmFjazpmb3JWaWV3Ol0pOiByZW1vdmVkIGFkZEZpbGVUb1Bhc3Rl
Ym9hcmRPbkRyYWcgc3VwcG9ydAorCiAyMDA5LTA1LTE4ICBLZXZpbiBPbGxpdmllciAgPGtldmlu
b0B0aGVvbGxpdmllcnMuY29tPgogCiAgICAgICAgIHd4IGJ1aWxkIGZpeC4gVXNlIHB5dGhvbi1j
b25maWcgdG8gZ2V0IFB5dGhvbiBsaW5raW5nIGluZm8gb24gVW5peCBPU2VzLiAKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJl
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYyZWE0MDEuLmNlMDYxNGYgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJl
bmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTcsNiArNTcsOCBAQAogCQlB
OEI5MUFFMjBDRjNCMzcyMDA4RjkxRkYgLyogRHVtcFJlbmRlclRyZWVQYXN0ZWJvYXJkLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEI5MUFERjBDRjNC
MzcyMDA4RjkxRkYgLyogRHVtcFJlbmRlclRyZWVQYXN0ZWJvYXJkLmggKi87IH07CiAJCUE4Qjkx
QkZEMENGNTIyQjQwMDhGOTFGRiAvKiBDaGVja2VkTWFsbG9jLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QjkxQkY3MENGNTIyQjQwMDhGOTFGRiAv
KiBDaGVja2VkTWFsbG9jLmNwcCAqLzsgfTsKIAkJQThCOTFCRkYwQ0Y1MjJCNDAwOEY5MUZGIC8q
IENoZWNrZWRNYWxsb2MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4QjkxQkY5MENGNTIyQjQwMDhGOTFGRiAvKiBDaGVja2VkTWFsbG9jLmggKi87IH07
CisJCUE4RDc5Q0VBMEZDMjhCMkMwMDRBQzhGRSAvKiBEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2lu
Z1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThENzlDRTgwRkMyOEIyQzAwNEFDOEZFIC8qIER1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291
cmNlLmggKi87IH07CisJCUE4RDc5Q0VCMEZDMjhCMkMwMDRBQzhGRSAvKiBEdW1wUmVuZGVyVHJl
ZUZpbGVEcmFnZ2luZ1NvdXJjZS5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThENzlDRTkwRkMyOEIyQzAwNEFDOEZFIC8qIER1bXBSZW5kZXJUcmVlRmls
ZURyYWdnaW5nU291cmNlLm0gKi87IH07CiAJCUFFODI1OUYzMDhEMjI0NjMwMDA1MDdBQiAvKiBD
YXJib24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQUU4MjU3RUYwOEQyMjM4OTAwMDUwN0FCIC8qIENhcmJvbi5mcmFtZXdvcmsgKi87
IH07CiAJCUFFODI1OUY0MDhEMjI0NjMwMDA1MDdBQiAvKiBDYXJib24uZnJhbWV3b3JrIGluIEZy
YW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUU4MjU3RUYwOEQy
MjM4OTAwMDUwN0FCIC8qIENhcmJvbi5mcmFtZXdvcmsgKi87IH07CiAJCUI1QTc1MkEyMDhBRjVE
MUYwMDEzOEU0NSAvKiBRdWFydHpDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1QTc1MkExMDhBRjVEMUYwMDEzOEU0NSAvKiBR
dWFydHpDb3JlLmZyYW1ld29yayAqLzsgfTsKQEAgLTE5MSw2ICsxOTMsOCBAQAogCQlBOEI5MUFE
RjBDRjNCMzcyMDA4RjkxRkYgLyogRHVtcFJlbmRlclRyZWVQYXN0ZWJvYXJkLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IER1bXBSZW5kZXJUcmVlUGFzdGVib2FyZC5oOyBwYXRo
ID0gbWFjL0R1bXBSZW5kZXJUcmVlUGFzdGVib2FyZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBOEI5MUJGNzBDRjUyMkI0MDA4RjkxRkYgLyogQ2hlY2tlZE1hbGxvYy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDaGVja2VkTWFsbG9jLmNwcDsgcGF0
aCA9IG1hYy9DaGVja2VkTWFsbG9jLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QThCOTFCRjkwQ0Y1MjJCNDAwOEY5MUZGIC8qIENoZWNrZWRNYWxsb2MuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gQ2hlY2tlZE1hbGxvYy5oOyBwYXRoID0gbWFjL0NoZWNrZWRN
YWxsb2MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQThENzlDRTgwRkMyOEIyQzAw
NEFDOEZFIC8qIER1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IER1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4RDc5Q0U5MEZDMjhCMkMwMDRBQzhGRSAv
KiBEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLm9iamM7IHBhdGggPSBEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBQTdGMTBDMjBDQjNDMTAzMDAwM0JEQzkgLyogQUhF
TV9fX18uVFRGICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gZmlsZTsgbmFtZSA9ICJBSEVNX19fXy5UVEYiOyBwYXRoID0gInF0L2ZvbnRzL0FIRU1fX19f
LlRURiI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFFODI1N0VGMDhEMjIzODkwMDA1
MDdBQiAvKiBDYXJib24uZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBDYXJib24uZnJhbWV3
b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9uLmZyYW1ld29yazsg
c291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJQjVBNzUyNjcwOEFGNEE0QTAwMTM4RTQ1
IC8qIEltYWdlRGlmZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVU
eXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsgaW5jbHVkZUluSW5kZXggPSAwOyBw
YXRoID0gSW1hZ2VEaWZmOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAt
MzA2LDYgKzMxMCw4IEBACiAJCQkJQkNBMThDMEEwQzlCNTlFRjAwMTE0MzY5IC8qIER1bXBSZW5k
ZXJUcmVlTWFjLmggKi8sCiAJCQkJQkNBMThCNzMwQzlCMDhGMTAwMTE0MzY5IC8qIER1bXBSZW5k
ZXJUcmVlRHJhZ2dpbmdJbmZvLmggKi8sCiAJCQkJQkNBMThCNzQwQzlCMDhGMTAwMTE0MzY5IC8q
IER1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLm1tICovLAorCQkJCUE4RDc5Q0U4MEZDMjhCMkMw
MDRBQzhGRSAvKiBEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5oICovLAorCQkJCUE4
RDc5Q0U5MEZDMjhCMkMwMDRBQzhGRSAvKiBEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJj
ZS5tICovLAogCQkJCUJDOUQ5MDIxMEM5NzQ3MkQwMDk5QTRBMyAvKiBXb3JrUXVldWUuY3BwICov
LAogCQkJCUJDOUQ5MDIyMEM5NzQ3MkUwMDk5QTRBMyAvKiBXb3JrUXVldWUuaCAqLywKIAkJCQlC
QzlEOTAyMzBDOTc0NzJFMDA5OUE0QTMgLyogV29ya1F1ZXVlSXRlbS5oICovLApAQCAtNTEzLDYg
KzUxOSw3IEBACiAJCQkJQkM5RDkwMjUwQzk3NDcyRTAwOTlBNEEzIC8qIFdvcmtRdWV1ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM5RDkwMjYwQzk3NDcyRTAwOTlBNEEzIC8qIFdvcmtRdWV1ZUl0
ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzM0JGNUFCMEY5M0ZBNUMwMDBGMDQ0MSAvKiBQbGFp
blRleHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlBOEQ3OUNFQTBGQzI4QjJDMDA0
QUM4RkUgLyogRHVtcFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdTb3VyY2UuaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpAQCAtNjU4LDYgKzY2NSw3IEBACiAJCQkJQkM5RDkwMjQwQzk3NDcyRTAwOTlBNEEzIC8qIFdv
cmtRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0ExOEIyNjBDOUIwMTVDMDAxMTQzNjkg
LyogV29ya1F1ZXVlSXRlbU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzM0JGNUFDMEY5M0ZB
NUMwMDBGMDQ0MSAvKiBQbGFpblRleHRDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJ
QThENzlDRUIwRkMyOEIyQzAwNEFDOEZFIC8qIER1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291
cmNlLm0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL0R1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlLmggYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhMTE4MzcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5o
CkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlLCBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisgKiAzLiAgTmVpdGhl
ciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1l
cyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPENvY29hL0NvY29hLmg+CisKKy8vIEFu
IGltcGxlbWVudGF0aW9uIG9mIE5TRHJhZ2dpbmdTb3VyY2UgZm9yIHVzZSB3aXRoIER1bXBSZW5k
ZXJUcmVlRHJhZ2dpbmdJbmZvIHdoZW4gZHJhZ2dpbmcgZmlsZXMKKy8vIFVzZWQgYnkgLVtFdmVu
dFNlbmRpbmdDb250cm9sbGVyIGJlZ2luRHJhZ1dpdGhGaWxlczpdCisKK0BpbnRlcmZhY2UgRHVt
cFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdTb3VyY2UgOiBOU09iamVjdCB7Cit9CisKKy0gKE5TRHJh
Z09wZXJhdGlvbilkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2tGb3JMb2NhbDooQk9PTClmbGFn
OworCisvLyBJbXBsZW1lbnQgdGhlc2UgdG8gcHJldmVudCAidW5yZWNvZ25pemVkIHNlbGVjdG9y
IiBlcnJvcnMsIGRlc3BpdGUKKy8vIHdoYXQgTlNEcmFnZ2luZy5oJ3MgQkFMRCBGQUNFRCBMSUVT
IGFib3V0IHRoZXNlIG9ubHkgYmVpbmcgc2VudCB0byBvYmplY3RzIHdoaWNoIGltcGxlbWVudCB0
aGVtLgorLSAodm9pZClkcmFnZ2VkSW1hZ2U6KE5TSW1hZ2UgKilpbWFnZSBiZWdhbkF0OihOU1Bv
aW50KXNjcmVlblBvaW50OworLSAodm9pZClkcmFnZ2VkSW1hZ2U6KE5TSW1hZ2UgKilpbWFnZSBl
bmRlZEF0OihOU1BvaW50KXNjcmVlblBvaW50IG9wZXJhdGlvbjooTlNEcmFnT3BlcmF0aW9uKW9w
ZXJhdGlvbjsKKy0gKHZvaWQpZHJhZ2dlZEltYWdlOihOU0ltYWdlICopaW1hZ2UgbW92ZWRUbzoo
TlNQb2ludClzY3JlZW5Qb2ludDsKKworQGVuZApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdTb3VyY2UubSBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlLm0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmEzZTNkYgotLS0gL2Rldi9udWxsCisr
KyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5n
U291cmNlLm0KQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29n
bGUsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAqIDMu
ICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3Ig
dGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiRHVtcFJlbmRlclRyZWVG
aWxlRHJhZ2dpbmdTb3VyY2UuaCIKKworQGltcGxlbWVudGF0aW9uIER1bXBSZW5kZXJUcmVlRmls
ZURyYWdnaW5nU291cmNlCisKKy0gKE5TRHJhZ09wZXJhdGlvbilkcmFnZ2luZ1NvdXJjZU9wZXJh
dGlvbk1hc2tGb3JMb2NhbDooQk9PTClmbGFnCit7CisgICAgcmV0dXJuIE5TRHJhZ09wZXJhdGlv
bkNvcHk7Cit9CisKKy0gKHZvaWQpZHJhZ2dlZEltYWdlOihOU0ltYWdlICopaW1hZ2UgYmVnYW5B
dDooTlNQb2ludClzY3JlZW5Qb2ludAoreworfQorCistICh2b2lkKWRyYWdnZWRJbWFnZTooTlNJ
bWFnZSAqKWltYWdlIGVuZGVkQXQ6KE5TUG9pbnQpc2NyZWVuUG9pbnQgb3BlcmF0aW9uOihOU0Ry
YWdPcGVyYXRpb24pb3BlcmF0aW9uCit7Cit9CisKKy0gKHZvaWQpZHJhZ2dlZEltYWdlOihOU0lt
YWdlICopaW1hZ2UgbW92ZWRUbzooTlNQb2ludClzY3JlZW5Qb2ludAoreworfQorCitAZW5kCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5j
cHAKaW5kZXggMjI4MmY2OS4uNTBmOTZkMyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtNTEsNyArNTEsNiBAQCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoY29uc3Qgc3RkOjpzdHJpbmcm
IHRlc3RQYXRoT3JVUkwsIGNvbgogICAgICwgbV9kdW1wRWRpdGluZ0NhbGxiYWNrcyhmYWxzZSkK
ICAgICAsIG1fZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcyhmYWxzZSkKICAgICAsIG1fZHVtcEZy
YW1lTG9hZENhbGxiYWNrcyhmYWxzZSkKLSAgICAsIG1fYWRkRmlsZVRvUGFzdGVib2FyZE9uRHJh
ZyhmYWxzZSkKICAgICAsIG1fY2FsbENsb3NlT25XZWJWaWV3cyh0cnVlKQogICAgICwgbV9jYW5P
cGVuV2luZG93cyhmYWxzZSkKICAgICAsIG1fY2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBs
ZXRlKHRydWUpCkBAIC0yMjQsMTMgKzIyMyw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHRlc3RSZXBh
aW50Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uCiAg
ICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCi1zdGF0aWMgSlNW
YWx1ZVJlZiBhZGRGaWxlVG9QYXN0ZWJvYXJkT25EcmFnQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNv
bnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXpl
X3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKQotewotICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0g
c3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhp
c09iamVjdCkpOwotICAgIGNvbnRyb2xsZXItPnNldEFkZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWco
dHJ1ZSk7Ci0gICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotfQotCiBz
dGF0aWMgSlNWYWx1ZVJlZiBhZGREaXNhbGxvd2VkVVJMQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNv
bnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXpl
X3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKQogewogICAgIC8vIEhhcyBtYWMgaW1wbGVtZW50YXRpb24KQEAgLTgyNSwx
NCArODE3LDEyIEBAIEpTU3RhdGljVmFsdWUqIExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNW
YWx1ZXMoKQogICAgICAgICB7IDAsIDAsIDAsIDAgfQogICAgIH07CiAgICAgcmV0dXJuIHN0YXRp
Y1ZhbHVlczsKLQogfQogCiBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c3RhdGljRnVuY3Rpb25zKCkKIHsKICAgICBzdGF0aWMgSlNTdGF0aWNGdW5jdGlvbiBzdGF0aWNG
dW5jdGlvbnNbXSA9IHsKICAgICAgICAgeyAiYWRkRGlzYWxsb3dlZFVSTCIsIGFkZERpc2FsbG93
ZWRVUkxDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJhZGRGaWxlVG9QYXN0ZWJvYXJkT25E
cmFnIiwgYWRkRmlsZVRvUGFzdGVib2FyZE9uRHJhZ0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAg
IHsgImNsZWFyQWxsRGF0YWJhc2VzIiwgY2xlYXJBbGxEYXRhYmFzZXNDYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LAogICAgICAgICB7ICJjbGVhckJhY2tGb3J3YXJkTGlzdCIsIGNsZWFyQmFja0ZvcndhcmRMaXN0
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiY2xlYXJQZXJzaXN0ZW50VXNlclN0eWxlU2hl
ZXQiLCBjbGVhclBlcnNpc3RlbnRVc2VyU3R5bGVTaGVldENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5o
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRl
eCA3ZTMwYjk1Li40MThiMGEwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTEyMiw5ICsxMjIsNiBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gbV9kdW1wRnJhbWVM
b2FkQ2FsbGJhY2tzOyB9CiAgICAgdm9pZCBzZXREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKGJvb2wg
ZHVtcEZyYW1lTG9hZENhbGxiYWNrcykgeyBtX2R1bXBGcmFtZUxvYWRDYWxsYmFja3MgPSBkdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzOyB9CiAKLSAgICBib29sIGFkZEZpbGVUb1Bhc3RlYm9hcmRPbkRy
YWcoKSBjb25zdCB7IHJldHVybiBtX2FkZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWc7IH0KLSAgICB2
b2lkIHNldEFkZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWcoYm9vbCBhZGRGaWxlVG9QYXN0ZWJvYXJk
T25EcmFnKSB7IG1fYWRkRmlsZVRvUGFzdGVib2FyZE9uRHJhZyA9IGFkZEZpbGVUb1Bhc3RlYm9h
cmRPbkRyYWc7IH0KLQogICAgIGJvb2wgY2FsbENsb3NlT25XZWJWaWV3cygpIGNvbnN0IHsgcmV0
dXJuIG1fY2FsbENsb3NlT25XZWJWaWV3czsgfQogICAgIHZvaWQgc2V0Q2FsbENsb3NlT25XZWJW
aWV3cyhib29sIGNhbGxDbG9zZU9uV2ViVmlld3MpIHsgbV9jYWxsQ2xvc2VPbldlYlZpZXdzID0g
Y2FsbENsb3NlT25XZWJWaWV3czsgfQogCkBAIC0xNzcsNyArMTc0LDYgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fZHVtcEVkaXRpbmdDYWxsYmFja3M7CiAgICAgYm9vbCBtX2R1bXBSZXNvdXJjZUxv
YWRDYWxsYmFja3M7CiAgICAgYm9vbCBtX2R1bXBGcmFtZUxvYWRDYWxsYmFja3M7Ci0gICAgYm9v
bCBtX2FkZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWc7CiAgICAgYm9vbCBtX2NhbGxDbG9zZU9uV2Vi
Vmlld3M7CiAgICAgYm9vbCBtX2Nhbk9wZW5XaW5kb3dzOwogICAgIGJvb2wgbV9jbG9zZVJlbWFp
bmluZ1dpbmRvd3NXaGVuQ29tcGxldGU7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggMTIxMDk3Ni4uN2ZkM2FhMSAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMjYs
MTEgKzI2LDEyIEBACiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKICAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KLSAKKwog
I2ltcG9ydCAiRHVtcFJlbmRlclRyZWUuaCIKIAogI2ltcG9ydCAiQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuaCIKICNpbXBvcnQgIkNoZWNrZWRNYWxsb2MuaCIKKyNpbXBvcnQgIkR1bXBSZW5kZXJU
cmVlRHJhZ2dpbmdJbmZvLmgiCiAjaW1wb3J0ICJEdW1wUmVuZGVyVHJlZVBhc3RlYm9hcmQuaCIK
ICNpbXBvcnQgIkR1bXBSZW5kZXJUcmVlV2luZG93LmgiCiAjaW1wb3J0ICJFZGl0aW5nRGVsZWdh
dGUuaCIKQEAgLTEwOTEsNiArMTA5Miw4IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3QoY29uc3Qgc3Ry
aW5nJiB0ZXN0UGF0aE9yVVJMKQogCiAgICAgZ0xheW91dFRlc3RDb250cm9sbGVyID0gbmV3IExh
eW91dFRlc3RDb250cm9sbGVyKHRlc3RVUkwsIGV4cGVjdGVkUGl4ZWxIYXNoKTsKICAgICB0b3BM
b2FkaW5nRnJhbWUgPSBuaWw7CisgICAgQVNTRVJUKCFkcmFnZ2luZ0luZm8pOyAvLyB0aGUgcHJl
dmlvdXMgdGVzdCBzaG91bGQgaGF2ZSBjYWxsZWQgZXZlbnRTZW5kZXIubW91c2VVcCB0byBkcm9w
IQorICAgIHJlbGVhc2VBbmRaZXJvKCZkcmFnZ2luZ0luZm8pOwogICAgIGRvbmUgPSBOTzsKIAog
ICAgIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+c2V0SWNvbkRhdGFiYXNlRW5hYmxlZChmYWxzZSk7
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRXZlbnRTZW5kaW5n
Q29udHJvbGxlci5tbSBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRp
bmdDb250cm9sbGVyLm1tCmluZGV4IDU4ODMwMjYuLjQ2MjE3ZjMgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1tCisrKyBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1t
CkBAIC0zMyw2ICszMyw3IEBACiAKICNpbXBvcnQgIkR1bXBSZW5kZXJUcmVlLmgiCiAjaW1wb3J0
ICJEdW1wUmVuZGVyVHJlZURyYWdnaW5nSW5mby5oIgorI2ltcG9ydCAiRHVtcFJlbmRlclRyZWVG
aWxlRHJhZ2dpbmdTb3VyY2UuaCIKIAogI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIGZvciBHZXRDdXJyZW50RXZlbnRUaW1lKCkKICNpbXBvcnQg
PFdlYktpdC9ET01Qcml2YXRlLmg+CkBAIC0xMTgsMTYgKzExOSwxNyBAQCBCT09MIHJlcGxheWlu
Z1NhdmVkRXZlbnRzOwogCiArIChCT09MKWlzU2VsZWN0b3JFeGNsdWRlZEZyb21XZWJTY3JpcHQ6
KFNFTClhU2VsZWN0b3IKIHsKLSAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3Rvcihtb3VzZURv
d246KQotICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcihtb3VzZVVwOikKKyAg
ICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihiZWdpbkRyYWdXaXRoRmlsZXM6KQorICAgICAg
ICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihjbGVhcktpbGxSaW5nKQogICAgICAgICAg
ICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcihjb250ZXh0Q2xpY2spCi0gICAgICAgICAgICB8
fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHNjaGVkdWxlQXN5bmNocm9ub3VzQ2xpY2spCi0gICAg
ICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKG1vdXNlTW92ZVRvWDpZOikKLSAgICAg
ICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IobGVhcEZvcndhcmQ6KQotICAgICAgICAg
ICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihrZXlEb3duOndpdGhNb2RpZmllcnM6KQogICAg
ICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihlbmFibGVET01VSUV2ZW50TG9nZ2lu
ZzopCiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGZpcmVLZXlib2FyZEV2
ZW50c1RvRWxlbWVudDopCi0gICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGNs
ZWFyS2lsbFJpbmcpCisgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGtleURv
d246d2l0aE1vZGlmaWVyczopCisgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9y
KGxlYXBGb3J3YXJkOikKKyAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IobW91
c2VEb3duOikKKyAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IobW91c2VNb3Zl
VG9YOlk6KQorICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcihtb3VzZVVwOikK
KyAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3Ioc2NoZWR1bGVBc3luY2hyb25v
dXNDbGljaykKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IodGV4dFpvb21J
bikKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IodGV4dFpvb21PdXQpCiAg
ICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHpvb21QYWdlSW4pCkBAIC0xNDUs
MjAgKzE0NywyMiBAQCBCT09MIHJlcGxheWluZ1NhdmVkRXZlbnRzOwogCiArIChOU1N0cmluZyAq
KXdlYlNjcmlwdE5hbWVGb3JTZWxlY3RvcjooU0VMKWFTZWxlY3RvcgogeworICAgIGlmIChhU2Vs
ZWN0b3IgPT0gQHNlbGVjdG9yKGJlZ2luRHJhZ1dpdGhGaWxlczopKQorICAgICAgICByZXR1cm4g
QCJiZWdpbkRyYWdXaXRoRmlsZXMiOworICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGVu
YWJsZURPTVVJRXZlbnRMb2dnaW5nOikpCisgICAgICAgIHJldHVybiBAImVuYWJsZURPTVVJRXZl
bnRMb2dnaW5nIjsKKyAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihmaXJlS2V5Ym9hcmRF
dmVudHNUb0VsZW1lbnQ6KSkKKyAgICAgICAgcmV0dXJuIEAiZmlyZUtleWJvYXJkRXZlbnRzVG9F
bGVtZW50IjsKKyAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihrZXlEb3duOndpdGhNb2Rp
ZmllcnM6KSkKKyAgICAgICAgcmV0dXJuIEAia2V5RG93biI7CisgICAgaWYgKGFTZWxlY3RvciA9
PSBAc2VsZWN0b3IobGVhcEZvcndhcmQ6KSkKKyAgICAgICAgcmV0dXJuIEAibGVhcEZvcndhcmQi
OwogICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKG1vdXNlRG93bjopKQogICAgICAgICBy
ZXR1cm4gQCJtb3VzZURvd24iOwogICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKG1vdXNl
VXA6KSkKICAgICAgICAgcmV0dXJuIEAibW91c2VVcCI7CiAgICAgaWYgKGFTZWxlY3RvciA9PSBA
c2VsZWN0b3IobW91c2VNb3ZlVG9YOlk6KSkKICAgICAgICAgcmV0dXJuIEAibW91c2VNb3ZlVG8i
OwotICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGxlYXBGb3J3YXJkOikpCi0gICAgICAg
IHJldHVybiBAImxlYXBGb3J3YXJkIjsKLSAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3Rvcihr
ZXlEb3duOndpdGhNb2RpZmllcnM6KSkKLSAgICAgICAgcmV0dXJuIEAia2V5RG93biI7Ci0gICAg
aWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoZW5hYmxlRE9NVUlFdmVudExvZ2dpbmc6KSkKLSAg
ICAgICAgcmV0dXJuIEAiZW5hYmxlRE9NVUlFdmVudExvZ2dpbmciOwotICAgIGlmIChhU2VsZWN0
b3IgPT0gQHNlbGVjdG9yKGZpcmVLZXlib2FyZEV2ZW50c1RvRWxlbWVudDopKQotICAgICAgICBy
ZXR1cm4gQCJmaXJlS2V5Ym9hcmRFdmVudHNUb0VsZW1lbnQiOwogICAgIGlmIChhU2VsZWN0b3Ig
PT0gQHNlbGVjdG9yKHNldERyYWdNb2RlOikpCiAgICAgICAgIHJldHVybiBAInNldERyYWdNb2Rl
IjsKICAgICByZXR1cm4gbmlsOwpAQCAtMjM4LDYgKzI0MiwzMyBAQCBzdGF0aWMgTlNFdmVudFR5
cGUgZXZlbnRUeXBlRm9yTW91c2VCdXR0b25BbmRBY3Rpb24oaW50IGJ1dHRvbiwgTW91c2VBY3Rp
b24gYWN0aQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxOU0V2ZW50VHlwZT4oMCk7CiB9CiAKKy0g
KHZvaWQpYmVnaW5EcmFnV2l0aEZpbGVzOihXZWJTY3JpcHRPYmplY3QqKWpzRmlsZVBhdGhzCit7
CisgICAgYXNzZXJ0KCFkcmFnZ2luZ0luZm8pOworICAgIGFzc2VydChbanNGaWxlUGF0aHMgaXNL
aW5kT2ZDbGFzczpbV2ViU2NyaXB0T2JqZWN0IGNsYXNzXV0pOworCisgICAgTlNQYXN0ZWJvYXJk
ICpwYm9hcmQgPSBbTlNQYXN0ZWJvYXJkIHBhc3RlYm9hcmRXaXRoVW5pcXVlTmFtZV07CisgICAg
W3Bib2FyZCBkZWNsYXJlVHlwZXM6W05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0Ok5TRmlsZW5hbWVz
UGJvYXJkVHlwZV0gb3duZXI6bmlsXTsKKworICAgIE5TTXV0YWJsZUFycmF5ICpmaWxlUGF0aHMg
PSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IFtbanNG
aWxlUGF0aHMgd2ViU2NyaXB0VmFsdWVBdEluZGV4OmldIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5n
IGNsYXNzXV07IGkrKykgeworICAgICAgICBOU1N0cmluZyAqZmlsZVBhdGggPSAoTlNTdHJpbmcg
KilbanNGaWxlUGF0aHMgd2ViU2NyaXB0VmFsdWVBdEluZGV4OmldOworICAgICAgICAvLyBGSVhN
RTogV2Ugd2lsbCBuZWVkIHRvIHJlc29sdmUgcGF0aHMgdG8gYWJzb2x1dGUgZm9yIEZpbGUuZmls
ZVNpemUgdG8gd29yayBjb3JyZWN0bHkKKyAgICAgICAgW2ZpbGVQYXRocyBhZGRPYmplY3Q6Zmls
ZVBhdGhdOworICAgIH0KKworICAgIFtwYm9hcmQgc2V0UHJvcGVydHlMaXN0OmZpbGVQYXRocyBm
b3JUeXBlOk5TRmlsZW5hbWVzUGJvYXJkVHlwZV07CisgICAgYXNzZXJ0KFtwYm9hcmQgcHJvcGVy
dHlMaXN0Rm9yVHlwZTpOU0ZpbGVuYW1lc1Bib2FyZFR5cGVdKTsgLy8gc2V0UHJvcGVydHlMaXN0
IHdpbGwgc2lsZW50bHkgZmFpbCBvbiBlcnJvciwgYXNzZXJ0IHRoYXQgaXQgZGlkbid0IGZhaWwK
KworICAgIC8vIFdlIHByb3ZpZGUgYSBzb3VyY2UsIG90aGVyd2lzZSBbRHVtcFJlbmRlclRyZWVE
cmFnZ2luZ0luZm8gZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrXSByZXR1cm5zIE5TRHJhZ09w
ZXJhdGlvbk5vbmUKKyAgICBEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZSAqc291cmNl
ID0gW1tbRHVtcFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdTb3VyY2UgYWxsb2NdIGluaXRdIGF1dG9y
ZWxlYXNlXTsKKyAgICBkcmFnZ2luZ0luZm8gPSBbW0R1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZv
IGFsbG9jXSBpbml0V2l0aEltYWdlOm5pbCBvZmZzZXQ6TlNaZXJvU2l6ZSBwYXN0ZWJvYXJkOnBi
b2FyZCBzb3VyY2U6c291cmNlXTsKKyAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBkcmFnZ2luZ0Vu
dGVyZWQ6ZHJhZ2dpbmdJbmZvXTsKKworICAgIGRyYWdNb2RlID0gTk87IC8vIGRyYWdNb2RlIHNh
dmVzIGV2ZW50cyBhbmQgdGhlbiByZXBsYXlzIHRoZW0gbGF0ZXIuICBXZSBkb24ndCBuZWVkL3dh
bnQgdGhhdC4KKyAgICBsZWZ0TW91c2VCdXR0b25Eb3duID0gWUVTOyAvLyBNYWtlIHRoZSByZXN0
IG9mIGV2ZW50U2VuZGVyIHRoaW5rIGEgZHJhZyBpcyBpbiBwcm9ncmVzcworfQorCiAtICh2b2lk
KXVwZGF0ZUNsaWNrQ291bnRGb3JCdXR0b246KGludClidXR0b25OdW1iZXIKIHsKICAgICBpZiAo
KFtzZWxmIGN1cnJlbnRFdmVudFRpbWVdIC0gbGFzdENsaWNrID49IDEpIHx8CkBAIC0zNTUsNyAr
Mzg2LDYgQEAgc3RhdGljIE5TRXZlbnRUeXBlIGV2ZW50VHlwZUZvck1vdXNlQnV0dG9uQW5kQWN0
aW9uKGludCBidXR0b24sIE1vdXNlQWN0aW9uIGFjdGkKICAgICAgICAgW2ludm9jYXRpb24gc2V0
QXJndW1lbnQ6JnkgYXRJbmRleDozXTsKICAgICAgICAgCiAgICAgICAgIFtFdmVudFNlbmRpbmdD
b250cm9sbGVyIHNhdmVFdmVudDppbnZvY2F0aW9uXTsKLSAgICAgICAgCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTQ3Niw3ICs1MDYsNyBAQCBzdGF0aWMgTlNFdmVudFR5cGUgZXZlbnRU
eXBlRm9yTW91c2VCdXR0b25BbmRBY3Rpb24oaW50IGJ1dHRvbiwgTW91c2VBY3Rpb24gYWN0aQog
ICAgICAgICBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnMgPSBbY2hhcmFjdGVyIGxvd2VyY2Fz
ZVN0cmluZ107CiAgICAgfQogCi0gICAgaWYgKFttb2RpZmllcnMgaXNLaW5kT2ZDbGFzczpbV2Vi
U2NyaXB0T2JqZWN0IGNsYXNzXV0pCisgICAgaWYgKFttb2RpZmllcnMgaXNLaW5kT2ZDbGFzczpb
V2ViU2NyaXB0T2JqZWN0IGNsYXNzXV0pIHsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
W1ttb2RpZmllcnMgd2ViU2NyaXB0VmFsdWVBdEluZGV4OmldIGlzS2luZE9mQ2xhc3M6W05TU3Ry
aW5nIGNsYXNzXV07IGkrKykgewogICAgICAgICAgICAgTlNTdHJpbmcgKm1vZGlmaWVyID0gKE5T
U3RyaW5nICopW21vZGlmaWVycyB3ZWJTY3JpcHRWYWx1ZUF0SW5kZXg6aV07CiAgICAgICAgICAg
ICBpZiAoW21vZGlmaWVyIGlzRXF1YWw6QCJjdHJsS2V5Il0pCkBAIC00ODgsNiArNTE4LDcgQEAg
c3RhdGljIE5TRXZlbnRUeXBlIGV2ZW50VHlwZUZvck1vdXNlQnV0dG9uQW5kQWN0aW9uKGludCBi
dXR0b24sIE1vdXNlQWN0aW9uIGFjdGkKICAgICAgICAgICAgIGVsc2UgaWYgKFttb2RpZmllciBp
c0VxdWFsOkAibWV0YUtleSJdKQogICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3MgfD0gTlND
b21tYW5kS2V5TWFzazsKICAgICAgICAgfQorICAgIH0KIAogICAgIFtbW21haW5GcmFtZSBmcmFt
ZVZpZXddIGRvY3VtZW50Vmlld10gbGF5b3V0XTsKIApAQCAtNjE3LDkgKzY0OCw4IEBAIHN0YXRp
YyBOU0V2ZW50VHlwZSBldmVudFR5cGVGb3JNb3VzZUJ1dHRvbkFuZEFjdGlvbihpbnQgYnV0dG9u
LCBNb3VzZUFjdGlvbiBhY3RpCiAvLyB0byB3b3JrIHdlbGwgZW5vdWdoIHRoYXQgd2UgY2FuIHRl
c3QgdGhhdCB3YXkgaW5zdGVhZC4KIC0gKHZvaWQpZmlyZUtleWJvYXJkRXZlbnRzVG9FbGVtZW50
OihXZWJTY3JpcHRPYmplY3QgKillbGVtZW50IHsKICAgICAKLSAgICBpZiAoIVtlbGVtZW50IGlz
S2luZE9mQ2xhc3M6W0RPTUhUTUxFbGVtZW50IGNsYXNzXV0pIHsKKyAgICBpZiAoIVtlbGVtZW50
IGlzS2luZE9mQ2xhc3M6W0RPTUhUTUxFbGVtZW50IGNsYXNzXV0pCiAgICAgICAgIHJldHVybjsK
LSAgICB9CiAgICAgCiAgICAgRE9NSFRNTEVsZW1lbnQgKnRhcmdldCA9IChET01IVE1MRWxlbWVu
dCopZWxlbWVudDsKICAgICBET01Eb2N1bWVudCAqZG9jdW1lbnQgPSBbdGFyZ2V0IG93bmVyRG9j
dW1lbnRdOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVs
ZWdhdGUubW0gYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbQpp
bmRleCAxZjgyODkyLi42NmFhZGY5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbQorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvVUlEZWxlZ2F0ZS5tbQpAQCAtOTUsMTAgKzk1LDYgQEAgRHVtcFJlbmRlclRyZWVEcmFnZ2lu
Z0luZm8gKmRyYWdnaW5nSW5mbyA9IG5pbDsKIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXNl
bmRlciBkcmFnSW1hZ2U6KE5TSW1hZ2UgKilhbkltYWdlIGF0OihOU1BvaW50KXZpZXdMb2NhdGlv
biBvZmZzZXQ6KE5TU2l6ZSlpbml0aWFsT2Zmc2V0IGV2ZW50OihOU0V2ZW50ICopZXZlbnQgcGFz
dGVib2FyZDooTlNQYXN0ZWJvYXJkICopcGJvYXJkIHNvdXJjZTooaWQpc291cmNlT2JqIHNsaWRl
QmFjazooQk9PTClzbGlkZUZsYWcgZm9yVmlldzooTlNWaWV3ICopdmlldwogewogICAgICBhc3Nl
cnQoIWRyYWdnaW5nSW5mbyk7Ci0gICAgIGlmIChnTGF5b3V0VGVzdENvbnRyb2xsZXItPmFkZEZp
bGVUb1Bhc3RlYm9hcmRPbkRyYWcoKSkgewotICAgICAgICAgW3Bib2FyZCBkZWNsYXJlVHlwZXM6
W05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0Ok5TRmlsZW5hbWVzUGJvYXJkVHlwZV0gb3duZXI6bmls
XTsKLSAgICAgICAgIFtwYm9hcmQgc2V0UHJvcGVydHlMaXN0OltOU0FycmF5IGFycmF5V2l0aE9i
amVjdDpAIkRSVEZha2VGaWxlIl0gZm9yVHlwZTpOU0ZpbGVuYW1lc1Bib2FyZFR5cGVdOwotICAg
ICB9CiAgICAgIGRyYWdnaW5nSW5mbyA9IFtbRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8gYWxs
b2NdIGluaXRXaXRoSW1hZ2U6YW5JbWFnZSBvZmZzZXQ6aW5pdGlhbE9mZnNldCBwYXN0ZWJvYXJk
OnBib2FyZCBzb3VyY2U6c291cmNlT2JqXTsKICAgICAgW3NlbmRlciBkcmFnZ2luZ1VwZGF0ZWQ6
ZHJhZ2dpbmdJbmZvXTsKICAgICAgW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIgcmVwbGF5U2F2ZWRF
dmVudHNdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30460</attachid>
            <date>2009-05-19 00:14:52 -0700</date>
            <delta_ts>2009-05-19 17:38:27 -0700</delta_ts>
            <desc>Remove layoutTestController.addFileToPasteboardOnDrag and add eventSender.beginDragWithFiles</desc>
            <filename>Remove-layoutTestController.addFileToPasteboardOnDrag-and-add-eventSender.beginDragWithFiles.patch</filename>
            <type>text/plain</type>
            <size>31689</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">OWQ5OThkNDM1NzcyMDljMWYzNWE5ZmNkODcxOWRkODQ2MDIzNjkyOApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVlZjVlNTku
LmY1ZDBiYWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAwOS0wNS0xOCAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVtb3ZlIGxheW91dFRlc3RDb250cm9sbGVyLmFkZEZpbGVUb1Bhc3RlYm9h
cmRPbkRyYWcgYW5kIGFkZCBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1ODUyCisKKyAgICAgICAg
UmUtd3JvdGUgdGhlc2UgdGVzdHMgdG8gdXNlIHRoZSBtb3JlIGZlYXR1cmUtZnVsbCBldmVudFNl
bmRlci5iZWdpbkRyYWdXaXRoRmlsZXMKKyAgICAgICAgTm9uLW1hYyBwbGF0Zm9ybXMgYWxyZWFk
eSBza2lwIHRoZXNlIHRlc3RzLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9kcmFnZ2luZy10by1k
aXNhYmxlZC1maWxlLWlucHV0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2Ry
YWdnaW5nLXRvLWRpc2FibGVkLWZpbGUtaW5wdXQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1z
L2RyYWdnaW5nLXRvLWZpbGUtaW5wdXQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9y
bXMvZHJhZ2dpbmctdG8tZmlsZS1pbnB1dC5odG1sOgorCiAyMDA5LTA1LTE4ICBEYXZpZCBLaWx6
ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgQnVnIDIwNjUyOiBXZWJLaXQgZG9l
c24ndCBkaXNwbGF5IGZhdmljb25zIHdpdGggTUlNRSB0eXBlIGltYWdlL3ZuZC5taWNyb3NvZnQu
aWNvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kcmFnZ2luZy10by1kaXNh
YmxlZC1maWxlLWlucHV0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJh
Z2dpbmctdG8tZGlzYWJsZWQtZmlsZS1pbnB1dC1leHBlY3RlZC50eHQKaW5kZXggNTI4YmUyYy4u
YWY5YWM1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kcmFnZ2luZy10by1k
aXNhYmxlZC1maWxlLWlucHV0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2RyYWdnaW5nLXRvLWRpc2FibGVkLWZpbGUtaW5wdXQtZXhwZWN0ZWQudHh0CkBAIC0zLDYg
KzMsNSBAQCBUaGlzIHRlc3RzIHRoYXQgeW91IGNhbid0IGRyYWcgYSBmaWxlIG9udG8gYSBkaXNh
YmxlZCA8aW5wdXQgdHlwZT0iZmlsZSI+CiBUbyB0ZXN0IG1hbnVhbGx5IHlvdSBuZWVkIHRvIGF0
dGVtcHQgdG8gZHJhZyBhIGZpbGUgb250byB0aGUgZmlsZSBpbnB1dCBiZWxvdwogCiAKLQogUEFT
UzogQ291bGQgbm90IGRyb3AgZmlsZSBvbiB0byB0aGUgZGlzYWJsZWQgZmlsZSBpbnB1dAogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RyYWdnaW5nLXRvLWRpc2FibGVkLWZp
bGUtaW5wdXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZGlzYWJs
ZWQtZmlsZS1pbnB1dC5odG1sCmluZGV4IDg3MmQwODkuLjE5ZGI5YzAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZGlzYWJsZWQtZmlsZS1pbnB1dC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZGlzYWJsZWQtZmlsZS1p
bnB1dC5odG1sCkBAIC0xLDEwICsxLDggQEAKIDxwPlRoaXMgdGVzdHMgdGhhdCB5b3UgY2FuJ3Qg
ZHJhZyBhIGZpbGUgb250byBhIGRpc2FibGVkICZsdDtpbnB1dCB0eXBlPSJmaWxlIiZndDs8L3A+
CiA8cD5UbyB0ZXN0IG1hbnVhbGx5IHlvdSBuZWVkIHRvIGF0dGVtcHQgdG8gZHJhZyBhIGZpbGUg
b250byB0aGUgZmlsZSBpbnB1dCBiZWxvdzwvcD4KLTxpbnB1dCBpZD0idGFyZ2V0IiB0eXBlPSJm
aWxlIiBkaXNhYmxlZC8+PGJyIC8+Ci08aW5wdXQgaWQ9ImRyYWdTdGFydCIgdHlwZT0idGV4dCIg
dmFsdWU9IlRoaXMgaW5wdXQgZmllbGQgaXMgb25seSBwcmVzZW50IHRvIGFsbG93IERSVCB0byBp
bml0aWF0ZSBhIGRyYWciPjwvaW5wdXQ+PGJyIC8+Cis8aW5wdXQgaWQ9InRhcmdldCIgdHlwZT0i
ZmlsZSIgZGlzYWJsZWQgLz48YnIgLz4KIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgogCi0KIDxz
Y3JpcHQ+CiAgICAgZnVuY3Rpb24gZGVidWcoc3RyKSB7CiAgICAgICAgIHZhciBjID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKQpAQCAtMTIsMjQgKzEwLDE2IEBACiAgICAgfQog
CiAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAgICAgdmFyIGRyYWdTdGFydCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJkcmFnU3RhcnQiKTsKLSAgICAgICAgdmFyIHggPSBkcmFnU3Rh
cnQub2Zmc2V0TGVmdCArIGRyYWdTdGFydC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZhciB5
ID0gZHJhZ1N0YXJ0Lm9mZnNldFRvcCArIGRyYWdTdGFydC5vZmZzZXRIZWlnaHQgLyAyOwotCiAg
ICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAg
ICAgICAgIHZhciB0eCA9IHRhcmdldC5vZmZzZXRMZWZ0ICsgdGFyZ2V0Lm9mZnNldFdpZHRoIC8g
MjsKICAgICAgICAgdmFyIHR5ID0gdGFyZ2V0Lm9mZnNldFRvcCArIHRhcmdldC5vZmZzZXRIZWln
aHQgLyAyOwotICAgICAgICAKLSAgICAgICAgZHJhZ1N0YXJ0LnNlbGVjdCgpOwogCiAgICAgICAg
IHZhciBpbml0aWFsVmFsdWUgPSB0YXJnZXQudmFsdWU7Ci0gICAgICAgIAotICAgICAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3du
KCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDQwMCk7CisKKyAgICAgICAgZXZl
bnRTZW5kZXIuYmVnaW5EcmFnV2l0aEZpbGVzKFsnRFJURmFrZUZpbGUnXSk7CiAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHR4LCB0eSk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsgICAgICAgCi0gICAgICAgICAKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwor
CiAgICAgICAgIHZhciBmaW5hbFZhbHVlID0gdGFyZ2V0LnZhbHVlOwogICAgICAgICBpZiAoaW5p
dGlhbFZhbHVlID09IGZpbmFsVmFsdWUpCiAgICAgICAgICAgICBkZWJ1ZygiUEFTUzogQ291bGQg
bm90IGRyb3AgZmlsZSBvbiB0byB0aGUgZGlzYWJsZWQgZmlsZSBpbnB1dCIpOwpAQCAtMzgsMTMg
KzI4LDcgQEAKICAgICB9CiAKICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFkZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWco
KTsKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICBy
dW5UZXN0KCk7CiAgICAgfQotICAgIAotICAgIC8vIHJlbW92ZSBkcmFnIHNvdXJjZQotICAgIHZh
ciBkcmFnU3RhcnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHJhZ1N0YXJ0Iik7Ci0gICAg
ZHJhZ1N0YXJ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZHJhZ1N0YXJ0KTsKLSAgICAKIDwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kcmFnZ2luZy10by1maWxl
LWlucHV0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8t
ZmlsZS1pbnB1dC1leHBlY3RlZC50eHQKaW5kZXggYmU5MTA3MS4uZGIxMzJhYyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kcmFnZ2luZy10by1maWxlLWlucHV0LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RyYWdnaW5nLXRvLWZpbGUtaW5wdXQt
ZXhwZWN0ZWQudHh0CkBAIC0zLDcgKzMsNiBAQCBUaGlzIHRlc3RzIHRoZSBhYmlsaXR5IHRvIGRy
YWcgYSBmaWxlIG9udG8gPGlucHV0IHR5cGU9ImZpbGUiPgogVG8gdGVzdCBtYW51YWxseSB5b3Ug
bmVlZCB0byBhdHRlbXB0IHRvIGRyYWcgYSBmaWxlIG9udG8gdGhlIGZpbGUgaW5wdXQgYmVsb3cK
IAogCi0KIFBBU1M6IFN1Y2Nlc3NmdWxseSBkcm9wcGVkIGZpbGUgb24gdG8gZmlsZSBpbnB1dAog
UEFTUzogRmluaXNoZWQgdGVzdAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2RyYWdnaW5nLXRvLWZpbGUtaW5wdXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJh
Z2dpbmctdG8tZmlsZS1pbnB1dC5odG1sCmluZGV4IDA4ZDJjZDcuLmYyZDNjNzIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZmlsZS1pbnB1dC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZmlsZS1pbnB1dC5odG1sCkBA
IC0xLDEwICsxLDggQEAKIDxwPlRoaXMgdGVzdHMgdGhlIGFiaWxpdHkgdG8gZHJhZyBhIGZpbGUg
b250byAmbHQ7aW5wdXQgdHlwZT0iZmlsZSImZ3Q7PC9wPgogPHA+VG8gdGVzdCBtYW51YWxseSB5
b3UgbmVlZCB0byBhdHRlbXB0IHRvIGRyYWcgYSBmaWxlIG9udG8gdGhlIGZpbGUgaW5wdXQgYmVs
b3c8L3A+Ci08aW5wdXQgaWQ9InRhcmdldCIgdHlwZT0iZmlsZSIvPjxiciAvPgotPGlucHV0IGlk
PSJkcmFnU3RhcnQiIHR5cGU9InRleHQiIHZhbHVlPSJUaGlzIGlucHV0IGZpZWxkIGlzIG9ubHkg
cHJlc2VudCB0byBhbGxvdyBEUlQgdG8gaW5pdGlhdGUgYSBkcmFnIj48L2lucHV0PjxiciAvPgor
PGlucHV0IGlkPSJ0YXJnZXQiIHR5cGU9ImZpbGUiIC8+PGJyIC8+CiA8cHJlIGlkPSJjb25zb2xl
Ij48L3ByZT4KIAotCiA8c2NyaXB0PgogICAgIGZ1bmN0aW9uIGRlYnVnKHN0cikgewogICAgICAg
ICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykKQEAgLTEyLDQxICsx
MCwyNyBAQAogICAgIH0KIAogICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIHZhciBk
cmFnU3RhcnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHJhZ1N0YXJ0Iik7Ci0gICAgICAg
IHZhciB4ID0gZHJhZ1N0YXJ0Lm9mZnNldExlZnQgKyBkcmFnU3RhcnQub2Zmc2V0V2lkdGggLyAy
OwotICAgICAgICB2YXIgeSA9IGRyYWdTdGFydC5vZmZzZXRUb3AgKyBkcmFnU3RhcnQub2Zmc2V0
SGVpZ2h0IC8gMjsKLQogICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRhcmdldCIpOwogICAgICAgICB2YXIgdHggPSB0YXJnZXQub2Zmc2V0TGVmdCArIHRhcmdl
dC5vZmZzZXRXaWR0aCAvIDI7CiAgICAgICAgIHZhciB0eSA9IHRhcmdldC5vZmZzZXRUb3AgKyB0
YXJnZXQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgCi0gICAgICAgIGRyYWdTdGFydC5zZWxl
Y3QoKTsKIAogICAgICAgICB2YXIgaW5pdGlhbFZhbHVlID0gdGFyZ2V0LnZhbHVlOwotICAgICAg
ICAKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7Ci0gICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlRG93bigpOwotICAgICAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCg0MDAp
OworCisgICAgICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhbJ0RSVEZha2VGaWxl
J10pOwogICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh0eCwgdHkpOwotICAgICAgICBl
dmVudFNlbmRlci5tb3VzZVVwKCk7ICAgICAgIAotICAgICAgICAgCisgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlVXAoKTsKKwogICAgICAgICB2YXIgZmluYWxWYWx1ZSA9IHRhcmdldC52YWx1ZTsK
ICAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSA9PSBmaW5hbFZhbHVlIHx8IGZpbmFsVmFsdWUgIT0g
IkRSVEZha2VGaWxlIikKLSAgICAgICAgICAgIGRlYnVnKCJGQUlMOiBDb3VsZCBub3QgZHJvcCBm
aWxlIG9uIHRvIGZpbGUgaW5wdXQiKTsKKyAgICAgICAgICAgIGRlYnVnKCJGQUlMOiBDb3VsZCBu
b3QgZHJvcCBmaWxlIG9uIHRvIGZpbGUgaW5wdXQgYXQgIiArIHR4ICsgIiwgIiArIHR5ICsgIiAg
aW5pdGlhbFZhbHVlOiAiICsgaW5pdGlhbFZhbHVlICsgIiBmaW5hbFZhbHVlOiAiICsgZmluYWxW
YWx1ZSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGRlYnVnKCJQQVNTOiBTdWNjZXNzZnVs
bHkgZHJvcHBlZCBmaWxlIG9uIHRvIGZpbGUgaW5wdXQiKTsKLSAgICAgICAgICAgIAorCiAgICAg
ICAgIGRlYnVnKCJQQVNTOiBGaW5pc2hlZCB0ZXN0Iik7CiAgICAgfQogCiAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5h
ZGRGaWxlVG9QYXN0ZWJvYXJkT25EcmFnKCk7CiAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKICAgICAgICAgcnVuVGVzdCgpOwogICAgIH0KLSAgICAKLSAgICAvLyBy
ZW1vdmUgZHJhZyBzb3VyY2UKLSAgICB2YXIgZHJhZ1N0YXJ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImRyYWdTdGFydCIpOwotICAgIGRyYWdTdGFydC5wYXJlbnROb2RlLnJlbW92ZUNoaWxk
KGRyYWdTdGFydCk7Ci0gICAgCi08L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRv
b2xzL0NoYW5nZUxvZwppbmRleCAwYzAyOGNiLi4yNTVhNGUzIDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEg
QEAKKzIwMDktMDUtMTggIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBsYXlvdXRUZXN0
Q29udHJvbGxlci5hZGRGaWxlVG9QYXN0ZWJvYXJkT25EcmFnIGFuZCBhZGQgZXZlbnRTZW5kZXIu
YmVnaW5EcmFnV2l0aEZpbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yNTg1MgorCisgICAgICAgIFRoaXMgYWxsb3dzIHVzIHRvIG5vdyB0ZXN0IG11
bHRpLWZpbGUgZmlsZSBkcmFncyBpbiBEdW1wUmVuZGVyVHJlZS4KKyAgICAgICAgSSBkaWQgbm90
IGFkZCBhbnkgYWRkaXRpb25hbCB0ZXN0cyAoeWV0KSwgYnV0IEkgcmUtd3JvdGUKKyAgICAgICAg
dGhlIGV4aXN0aW5nIHRlc3RzIHdoaWNoIHVzZWQgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkRmls
ZVRvUGFzdGVib2FyZE9uRHJhZworCisgICAgICAgIEkgYWRkZWQgYSBEdW1wUmVuZGVyVHJlZUZp
bGVEcmFnZ2luZ1NvdXJjZSBjbGFzcyB0byBhdm9pZAorICAgICAgICB0aGUgaGFjayBvZiBpZiAo
IWRyYWdnaW5nU291cmNlKSBpbiBbRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8gZHJhZ2dpbmdT
b3VyY2VPcGVyYXRpb25NYXNrXQorCisgICAgICAgIEkgd2lsbCBhZGQgdGVzdHMgaW4gZm9sbG93
LXVwIHBhdGNoZXMgd2hpY2ggdGVzdCBtdWx0aS1maWxlIGRyYWc6CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTg2MgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5oOiBB
ZGRlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2lu
Z1NvdXJjZS5tOiBBZGRlZC4KKyAgICAgICAgKC1bRHVtcFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdT
b3VyY2UgZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrRm9yTG9jYWw6XSk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0
VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKExheW91dFRl
c3RDb250cm9sbGVyOjpzdGF0aWNWYWx1ZXMpOiByZW1vdmVkIGFkZEZpbGVUb1Bhc3RlYm9hcmRP
bkRyYWcgc3VwcG9ydAorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0
aW9ucyk6IHJlbW92ZWQgYWRkRmlsZVRvUGFzdGVib2FyZE9uRHJhZyBzdXBwb3J0CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChydW5UZXN0KTogQVNT
RVJUIHRoYXQgZHJhZ2dpbmdJbmZvIGhhcyBiZWVuIGNsZWFyZWQKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9tYWMvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5tbToKKyAgICAgICAgKCtbRXZlbnRT
ZW5kaW5nQ29udHJvbGxlciBpc1NlbGVjdG9yRXhjbHVkZWRGcm9tV2ViU2NyaXB0Ol0pOiBTb3J0
ZWQgc2VsZWN0b3JzLgorICAgICAgICAoK1tFdmVudFNlbmRpbmdDb250cm9sbGVyIHdlYlNjcmlw
dE5hbWVGb3JTZWxlY3RvcjpdKTogU29ydGVkIHNlbGVjdG9ycy4KKyAgICAgICAgKC1bRXZlbnRT
ZW5kaW5nQ29udHJvbGxlciBiZWdpbkRyYWdXaXRoRmlsZXM6XSk6CisgICAgICAgICgtW0V2ZW50
U2VuZGluZ0NvbnRyb2xsZXIgbW91c2VNb3ZlVG9YOlk6XSk6CisgICAgICAgICgtW0V2ZW50U2Vu
ZGluZ0NvbnRyb2xsZXIga2V5RG93bjp3aXRoTW9kaWZpZXJzOl0pOgorICAgICAgICAoLVtFdmVu
dFNlbmRpbmdDb250cm9sbGVyIGZpcmVLZXlib2FyZEV2ZW50c1RvRWxlbWVudDpdKTogcmVtb3Zl
ZCBzcHVyaW91cyB7IH0KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5t
bToKKyAgICAgICAgKC1bVUlEZWxlZ2F0ZSB3ZWJWaWV3OmRyYWdJbWFnZTphdDpvZmZzZXQ6ZXZl
bnQ6cGFzdGVib2FyZDpzb3VyY2U6c2xpZGVCYWNrOmZvclZpZXc6XSk6IHJlbW92ZWQgYWRkRmls
ZVRvUGFzdGVib2FyZE9uRHJhZyBzdXBwb3J0CisKIDIwMDktMDUtMTggIEtldmluIE9sbGl2aWVy
ICA8a2V2aW5vQHRoZW9sbGl2aWVycy5jb20+CiAKICAgICAgICAgd3ggYnVpbGQgZml4LiBVc2Ug
cHl0aG9uLWNvbmZpZyB0byBnZXQgUHl0aG9uIGxpbmtpbmcgaW5mbyBvbiBVbml4IE9TZXMuIApk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBS
ZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjJlYTQwMS4uY2UwNjE0
ZiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01Nyw2ICs1Nyw4
IEBACiAJCUE4QjkxQUUyMENGM0IzNzIwMDhGOTFGRiAvKiBEdW1wUmVuZGVyVHJlZVBhc3RlYm9h
cmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4Qjkx
QURGMENGM0IzNzIwMDhGOTFGRiAvKiBEdW1wUmVuZGVyVHJlZVBhc3RlYm9hcmQuaCAqLzsgfTsK
IAkJQThCOTFCRkQwQ0Y1MjJCNDAwOEY5MUZGIC8qIENoZWNrZWRNYWxsb2MuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCOTFCRjcwQ0Y1MjJCNDAw
OEY5MUZGIC8qIENoZWNrZWRNYWxsb2MuY3BwICovOyB9OwogCQlBOEI5MUJGRjBDRjUyMkI0MDA4
RjkxRkYgLyogQ2hlY2tlZE1hbGxvYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQThCOTFCRjkwQ0Y1MjJCNDAwOEY5MUZGIC8qIENoZWNrZWRNYWxsb2Mu
aCAqLzsgfTsKKwkJQThENzlDRUEwRkMyOEIyQzAwNEFDOEZFIC8qIER1bXBSZW5kZXJUcmVlRmls
ZURyYWdnaW5nU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOEQ3OUNFODBGQzI4QjJDMDA0QUM4RkUgLyogRHVtcFJlbmRlclRyZWVGaWxlRHJh
Z2dpbmdTb3VyY2UuaCAqLzsgfTsKKwkJQThENzlDRUIwRkMyOEIyQzAwNEFDOEZFIC8qIER1bXBS
ZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlLm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBOEQ3OUNFOTBGQzI4QjJDMDA0QUM4RkUgLyogRHVtcFJlbmRl
clRyZWVGaWxlRHJhZ2dpbmdTb3VyY2UubSAqLzsgfTsKIAkJQUU4MjU5RjMwOEQyMjQ2MzAwMDUw
N0FCIC8qIENhcmJvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBRTgyNTdFRjA4RDIyMzg5MDAwNTA3QUIgLyogQ2FyYm9uLmZyYW1l
d29yayAqLzsgfTsKIAkJQUU4MjU5RjQwOEQyMjQ2MzAwMDUwN0FCIC8qIENhcmJvbi5mcmFtZXdv
cmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRTgy
NTdFRjA4RDIyMzg5MDAwNTA3QUIgLyogQ2FyYm9uLmZyYW1ld29yayAqLzsgfTsKIAkJQjVBNzUy
QTIwOEFGNUQxRjAwMTM4RTQ1IC8qIFF1YXJ0ekNvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3Mg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjVBNzUyQTEwOEFGNUQxRjAwMTM4
RTQ1IC8qIFF1YXJ0ekNvcmUuZnJhbWV3b3JrICovOyB9OwpAQCAtMTkxLDYgKzE5Myw4IEBACiAJ
CUE4QjkxQURGMENGM0IzNzIwMDhGOTFGRiAvKiBEdW1wUmVuZGVyVHJlZVBhc3RlYm9hcmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRHVtcFJlbmRlclRyZWVQYXN0ZWJvYXJk
Lmg7IHBhdGggPSBtYWMvRHVtcFJlbmRlclRyZWVQYXN0ZWJvYXJkLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE4QjkxQkY3MENGNTIyQjQwMDhGOTFGRiAvKiBDaGVja2VkTWFsbG9j
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENoZWNrZWRNYWxsb2Mu
Y3BwOyBwYXRoID0gbWFjL0NoZWNrZWRNYWxsb2MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBOEI5MUJGOTBDRjUyMkI0MDA4RjkxRkYgLyogQ2hlY2tlZE1hbGxvYy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDaGVja2VkTWFsbG9jLmg7IHBhdGggPSBtYWMv
Q2hlY2tlZE1hbGxvYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBOEQ3OUNFODBG
QzI4QjJDMDA0QUM4RkUgLyogRHVtcFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdTb3VyY2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHVtcFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdT
b3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQThENzlDRTkwRkMyOEIyQzAw
NEFDOEZFIC8qIER1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlLm0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMub2JqYzsgcGF0aCA9IER1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNl
Lm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBN0YxMEMyMENCM0MxMDMwMDAzQkRD
OSAvKiBBSEVNX19fXy5UVEYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBmaWxlOyBuYW1lID0gIkFIRU1fX19fLlRURiI7IHBhdGggPSAicXQvZm9udHMv
QUhFTV9fX18uVFRGIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUU4MjU3RUYwOEQy
MjM4OTAwMDUwN0FCIC8qIENhcmJvbi5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IENhcmJv
bi5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9DYXJib24uZnJh
bWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQlCNUE3NTI2NzA4QUY0QTRB
MDAxMzhFNDUgLyogSW1hZ2VEaWZmICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxp
Y2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5JbmRl
eCA9IDA7IHBhdGggPSBJbWFnZURpZmY7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CkBAIC0zMDYsNiArMzEwLDggQEAKIAkJCQlCQ0ExOEMwQTBDOUI1OUVGMDAxMTQzNjkgLyog
RHVtcFJlbmRlclRyZWVNYWMuaCAqLywKIAkJCQlCQ0ExOEI3MzBDOUIwOEYxMDAxMTQzNjkgLyog
RHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8uaCAqLywKIAkJCQlCQ0ExOEI3NDBDOUIwOEYxMDAx
MTQzNjkgLyogRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8ubW0gKi8sCisJCQkJQThENzlDRTgw
RkMyOEIyQzAwNEFDOEZFIC8qIER1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlLmggKi8s
CisJCQkJQThENzlDRTkwRkMyOEIyQzAwNEFDOEZFIC8qIER1bXBSZW5kZXJUcmVlRmlsZURyYWdn
aW5nU291cmNlLm0gKi8sCiAJCQkJQkM5RDkwMjEwQzk3NDcyRDAwOTlBNEEzIC8qIFdvcmtRdWV1
ZS5jcHAgKi8sCiAJCQkJQkM5RDkwMjIwQzk3NDcyRTAwOTlBNEEzIC8qIFdvcmtRdWV1ZS5oICov
LAogCQkJCUJDOUQ5MDIzMEM5NzQ3MkUwMDk5QTRBMyAvKiBXb3JrUXVldWVJdGVtLmggKi8sCkBA
IC01MTMsNiArNTE5LDcgQEAKIAkJCQlCQzlEOTAyNTBDOTc0NzJFMDA5OUE0QTMgLyogV29ya1F1
ZXVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzlEOTAyNjBDOTc0NzJFMDA5OUE0QTMgLyogV29y
a1F1ZXVlSXRlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzQkY1QUIwRjkzRkE1QzAwMEYwNDQx
IC8qIFBsYWluVGV4dENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4RDc5Q0VBMEZD
MjhCMkMwMDRBQzhGRSAvKiBEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkBAIC02NTgsNiArNjY1LDcgQEAKIAkJCQlCQzlEOTAyNDBDOTc0NzJFMDA5OUE0
QTMgLyogV29ya1F1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQTE4QjI2MEM5QjAxNUMw
MDExNDM2OSAvKiBXb3JrUXVldWVJdGVtTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzQkY1
QUMwRjkzRkE1QzAwMEYwNDQxIC8qIFBsYWluVGV4dENvbnRyb2xsZXIubW0gaW4gU291cmNlcyAq
LywKKwkJCQlBOEQ3OUNFQjBGQzI4QjJDMDA0QUM4RkUgLyogRHVtcFJlbmRlclRyZWVGaWxlRHJh
Z2dpbmdTb3VyY2UubSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdTb3VyY2UuaCBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTkwYTljZAotLS0gL2Rldi9udWxsCisr
KyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5n
U291cmNlLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29n
bGUsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAqIDMu
ICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3Ig
dGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8Q29jb2EvQ29jb2EuaD4K
KworLy8gQW4gaW1wbGVtZW50YXRpb24gb2YgTlNEcmFnZ2luZ1NvdXJjZSBmb3IgdXNlIHdpdGgg
RHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8gd2hlbiBkcmFnZ2luZyBmaWxlcworLy8gVXNlZCBi
eSAtW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIgYmVnaW5EcmFnV2l0aEZpbGVzOl0KKworQGludGVy
ZmFjZSBEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZSA6IE5TT2JqZWN0IHsKK30KKwor
LSAoTlNEcmFnT3BlcmF0aW9uKWRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFza0ZvckxvY2FsOihC
T09MKWZsYWc7CisKK0BlbmQKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L0R1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlLm0gYi9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2N2IzZDQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5tCkBA
IC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlLCBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisgKiAzLiAgTmVpdGhlciB0
aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBv
ZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIkR1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5n
U291cmNlLmgiCisKK0BpbXBsZW1lbnRhdGlvbiBEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1Nv
dXJjZQorCistIChOU0RyYWdPcGVyYXRpb24pZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrRm9y
TG9jYWw6KEJPT0wpZmxhZworeworICAgIHJldHVybiBOU0RyYWdPcGVyYXRpb25Db3B5OworfQor
CitAZW5kCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5jcHAKaW5kZXggMjI4MmY2OS4uNTBmOTZkMyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtNTEsNyArNTEs
NiBAQCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoY29uc3Qgc3Rk
OjpzdHJpbmcmIHRlc3RQYXRoT3JVUkwsIGNvbgogICAgICwgbV9kdW1wRWRpdGluZ0NhbGxiYWNr
cyhmYWxzZSkKICAgICAsIG1fZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcyhmYWxzZSkKICAgICAs
IG1fZHVtcEZyYW1lTG9hZENhbGxiYWNrcyhmYWxzZSkKLSAgICAsIG1fYWRkRmlsZVRvUGFzdGVi
b2FyZE9uRHJhZyhmYWxzZSkKICAgICAsIG1fY2FsbENsb3NlT25XZWJWaWV3cyh0cnVlKQogICAg
ICwgbV9jYW5PcGVuV2luZG93cyhmYWxzZSkKICAgICAsIG1fY2xvc2VSZW1haW5pbmdXaW5kb3dz
V2hlbkNvbXBsZXRlKHRydWUpCkBAIC0yMjQsMTMgKzIyMyw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVm
IHRlc3RSZXBhaW50Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1
bmN0aW9uCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCi1z
dGF0aWMgSlNWYWx1ZVJlZiBhZGRGaWxlVG9QYXN0ZWJvYXJkT25EcmFnQ2FsbGJhY2soSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2Jq
ZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250
cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFBy
aXZhdGUodGhpc09iamVjdCkpOwotICAgIGNvbnRyb2xsZXItPnNldEFkZEZpbGVUb1Bhc3RlYm9h
cmRPbkRyYWcodHJ1ZSk7Ci0gICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQp
OwotfQotCiBzdGF0aWMgSlNWYWx1ZVJlZiBhZGREaXNhbGxvd2VkVVJMQ2FsbGJhY2soSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2Jq
ZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIC8vIEhhcyBtYWMgaW1wbGVtZW50YXRpb24K
QEAgLTgyNSwxNCArODE3LDEyIEBAIEpTU3RhdGljVmFsdWUqIExheW91dFRlc3RDb250cm9sbGVy
OjpzdGF0aWNWYWx1ZXMoKQogICAgICAgICB7IDAsIDAsIDAsIDAgfQogICAgIH07CiAgICAgcmV0
dXJuIHN0YXRpY1ZhbHVlczsKLQogfQogCiBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKIHsKICAgICBzdGF0aWMgSlNTdGF0aWNGdW5jdGlv
biBzdGF0aWNGdW5jdGlvbnNbXSA9IHsKICAgICAgICAgeyAiYWRkRGlzYWxsb3dlZFVSTCIsIGFk
ZERpc2FsbG93ZWRVUkxDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJhZGRGaWxlVG9QYXN0
ZWJvYXJkT25EcmFnIiwgYWRkRmlsZVRvUGFzdGVib2FyZE9uRHJhZ0NhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CiAgICAgICAgIHsgImNsZWFyQWxsRGF0YWJhc2VzIiwgY2xlYXJBbGxEYXRhYmFzZXNDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJjbGVhckJhY2tGb3J3YXJkTGlzdCIsIGNsZWFyQmFja0Zv
cndhcmRMaXN0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiY2xlYXJQZXJzaXN0ZW50VXNl
clN0eWxlU2hlZXQiLCBjbGVhclBlcnNpc3RlbnRVc2VyU3R5bGVTaGVldENhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xs
ZXIuaAppbmRleCA3ZTMwYjk1Li40MThiMGEwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTEyMiw5ICsxMjIsNiBAQCBwdWJs
aWM6CiAgICAgYm9vbCBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gbV9k
dW1wRnJhbWVMb2FkQ2FsbGJhY2tzOyB9CiAgICAgdm9pZCBzZXREdW1wRnJhbWVMb2FkQ2FsbGJh
Y2tzKGJvb2wgZHVtcEZyYW1lTG9hZENhbGxiYWNrcykgeyBtX2R1bXBGcmFtZUxvYWRDYWxsYmFj
a3MgPSBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzOyB9CiAKLSAgICBib29sIGFkZEZpbGVUb1Bhc3Rl
Ym9hcmRPbkRyYWcoKSBjb25zdCB7IHJldHVybiBtX2FkZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWc7
IH0KLSAgICB2b2lkIHNldEFkZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWcoYm9vbCBhZGRGaWxlVG9Q
YXN0ZWJvYXJkT25EcmFnKSB7IG1fYWRkRmlsZVRvUGFzdGVib2FyZE9uRHJhZyA9IGFkZEZpbGVU
b1Bhc3RlYm9hcmRPbkRyYWc7IH0KLQogICAgIGJvb2wgY2FsbENsb3NlT25XZWJWaWV3cygpIGNv
bnN0IHsgcmV0dXJuIG1fY2FsbENsb3NlT25XZWJWaWV3czsgfQogICAgIHZvaWQgc2V0Q2FsbENs
b3NlT25XZWJWaWV3cyhib29sIGNhbGxDbG9zZU9uV2ViVmlld3MpIHsgbV9jYWxsQ2xvc2VPbldl
YlZpZXdzID0gY2FsbENsb3NlT25XZWJWaWV3czsgfQogCkBAIC0xNzcsNyArMTc0LDYgQEAgcHJp
dmF0ZToKICAgICBib29sIG1fZHVtcEVkaXRpbmdDYWxsYmFja3M7CiAgICAgYm9vbCBtX2R1bXBS
ZXNvdXJjZUxvYWRDYWxsYmFja3M7CiAgICAgYm9vbCBtX2R1bXBGcmFtZUxvYWRDYWxsYmFja3M7
Ci0gICAgYm9vbCBtX2FkZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWc7CiAgICAgYm9vbCBtX2NhbGxD
bG9zZU9uV2ViVmlld3M7CiAgICAgYm9vbCBtX2Nhbk9wZW5XaW5kb3dzOwogICAgIGJvb2wgbV9j
bG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGU7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggMTIxMDk3Ni4uN2ZkM2FhMSAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVl
Lm1tCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bQpAQCAtMjYsMTEgKzI2LDEyIEBACiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKICAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KLSAKKwogI2ltcG9ydCAiRHVtcFJlbmRlclRyZWUuaCIKIAogI2ltcG9ydCAiQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuaCIKICNpbXBvcnQgIkNoZWNrZWRNYWxsb2MuaCIKKyNpbXBvcnQgIkR1
bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLmgiCiAjaW1wb3J0ICJEdW1wUmVuZGVyVHJlZVBhc3Rl
Ym9hcmQuaCIKICNpbXBvcnQgIkR1bXBSZW5kZXJUcmVlV2luZG93LmgiCiAjaW1wb3J0ICJFZGl0
aW5nRGVsZWdhdGUuaCIKQEAgLTEwOTEsNiArMTA5Miw4IEBAIHN0YXRpYyB2b2lkIHJ1blRlc3Qo
Y29uc3Qgc3RyaW5nJiB0ZXN0UGF0aE9yVVJMKQogCiAgICAgZ0xheW91dFRlc3RDb250cm9sbGVy
ID0gbmV3IExheW91dFRlc3RDb250cm9sbGVyKHRlc3RVUkwsIGV4cGVjdGVkUGl4ZWxIYXNoKTsK
ICAgICB0b3BMb2FkaW5nRnJhbWUgPSBuaWw7CisgICAgQVNTRVJUKCFkcmFnZ2luZ0luZm8pOyAv
LyB0aGUgcHJldmlvdXMgdGVzdCBzaG91bGQgaGF2ZSBjYWxsZWQgZXZlbnRTZW5kZXIubW91c2VV
cCB0byBkcm9wIQorICAgIHJlbGVhc2VBbmRaZXJvKCZkcmFnZ2luZ0luZm8pOwogICAgIGRvbmUg
PSBOTzsKIAogICAgIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+c2V0SWNvbkRhdGFiYXNlRW5hYmxl
ZChmYWxzZSk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRXZl
bnRTZW5kaW5nQ29udHJvbGxlci5tbSBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9F
dmVudFNlbmRpbmdDb250cm9sbGVyLm1tCmluZGV4IDU4ODMwMjYuLjg5NjE2M2EgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVy
Lm1tCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250
cm9sbGVyLm1tCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbXBvcnQgIkR1bXBSZW5kZXJUcmVlLmgi
CiAjaW1wb3J0ICJEdW1wUmVuZGVyVHJlZURyYWdnaW5nSW5mby5oIgorI2ltcG9ydCAiRHVtcFJl
bmRlclRyZWVGaWxlRHJhZ2dpbmdTb3VyY2UuaCIKIAogI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5o
PiAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciBHZXRDdXJyZW50RXZlbnRUaW1lKCkK
ICNpbXBvcnQgPFdlYktpdC9ET01Qcml2YXRlLmg+CkBAIC0xMTgsMTYgKzExOSwxNyBAQCBCT09M
IHJlcGxheWluZ1NhdmVkRXZlbnRzOwogCiArIChCT09MKWlzU2VsZWN0b3JFeGNsdWRlZEZyb21X
ZWJTY3JpcHQ6KFNFTClhU2VsZWN0b3IKIHsKLSAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3Rv
cihtb3VzZURvd246KQotICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcihtb3Vz
ZVVwOikKKyAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihiZWdpbkRyYWdXaXRoRmlsZXM6
KQorICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihjbGVhcktpbGxSaW5nKQog
ICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcihjb250ZXh0Q2xpY2spCi0gICAg
ICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHNjaGVkdWxlQXN5bmNocm9ub3VzQ2xp
Y2spCi0gICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKG1vdXNlTW92ZVRvWDpZ
OikKLSAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IobGVhcEZvcndhcmQ6KQot
ICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihrZXlEb3duOndpdGhNb2RpZmll
cnM6KQogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihlbmFibGVET01VSUV2
ZW50TG9nZ2luZzopCiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGZpcmVL
ZXlib2FyZEV2ZW50c1RvRWxlbWVudDopCi0gICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNl
bGVjdG9yKGNsZWFyS2lsbFJpbmcpCisgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVj
dG9yKGtleURvd246d2l0aE1vZGlmaWVyczopCisgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0g
QHNlbGVjdG9yKGxlYXBGb3J3YXJkOikKKyAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2Vs
ZWN0b3IobW91c2VEb3duOikKKyAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3Io
bW91c2VNb3ZlVG9YOlk6KQorICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvciht
b3VzZVVwOikKKyAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3Ioc2NoZWR1bGVB
c3luY2hyb25vdXNDbGljaykKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3Io
dGV4dFpvb21JbikKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IodGV4dFpv
b21PdXQpCiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHpvb21QYWdlSW4p
CkBAIC0xNDUsMjAgKzE0NywyMiBAQCBCT09MIHJlcGxheWluZ1NhdmVkRXZlbnRzOwogCiArIChO
U1N0cmluZyAqKXdlYlNjcmlwdE5hbWVGb3JTZWxlY3RvcjooU0VMKWFTZWxlY3RvcgogeworICAg
IGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGJlZ2luRHJhZ1dpdGhGaWxlczopKQorICAgICAg
ICByZXR1cm4gQCJiZWdpbkRyYWdXaXRoRmlsZXMiOworICAgIGlmIChhU2VsZWN0b3IgPT0gQHNl
bGVjdG9yKGVuYWJsZURPTVVJRXZlbnRMb2dnaW5nOikpCisgICAgICAgIHJldHVybiBAImVuYWJs
ZURPTVVJRXZlbnRMb2dnaW5nIjsKKyAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihmaXJl
S2V5Ym9hcmRFdmVudHNUb0VsZW1lbnQ6KSkKKyAgICAgICAgcmV0dXJuIEAiZmlyZUtleWJvYXJk
RXZlbnRzVG9FbGVtZW50IjsKKyAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihrZXlEb3du
OndpdGhNb2RpZmllcnM6KSkKKyAgICAgICAgcmV0dXJuIEAia2V5RG93biI7CisgICAgaWYgKGFT
ZWxlY3RvciA9PSBAc2VsZWN0b3IobGVhcEZvcndhcmQ6KSkKKyAgICAgICAgcmV0dXJuIEAibGVh
cEZvcndhcmQiOwogICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKG1vdXNlRG93bjopKQog
ICAgICAgICByZXR1cm4gQCJtb3VzZURvd24iOwogICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVj
dG9yKG1vdXNlVXA6KSkKICAgICAgICAgcmV0dXJuIEAibW91c2VVcCI7CiAgICAgaWYgKGFTZWxl
Y3RvciA9PSBAc2VsZWN0b3IobW91c2VNb3ZlVG9YOlk6KSkKICAgICAgICAgcmV0dXJuIEAibW91
c2VNb3ZlVG8iOwotICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGxlYXBGb3J3YXJkOikp
Ci0gICAgICAgIHJldHVybiBAImxlYXBGb3J3YXJkIjsKLSAgICBpZiAoYVNlbGVjdG9yID09IEBz
ZWxlY3RvcihrZXlEb3duOndpdGhNb2RpZmllcnM6KSkKLSAgICAgICAgcmV0dXJuIEAia2V5RG93
biI7Ci0gICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoZW5hYmxlRE9NVUlFdmVudExvZ2dp
bmc6KSkKLSAgICAgICAgcmV0dXJuIEAiZW5hYmxlRE9NVUlFdmVudExvZ2dpbmciOwotICAgIGlm
IChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGZpcmVLZXlib2FyZEV2ZW50c1RvRWxlbWVudDopKQot
ICAgICAgICByZXR1cm4gQCJmaXJlS2V5Ym9hcmRFdmVudHNUb0VsZW1lbnQiOwogICAgIGlmIChh
U2VsZWN0b3IgPT0gQHNlbGVjdG9yKHNldERyYWdNb2RlOikpCiAgICAgICAgIHJldHVybiBAInNl
dERyYWdNb2RlIjsKICAgICByZXR1cm4gbmlsOwpAQCAtMjM4LDYgKzI0MiwzMyBAQCBzdGF0aWMg
TlNFdmVudFR5cGUgZXZlbnRUeXBlRm9yTW91c2VCdXR0b25BbmRBY3Rpb24oaW50IGJ1dHRvbiwg
TW91c2VBY3Rpb24gYWN0aQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxOU0V2ZW50VHlwZT4oMCk7
CiB9CiAKKy0gKHZvaWQpYmVnaW5EcmFnV2l0aEZpbGVzOihXZWJTY3JpcHRPYmplY3QqKWpzRmls
ZVBhdGhzCit7CisgICAgYXNzZXJ0KCFkcmFnZ2luZ0luZm8pOworICAgIGFzc2VydChbanNGaWxl
UGF0aHMgaXNLaW5kT2ZDbGFzczpbV2ViU2NyaXB0T2JqZWN0IGNsYXNzXV0pOworCisgICAgTlNQ
YXN0ZWJvYXJkICpwYm9hcmQgPSBbTlNQYXN0ZWJvYXJkIHBhc3RlYm9hcmRXaXRoVW5pcXVlTmFt
ZV07CisgICAgW3Bib2FyZCBkZWNsYXJlVHlwZXM6W05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0Ok5T
RmlsZW5hbWVzUGJvYXJkVHlwZV0gb3duZXI6bmlsXTsKKworICAgIE5TTXV0YWJsZUFycmF5ICpm
aWxlUGF0aHMgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IFtbanNGaWxlUGF0aHMgd2ViU2NyaXB0VmFsdWVBdEluZGV4OmldIGlzS2luZE9mQ2xhc3M6
W05TU3RyaW5nIGNsYXNzXV07IGkrKykgeworICAgICAgICBOU1N0cmluZyAqZmlsZVBhdGggPSAo
TlNTdHJpbmcgKilbanNGaWxlUGF0aHMgd2ViU2NyaXB0VmFsdWVBdEluZGV4OmldOworICAgICAg
ICAvLyBGSVhNRTogV2Ugd2lsbCBuZWVkIHRvIHJlc29sdmUgcGF0aHMgdG8gYWJzb2x1dGUgZm9y
IEZpbGUuZmlsZVNpemUgdG8gd29yayBjb3JyZWN0bHkKKyAgICAgICAgW2ZpbGVQYXRocyBhZGRP
YmplY3Q6ZmlsZVBhdGhdOworICAgIH0KKworICAgIFtwYm9hcmQgc2V0UHJvcGVydHlMaXN0OmZp
bGVQYXRocyBmb3JUeXBlOk5TRmlsZW5hbWVzUGJvYXJkVHlwZV07CisgICAgYXNzZXJ0KFtwYm9h
cmQgcHJvcGVydHlMaXN0Rm9yVHlwZTpOU0ZpbGVuYW1lc1Bib2FyZFR5cGVdKTsgLy8gc2V0UHJv
cGVydHlMaXN0IHdpbGwgc2lsZW50bHkgZmFpbCBvbiBlcnJvciwgYXNzZXJ0IHRoYXQgaXQgZGlk
bid0IGZhaWwKKworICAgIC8vIFdlIHByb3ZpZGUgYSBzb3VyY2UsIG90aGVyd2lzZSBbRHVtcFJl
bmRlclRyZWVEcmFnZ2luZ0luZm8gZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrXSByZXR1cm5z
IE5TRHJhZ09wZXJhdGlvbk5vbmUKKyAgICBEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJj
ZSAqc291cmNlID0gW1tbRHVtcFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdTb3VyY2UgYWxsb2NdIGlu
aXRdIGF1dG9yZWxlYXNlXTsKKyAgICBkcmFnZ2luZ0luZm8gPSBbW0R1bXBSZW5kZXJUcmVlRHJh
Z2dpbmdJbmZvIGFsbG9jXSBpbml0V2l0aEltYWdlOm5pbCBvZmZzZXQ6TlNaZXJvU2l6ZSBwYXN0
ZWJvYXJkOnBib2FyZCBzb3VyY2U6c291cmNlXTsKKyAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBk
cmFnZ2luZ0VudGVyZWQ6ZHJhZ2dpbmdJbmZvXTsKKworICAgIGRyYWdNb2RlID0gTk87IC8vIGRy
YWdNb2RlIHNhdmVzIGV2ZW50cyBhbmQgdGhlbiByZXBsYXlzIHRoZW0gbGF0ZXIuICBXZSBkb24n
dCBuZWVkL3dhbnQgdGhhdC4KKyAgICBsZWZ0TW91c2VCdXR0b25Eb3duID0gWUVTOyAvLyBNYWtl
IHRoZSByZXN0IG9mIGV2ZW50U2VuZGVyIHRoaW5rIGEgZHJhZyBpcyBpbiBwcm9ncmVzcworfQor
CiAtICh2b2lkKXVwZGF0ZUNsaWNrQ291bnRGb3JCdXR0b246KGludClidXR0b25OdW1iZXIKIHsK
ICAgICBpZiAoKFtzZWxmIGN1cnJlbnRFdmVudFRpbWVdIC0gbGFzdENsaWNrID49IDEpIHx8CkBA
IC0zMzksNyArMzcwLDkgQEAgc3RhdGljIE5TRXZlbnRUeXBlIGV2ZW50VHlwZUZvck1vdXNlQnV0
dG9uQW5kQWN0aW9uKGludCBidXR0b24sIE1vdXNlQWN0aW9uIGFjdGkKICAgICAgICAgICAgIFt3
ZWJWaWV3IHBlcmZvcm1EcmFnT3BlcmF0aW9uOmRyYWdnaW5nSW5mb107CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIFt3ZWJWaWV3IGRyYWdnaW5nRXhpdGVkOmRyYWdnaW5nSW5mb107Ci0gICAg
ICAgIFtbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nU291cmNlXSBkcmFnZ2VkSW1hZ2U6W2RyYWdnaW5n
SW5mbyBkcmFnZ2VkSW1hZ2VdIGVuZGVkQXQ6bGFzdE1vdXNlUG9zaXRpb24gb3BlcmF0aW9uOmRy
YWdPcGVyYXRpb25dOworICAgICAgICAvLyBQZXIgTlNEcmFnZ2luZy5oOiBkcmFnZ2luZ1NvdXJj
ZXMgbWF5IG5vdCBpbXBsZW1lbnQgZHJhZ2dlZEltYWdlOmVuZGVkQXQ6b3BlcmF0aW9uOgorICAg
ICAgICBpZiAoW1tkcmFnZ2luZ0luZm8gZHJhZ2dpbmdTb3VyY2VdIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoZHJhZ2dlZEltYWdlOmVuZGVkQXQ6b3BlcmF0aW9uOildKQorICAgICAgICAg
ICAgW1tkcmFnZ2luZ0luZm8gZHJhZ2dpbmdTb3VyY2VdIGRyYWdnZWRJbWFnZTpbZHJhZ2dpbmdJ
bmZvIGRyYWdnZWRJbWFnZV0gZW5kZWRBdDpsYXN0TW91c2VQb3NpdGlvbiBvcGVyYXRpb246ZHJh
Z09wZXJhdGlvbl07CiAgICAgICAgIFtkcmFnZ2luZ0luZm8gcmVsZWFzZV07CiAgICAgICAgIGRy
YWdnaW5nSW5mbyA9IG5pbDsKICAgICB9CkBAIC0zNTUsNyArMzg4LDYgQEAgc3RhdGljIE5TRXZl
bnRUeXBlIGV2ZW50VHlwZUZvck1vdXNlQnV0dG9uQW5kQWN0aW9uKGludCBidXR0b24sIE1vdXNl
QWN0aW9uIGFjdGkKICAgICAgICAgW2ludm9jYXRpb24gc2V0QXJndW1lbnQ6JnkgYXRJbmRleDoz
XTsKICAgICAgICAgCiAgICAgICAgIFtFdmVudFNlbmRpbmdDb250cm9sbGVyIHNhdmVFdmVudDpp
bnZvY2F0aW9uXTsKLSAgICAgICAgCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTM3Niw3
ICs0MDgsOSBAQCBzdGF0aWMgTlNFdmVudFR5cGUgZXZlbnRUeXBlRm9yTW91c2VCdXR0b25BbmRB
Y3Rpb24oaW50IGJ1dHRvbiwgTW91c2VBY3Rpb24gYWN0aQogICAgICAgICBpZiAobGVmdE1vdXNl
QnV0dG9uRG93bikgewogICAgICAgICAgICAgW3N1YlZpZXcgbW91c2VEcmFnZ2VkOmV2ZW50XTsK
ICAgICAgICAgICAgIGlmIChkcmFnZ2luZ0luZm8pIHsKLSAgICAgICAgICAgICAgICBbW2RyYWdn
aW5nSW5mbyBkcmFnZ2luZ1NvdXJjZV0gZHJhZ2dlZEltYWdlOltkcmFnZ2luZ0luZm8gZHJhZ2dl
ZEltYWdlXSBtb3ZlZFRvOmxhc3RNb3VzZVBvc2l0aW9uXTsKKyAgICAgICAgICAgICAgICAvLyBQ
ZXIgTlNEcmFnZ2luZy5oOiBkcmFnZ2luZ1NvdXJjZXMgbWF5IG5vdCBpbXBsZW1lbnQgZHJhZ2dl
ZEltYWdlOm1vdmVkVG86CisgICAgICAgICAgICAgICAgaWYgKFtbZHJhZ2dpbmdJbmZvIGRyYWdn
aW5nU291cmNlXSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGRyYWdnZWRJbWFnZTptb3Zl
ZFRvOildKQorICAgICAgICAgICAgICAgICAgICBbW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ1NvdXJj
ZV0gZHJhZ2dlZEltYWdlOltkcmFnZ2luZ0luZm8gZHJhZ2dlZEltYWdlXSBtb3ZlZFRvOmxhc3RN
b3VzZVBvc2l0aW9uXTsKICAgICAgICAgICAgICAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBkcmFn
Z2luZ1VwZGF0ZWQ6ZHJhZ2dpbmdJbmZvXTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNl
CkBAIC00NzYsNyArNTEwLDcgQEAgc3RhdGljIE5TRXZlbnRUeXBlIGV2ZW50VHlwZUZvck1vdXNl
QnV0dG9uQW5kQWN0aW9uKGludCBidXR0b24sIE1vdXNlQWN0aW9uIGFjdGkKICAgICAgICAgY2hh
cmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzID0gW2NoYXJhY3RlciBsb3dlcmNhc2VTdHJpbmddOwog
ICAgIH0KIAotICAgIGlmIChbbW9kaWZpZXJzIGlzS2luZE9mQ2xhc3M6W1dlYlNjcmlwdE9iamVj
dCBjbGFzc11dKQorICAgIGlmIChbbW9kaWZpZXJzIGlzS2luZE9mQ2xhc3M6W1dlYlNjcmlwdE9i
amVjdCBjbGFzc11dKSB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IFtbbW9kaWZpZXJz
IHdlYlNjcmlwdFZhbHVlQXRJbmRleDppXSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11d
OyBpKyspIHsKICAgICAgICAgICAgIE5TU3RyaW5nICptb2RpZmllciA9IChOU1N0cmluZyAqKVtt
b2RpZmllcnMgd2ViU2NyaXB0VmFsdWVBdEluZGV4OmldOwogICAgICAgICAgICAgaWYgKFttb2Rp
ZmllciBpc0VxdWFsOkAiY3RybEtleSJdKQpAQCAtNDg4LDYgKzUyMiw3IEBAIHN0YXRpYyBOU0V2
ZW50VHlwZSBldmVudFR5cGVGb3JNb3VzZUJ1dHRvbkFuZEFjdGlvbihpbnQgYnV0dG9uLCBNb3Vz
ZUFjdGlvbiBhY3RpCiAgICAgICAgICAgICBlbHNlIGlmIChbbW9kaWZpZXIgaXNFcXVhbDpAIm1l
dGFLZXkiXSkKICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQ29tbWFuZEtleU1h
c2s7CiAgICAgICAgIH0KKyAgICB9CiAKICAgICBbW1ttYWluRnJhbWUgZnJhbWVWaWV3XSBkb2N1
bWVudFZpZXddIGxheW91dF07CiAKQEAgLTYxNyw5ICs2NTIsOCBAQCBzdGF0aWMgTlNFdmVudFR5
cGUgZXZlbnRUeXBlRm9yTW91c2VCdXR0b25BbmRBY3Rpb24oaW50IGJ1dHRvbiwgTW91c2VBY3Rp
b24gYWN0aQogLy8gdG8gd29yayB3ZWxsIGVub3VnaCB0aGF0IHdlIGNhbiB0ZXN0IHRoYXQgd2F5
IGluc3RlYWQuCiAtICh2b2lkKWZpcmVLZXlib2FyZEV2ZW50c1RvRWxlbWVudDooV2ViU2NyaXB0
T2JqZWN0ICopZWxlbWVudCB7CiAgICAgCi0gICAgaWYgKCFbZWxlbWVudCBpc0tpbmRPZkNsYXNz
OltET01IVE1MRWxlbWVudCBjbGFzc11dKSB7CisgICAgaWYgKCFbZWxlbWVudCBpc0tpbmRPZkNs
YXNzOltET01IVE1MRWxlbWVudCBjbGFzc11dKQogICAgICAgICByZXR1cm47Ci0gICAgfQogICAg
IAogICAgIERPTUhUTUxFbGVtZW50ICp0YXJnZXQgPSAoRE9NSFRNTEVsZW1lbnQqKWVsZW1lbnQ7
CiAgICAgRE9NRG9jdW1lbnQgKmRvY3VtZW50ID0gW3RhcmdldCBvd25lckRvY3VtZW50XTsKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1tIGIv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KaW5kZXggMWY4Mjg5
Mi4uNjZhYWRmOSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJ
RGVsZWdhdGUubW0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdh
dGUubW0KQEAgLTk1LDEwICs5NSw2IEBAIER1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvICpkcmFn
Z2luZ0luZm8gPSBuaWw7CiAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5kZXIgZHJhZ0lt
YWdlOihOU0ltYWdlICopYW5JbWFnZSBhdDooTlNQb2ludCl2aWV3TG9jYXRpb24gb2Zmc2V0OihO
U1NpemUpaW5pdGlhbE9mZnNldCBldmVudDooTlNFdmVudCAqKWV2ZW50IHBhc3RlYm9hcmQ6KE5T
UGFzdGVib2FyZCAqKXBib2FyZCBzb3VyY2U6KGlkKXNvdXJjZU9iaiBzbGlkZUJhY2s6KEJPT0wp
c2xpZGVGbGFnIGZvclZpZXc6KE5TVmlldyAqKXZpZXcKIHsKICAgICAgYXNzZXJ0KCFkcmFnZ2lu
Z0luZm8pOwotICAgICBpZiAoZ0xheW91dFRlc3RDb250cm9sbGVyLT5hZGRGaWxlVG9QYXN0ZWJv
YXJkT25EcmFnKCkpIHsKLSAgICAgICAgIFtwYm9hcmQgZGVjbGFyZVR5cGVzOltOU0FycmF5IGFy
cmF5V2l0aE9iamVjdDpOU0ZpbGVuYW1lc1Bib2FyZFR5cGVdIG93bmVyOm5pbF07Ci0gICAgICAg
ICBbcGJvYXJkIHNldFByb3BlcnR5TGlzdDpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6QCJEUlRG
YWtlRmlsZSJdIGZvclR5cGU6TlNGaWxlbmFtZXNQYm9hcmRUeXBlXTsKLSAgICAgfQogICAgICBk
cmFnZ2luZ0luZm8gPSBbW0R1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvIGFsbG9jXSBpbml0V2l0
aEltYWdlOmFuSW1hZ2Ugb2Zmc2V0OmluaXRpYWxPZmZzZXQgcGFzdGVib2FyZDpwYm9hcmQgc291
cmNlOnNvdXJjZU9ial07CiAgICAgIFtzZW5kZXIgZHJhZ2dpbmdVcGRhdGVkOmRyYWdnaW5nSW5m
b107CiAgICAgIFtFdmVudFNlbmRpbmdDb250cm9sbGVyIHJlcGxheVNhdmVkRXZlbnRzXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30487</attachid>
            <date>2009-05-19 17:37:27 -0700</date>
            <delta_ts>2009-05-19 18:50:40 -0700</delta_ts>
            <desc>Remove layoutTestController.addFileToPasteboardOnDrag and add eventSender.beginDragWithFiles</desc>
            <filename>Remove-layoutTestController.addFileToPasteboardOnDrag-and-add-eventSender.beginDragWithFiles.patch</filename>
            <type>text/plain</type>
            <size>43320</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">YjdiNWFmMWU3ZDcxYTJiYWQ2OTg4ZDAwYzcxNTEzMjc2MDE3MDA1NwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVlZjVlNTku
LmIyNTc3MzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAwOS0wNS0xOCAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVtb3ZlIGxheW91dFRlc3RDb250cm9sbGVyLmFkZEZpbGVUb1Bhc3RlYm9h
cmRPbkRyYWcgYW5kIGFkZCBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1ODUyCisKKyAgICAgICAg
QWRkIG5ldyB0ZXN0cyBmb3IgbXVsdGktZmlsZSBkcmFnZ2luZzoKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1ODYyCisKKyAgICAgICAgSSd2ZSByZW1v
dmVkIHRoZSBvbGQgdGVzdHMgaW4gZmFzdC9mb3JtcyB3aGljaCB1c2VkIGxheW91dFRlc3RDb250
cm9sbGVyLmFkZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWcKKyAgICAgICAgYW5kIGhhdmUgYWRkZWQg
YSBuZXcgdGVzdCBpbiBlZGl0aW5nL3Bhc3RlYm9hcmQvICh3aGVyZSBhbGwgdGhlIG90aGVyIGRy
YWctZHJvcCB0ZXN0cyBhcmUpCisgICAgICAgIHdoaWNoIHRlc3RzIG1vcmUgdGhhbiB0aGUgcHJl
dmlvdXMgdHdvIHRlc3RzIGRpZC4KKworICAgICAgICBNYWMgd2FzIHRoZSBvbmx5IHBsYXRmb3Jt
IHJ1bm5pbmcgdGhlIG9sZCBsYXlvdXRUZXN0Q29udHJvbGxlci5hZGRGaWxlVG9QYXN0ZWJvYXJk
T25EcmFnIHRlc3RzCisgICAgICAgIEkndmUgdXBkYXRlZCBhbGwgdGhlIFNraXBwZWQgZmlsZXMg
dG8gc2tpcCB0aGlzIG5ldyB0ZXN0IGluc3RlYWQuCisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3Rl
Ym9hcmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3Jlc291cmNlcy9GaWxlIFdpdGggU3Bh
Y2VzISBGb3IgRHJhZ2dpbmc/LmdpZjogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvcmVzb3VyY2VzL2FwcGxlLmdpZi4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvcmVz
b3VyY2VzL2FwcGxlLmdpZjogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvcmVz
b3VyY2VzL2FwcGxlLmdpZi4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvcmVzb3VyY2Vz
L2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmpzOiBBZGRlZC4KKyAgICAgICAgKG1vdmVNb3VzZVRv
Q2VudGVyT2ZFbGVtZW50KToKKyAgICAgICAgKGRyYWdGaWxlc09udG9JbnB1dCk6CisgICAgICAg
IChmaWxlTGlzdFNob3VsZEJlKToKKyAgICAgICAgKGZpbGVzU2hvdWxkQmUpOgorICAgICAgICAo
ZHJhZ2dpbmdQYXRoc1Nob3VsZFJlc3VsdEluRmlsZXMpOgorICAgICAgICAocnVuVGVzdCk6Cisg
ICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3Jlc291cmNlcy9tb3ppbGxhLmdpZjogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL21vemlsbGEuZ2lmLgorICAgICAg
ICAqIGZhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZGlzYWJsZWQtZmlsZS1pbnB1dC1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9kcmFnZ2luZy10by1kaXNhYmxlZC1m
aWxlLWlucHV0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9kcmFnZ2luZy10
by1maWxlLWlucHV0LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1z
L2RyYWdnaW5nLXRvLWZpbGUtaW5wdXQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorICAgICAgICAq
IHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorCiAyMDA5LTA1LTE4ICBEYXZpZCBLaWx6ZXIgIDxkZGtp
bHplckBhcHBsZS5jb20+CiAKICAgICAgICAgQnVnIDIwNjUyOiBXZWJLaXQgZG9lc24ndCBkaXNw
bGF5IGZhdmljb25zIHdpdGggTUlNRSB0eXBlIGltYWdlL3ZuZC5taWNyb3NvZnQuaWNvbgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMt
YWNjZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9maWxl
LWlucHV0LWZpbGVzLWFjY2Vzcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZmJjOGUzZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvcGFzdGVib2FyZC9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0MyBAQAorZm9vCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitEcmFnZ2lu
ZyBhIHNpbmdsZSAobm9uLWV4aXN0YW50KSBmaWxlIHRvIGEgZmlsZSBpbnB1dCBjb250cm9sOgor
UEFTUyBmaWxlSW5wdXQudmFsdWUgaXMgIkRSVEZha2VGaWxlIgorUEFTUyBmaWxlSW5wdXQuZmls
ZXMubGVuZ3RoIGlzIDEKK1BBU1MgZmlsZUlucHV0LmZpbGVzWzBdLmZpbGVOYW1lIGlzICJEUlRG
YWtlRmlsZSIKK1BBU1MgZmlsZUlucHV0LmZpbGVzWzBdLmZpbGVTaXplIGlzIDAKK0RyYWdnaW5n
IHRvIGEgZGlzYWJsZWQgZmlsZSBpbnB1dCBjb250cm9sOgorUEFTUyBmaWxlSW5wdXQudmFsdWUg
aXMgIiIKK1BBU1MgZmlsZUlucHV0LmZpbGVzLmxlbmd0aCBpcyAwCitEcmFnZ2luZyBhIHJlYWwg
ZmlsZSB0byBhIGZpbGUgaW5wdXQgY29udHJvbDoKK1BBU1MgZmlsZUlucHV0LnZhbHVlIGlzICJh
cHBsZS5naWYiCitQQVNTIGZpbGVJbnB1dC5maWxlcy5sZW5ndGggaXMgMQorUEFTUyBmaWxlSW5w
dXQuZmlsZXNbMF0uZmlsZU5hbWUgaXMgImFwcGxlLmdpZiIKK1BBU1MgZmlsZUlucHV0LmZpbGVz
WzBdLmZpbGVTaXplIGlzIDE0NzYKK0RyYWdnaW5nIHR3byBmaWxlcyB0byBhIGZpbGUgaW5wdXQg
Y29udHJvbDoKK1BBU1MgZmlsZUlucHV0LnZhbHVlIGlzICJhcHBsZS5naWYiCitGQUlMIGZpbGVJ
bnB1dC5maWxlcy5sZW5ndGggc2hvdWxkIGJlIDIuIFdhcyAxLgorUEFTUyBmaWxlSW5wdXQuZmls
ZXNbMF0uZmlsZU5hbWUgaXMgImFwcGxlLmdpZiIKK1BBU1MgZmlsZUlucHV0LmZpbGVzWzBdLmZp
bGVTaXplIGlzIDE0NzYKK0ZBSUwgZmlsZUlucHV0LmZpbGVzWzFdLmZpbGVOYW1lIHNob3VsZCBi
ZSBtb3ppbGxhLmdpZi4gVGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUmVzdWx0IG9mIGV4cHJl
c3Npb24gJ2ZpbGVJbnB1dC5maWxlc1sxXScgW3VuZGVmaW5lZF0gaXMgbm90IGFuIG9iamVjdC4K
K0ZBSUwgZmlsZUlucHV0LmZpbGVzWzFdLmZpbGVTaXplIHNob3VsZCBiZSAyNTkzLiBUaHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBSZXN1bHQgb2YgZXhwcmVzc2lvbiAnZmlsZUlucHV0LmZpbGVz
WzFdJyBbdW5kZWZpbmVkXSBpcyBub3QgYW4gb2JqZWN0LgorRHJhZ2dpbmcgYSBmaWxlIHdpdGgg
VVJMIGVuY29kZWQgY2hhcmFjdGVycyB0byBhIGZpbGUgaW5wdXQgY29udHJvbDoKK1BBU1MgZmls
ZUlucHV0LnZhbHVlIGlzICJGaWxlIFdpdGggU3BhY2VzISBGb3IgRHJhZ2dpbmc/LmdpZiIKK1BB
U1MgZmlsZUlucHV0LmZpbGVzLmxlbmd0aCBpcyAxCitQQVNTIGZpbGVJbnB1dC5maWxlc1swXS5m
aWxlTmFtZSBpcyAiRmlsZSBXaXRoIFNwYWNlcyEgRm9yIERyYWdnaW5nPy5naWYiCitQQVNTIGZp
bGVJbnB1dC5maWxlc1swXS5maWxlU2l6ZSBpcyAxNDc2CitEcmFnZ2luZyBhIGRpcmVjdG9yeSBv
bnRvIGFuIGZpbGUgaW5wdXQgY29udHJvbDoKK0ZBSUwgZmlsZUlucHV0LnZhbHVlIHNob3VsZCBi
ZSAuIFdhcyBkaXJlY3RvcnktZm9yLWRyYWdnaW5nLgorRkFJTCBmaWxlSW5wdXQuZmlsZXMubGVu
Z3RoIHNob3VsZCBiZSAwLiBXYXMgMS4KK0RyYWdnaW5nIGEgZmlsZSBhbmQgYSBkaXJlY3Rvcnkg
b250byBhbiBmaWxlIGlucHV0IGNvbnRyb2w6CitGQUlMIGZpbGVJbnB1dC52YWx1ZSBzaG91bGQg
YmUgLiBXYXMgYXBwbGUuZ2lmLgorRkFJTCBmaWxlSW5wdXQuZmlsZXMubGVuZ3RoIHNob3VsZCBi
ZSAwLiBXYXMgMS4KK0RyYWdnaW5nIGEgZGlyZWN0b3J5IGFuZCBhIGZpbGUgb250byBhbiBmaWxl
IGlucHV0IGNvbnRyb2w6CitGQUlMIGZpbGVJbnB1dC52YWx1ZSBzaG91bGQgYmUgLiBXYXMgZGly
ZWN0b3J5LWZvci1kcmFnZ2luZy4KK0ZBSUwgZmlsZUlucHV0LmZpbGVzLmxlbmd0aCBzaG91bGQg
YmUgMC4gV2FzIDEuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUt
aW5wdXQtZmlsZXMtYWNjZXNzLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQv
ZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5iODYwM2NmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9w
YXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmh0bWwKQEAgLTAsMCArMSwxMyBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvcmVzb3VyY2VzL0ZpbGUgV2l0aCBTcGFjZXMhIEZvciBEcmFnZ2luZz8uZ2lmIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Jlc291cmNlcy9GaWxlIFdpdGggU3BhY2VzISBGb3Ig
RHJhZ2dpbmc/LmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTg0NGM4
CkJpbmFyeSBmaWxlcyAvZGV2L251bGwgYW5kIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJv
YXJkL3Jlc291cmNlcy9GaWxlIFdpdGggU3BhY2VzISBGb3IgRHJhZ2dpbmc/LmdpZiBkaWZmZXIK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9yZXNvdXJjZXMvYXBw
bGUuZ2lmIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Jlc291cmNlcy9hcHBsZS5n
aWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTU4NDRjOApCaW5hcnkgZmls
ZXMgL2Rldi9udWxsIGFuZCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9yZXNvdXJj
ZXMvYXBwbGUuZ2lmIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL3Jlc291cmNlcy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5qcyBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvcGFzdGVib2FyZC9yZXNvdXJjZXMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGIyNTY5YwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9yZXNvdXJjZXMvZmlsZS1pbnB1
dC1maWxlcy1hY2Nlc3MuanMKQEAgLTAsMCArMSwxMDIgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0cyBm
b3IgbXVsdGktZmlsZSBkcmFnIG9udG8gZmlsZSBpbnB1dCBlbGVtZW50cyBmb3IgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1ODYyIik7CisKK3ZhciBmaWxlSW5wdXQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOworZmlsZUlucHV0LnR5cGUgPSAnZmls
ZSc7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZpbGVJbnB1dCk7CisKK2Z1bmN0aW9uIG1v
dmVNb3VzZVRvQ2VudGVyT2ZFbGVtZW50KGVsZW1lbnQpCit7CisgICAgdmFyIGNlbnRlclggPSBm
aWxlSW5wdXQub2Zmc2V0TGVmdCArIGZpbGVJbnB1dC5vZmZzZXRXaWR0aCAvIDI7CisgICAgdmFy
IGNlbnRlclkgPSBmaWxlSW5wdXQub2Zmc2V0VG9wICsgZmlsZUlucHV0Lm9mZnNldEhlaWdodCAv
IDI7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY2VudGVyWCwgY2VudGVyWSk7Cit9CisK
K2Z1bmN0aW9uIGRyYWdGaWxlc09udG9JbnB1dChmaWxlcykgeworICAgIGZpbGVJbnB1dC52YWx1
ZSA9ICIiOyAvLyBDbGVhciB0aGUgPGlucHV0PgorCisgICAgZXZlbnRTZW5kZXIuYmVnaW5EcmFn
V2l0aEZpbGVzKGZpbGVzKTsKKyAgICBtb3ZlTW91c2VUb0NlbnRlck9mRWxlbWVudChmaWxlSW5w
dXQpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rpb24gZmlsZUxpc3RT
aG91bGRCZShmaWxlTGlzdFN0cmluZywgZmlsZXNBcnJheSkKK3sKKyAgICBzaG91bGRCZShmaWxl
TGlzdFN0cmluZyArICIubGVuZ3RoIiwgIiIgKyBmaWxlc0FycmF5Lmxlbmd0aCk7CisgICAgZm9y
ICh2YXIgeCA9IDA7IHggPCBmaWxlc0FycmF5Lmxlbmd0aDsgeCsrKSB7CisgICAgICAgIHZhciBm
aWxlVmFsdWVTdHJpbmcgPSBmaWxlTGlzdFN0cmluZyArICJbIiArIHggKyAiXSI7CisgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZyhmaWxlVmFsdWVTdHJpbmcgKyAiLmZpbGVOYW1lIiwgZmls
ZXNBcnJheVt4XVsnbmFtZSddKTsKKyAgICAgICAgc2hvdWxkQmUoZmlsZVZhbHVlU3RyaW5nICsg
Ii5maWxlU2l6ZSIsICIiICsgZmlsZXNBcnJheVt4XVsnc2l6ZSddKTsKKyAgICB9Cit9CisKK2Z1
bmN0aW9uIGZpbGVzU2hvdWxkQmUoZmlsZXNBcnJheSkKK3sKKyAgICBmaWxlTGlzdFNob3VsZEJl
KCJmaWxlSW5wdXQuZmlsZXMiLCBmaWxlc0FycmF5KTsKK30KKworZnVuY3Rpb24gZHJhZ2dpbmdQ
YXRoc1Nob3VsZFJlc3VsdEluRmlsZXMocGF0aHNBcnJheSwgZmlsZXNBcnJheSkKK3sKKyAgICBk
cmFnRmlsZXNPbnRvSW5wdXQocGF0aHNBcnJheSk7CisgICAgLy8gV2ViS2l0IHNlZW1zIHRvIGFs
d2F5cyB0YWtlIHRoZSBmaXJzdCBmaWxlIGluIHRoZSBkcmFnZ2VkIGxpc3QgYXMgLnZhbHVlOgor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsZUlucHV0LnZhbHVlIiwgZmlsZXNBcnJheVsw
XSA/IGZpbGVzQXJyYXlbMF1bJ25hbWUnXSA6ICcnKTsKKyAgICBmaWxlc1Nob3VsZEJlKGZpbGVz
QXJyYXkpOworfQorCitmdW5jdGlvbiB0ZXN0RHJhZ2dpbmdGaWxlcyhmaWxlc0FycmF5KQorewor
ICAgIC8vIFdlIGNvdWxkIG1ha2UgYSB3YXkgdG8gcGFyc2UgdGhlIGZpbGVuYW1lIGZyb20gdGhl
IHBhdGgsIGFuZCB0aGVuIG9ubHkgbmVlZCB0byBwYXNzCisgICAgLy8gdGhlIHBhdGggaW4gdGhl
IGZpbGVzQXJyYXkuCisgICAgdmFyIHBhdGhzT25seSA9IGZpbGVzQXJyYXkubWFwKGZ1bmN0aW9u
KGZpbGVTcGVjKSB7IHJldHVybiBmaWxlU3BlY1sncGF0aCddOyB9KTsKKyAgICBkcmFnZ2luZ1Bh
dGhzU2hvdWxkUmVzdWx0SW5GaWxlcyhwYXRoc09ubHksIGZpbGVzQXJyYXkpOworfQorCitmdW5j
dGlvbiBydW5UZXN0KCkKK3sKKyAgICBkZWJ1ZygiRHJhZ2dpbmcgdG8gYSBkaXNhYmxlZCBmaWxl
IGlucHV0IGNvbnRyb2w6IikKKyAgICBmaWxlSW5wdXQuZGlzYWJsZWQgPSB0cnVlOworICAgIGRy
YWdnaW5nUGF0aHNTaG91bGRSZXN1bHRJbkZpbGVzKFsnRFJURmFrZUZpbGUnXSwgW10pCisgICAg
ZmlsZUlucHV0LmRpc2FibGVkID0gZmFsc2U7CisKKyAgICBkZWJ1ZygiRHJhZ2dpbmcgYSBzaW5n
bGUgKG5vbi1leGlzdGFudCkgZmlsZSB0byBhIGZpbGUgaW5wdXQgY29udHJvbDoiKQorICAgIHRl
c3REcmFnZ2luZ0ZpbGVzKFsKKyAgICAgICAgeyAncGF0aCc6ICdEUlRGYWtlRmlsZScsICduYW1l
JyA6ICdEUlRGYWtlRmlsZScsICdzaXplJyA6IDAgfQorICAgIF0pOworCisgICAgZGVidWcoIkRy
YWdnaW5nIGEgcmVhbCBmaWxlIHRvIGEgZmlsZSBpbnB1dCBjb250cm9sOiIpCisgICAgdGVzdERy
YWdnaW5nRmlsZXMoWworICAgICAgICB7ICdwYXRoJzogJ3Jlc291cmNlcy9hcHBsZS5naWYnLCAn
bmFtZScgOiAnYXBwbGUuZ2lmJywgJ3NpemUnIDogMTQ3NiB9CisgICAgXSk7CisKKyAgICBkZWJ1
ZygiRHJhZ2dpbmcgdHdvIGZpbGVzIHRvIGEgZmlsZSBpbnB1dCBjb250cm9sOiIpCisgICAgdGVz
dERyYWdnaW5nRmlsZXMoWworICAgICAgICB7ICdwYXRoJzogJ3Jlc291cmNlcy9hcHBsZS5naWYn
LCAnbmFtZScgOiAnYXBwbGUuZ2lmJywgJ3NpemUnIDogMTQ3NiB9LAorICAgICAgICB7ICdwYXRo
JzogJ3Jlc291cmNlcy9tb3ppbGxhLmdpZicsICduYW1lJyA6ICdtb3ppbGxhLmdpZicsICdzaXpl
JyA6IDI1OTMgfQorICAgIF0pOworCisgICAgZGVidWcoIkRyYWdnaW5nIGEgZmlsZSB3aXRoIFVS
TCBlbmNvZGVkIGNoYXJhY3RlcnMgdG8gYSBmaWxlIGlucHV0IGNvbnRyb2w6IikKKyAgICB0ZXN0
RHJhZ2dpbmdGaWxlcyhbCisgICAgICAgIHsgJ3BhdGgnOiAncmVzb3VyY2VzL0ZpbGUgV2l0aCBT
cGFjZXMhIEZvciBEcmFnZ2luZz8uZ2lmJywgJ25hbWUnIDogJ0ZpbGUgV2l0aCBTcGFjZXMhIEZv
ciBEcmFnZ2luZz8uZ2lmJywgJ3NpemUnIDogMTQ3NiB9CisgICAgXSk7CisKKyAgICBkZWJ1Zygi
RHJhZ2dpbmcgYSBkaXJlY3Rvcnkgb250byBhbiBmaWxlIGlucHV0IGNvbnRyb2w6IikKKyAgICBk
cmFnZ2luZ1BhdGhzU2hvdWxkUmVzdWx0SW5GaWxlcyhbJ3Jlc291cmNlcy9kaXJlY3RvcnktZm9y
LWRyYWdnaW5nJ10sIFtdKTsKKworICAgIC8vIE5vdGU6IFRoZSBvcmRlciBvZiBzZWxlY3Rpb24g
aW4gdGhlIEZpbmRlciBjaGFuZ2VzIHRoZSBvcmRlciBvZiBmaWxlIHBhdGhzIGluIHRoZSBwYXN0
ZWJvYXJkCisgICAgLy8gdGh1cyBpdCdzIGltcG9ydGFudCB0aGF0IHdlIHRlc3QgZGlmZmVyZW50
IG9yZGVycyBoZXJlIGFzIHdlbGwgKGF0IGxlYXN0IG9uIHRoZSBNYWMpOgorICAgIGRlYnVnKCJE
cmFnZ2luZyBhIGZpbGUgYW5kIGEgZGlyZWN0b3J5IG9udG8gYW4gZmlsZSBpbnB1dCBjb250cm9s
OiIpCisgICAgZHJhZ2dpbmdQYXRoc1Nob3VsZFJlc3VsdEluRmlsZXMoWydyZXNvdXJjZXMvYXBw
bGUuZ2lmJywgJ3Jlc291cmNlcy9kaXJlY3RvcnktZm9yLWRyYWdnaW5nJ10sIFtdKTsKKworICAg
IGRlYnVnKCJEcmFnZ2luZyBhIGRpcmVjdG9yeSBhbmQgYSBmaWxlIG9udG8gYW4gZmlsZSBpbnB1
dCBjb250cm9sOiIpCisgICAgZHJhZ2dpbmdQYXRoc1Nob3VsZFJlc3VsdEluRmlsZXMoWydyZXNv
dXJjZXMvZGlyZWN0b3J5LWZvci1kcmFnZ2luZycsICdyZXNvdXJjZXMvYXBwbGUuZ2lmJ10sIFtd
KTsKK30KKworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIHJ1blRlc3QoKTsKKyAgICAv
LyBDbGVhbiB1cCBhZnRlciBvdXJzZWx2ZXMKKyAgICBmaWxlSW5wdXQucGFyZW50Tm9kZS5yZW1v
dmVDaGlsZChmaWxlSW5wdXQpOworfSBlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKCJUaGlzIHRlc3Qg
aXMgbm90IGludGVyYWN0aXZlLCBwbGVhc2UgcnVuIHVzaW5nIER1bXBSZW5kZXJUcmVlIik7Cit9
CisKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcmVzb3VyY2VzL21vemlsbGEuZ2lmIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Jlc291cmNlcy9tb3ppbGxhLmdpZgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDliMzBlCkJpbmFyeSBmaWxlcyAvZGV2L251bGwgYW5k
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Jlc291cmNlcy9tb3ppbGxhLmdpZiBk
aWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZGlz
YWJsZWQtZmlsZS1pbnB1dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Ry
YWdnaW5nLXRvLWRpc2FibGVkLWZpbGUtaW5wdXQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA1MjhiZTJjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvZHJhZ2dpbmctdG8tZGlzYWJsZWQtZmlsZS1pbnB1dC1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLVRoaXMgdGVzdHMgdGhhdCB5b3UgY2FuJ3QgZHJhZyBh
IGZpbGUgb250byBhIGRpc2FibGVkIDxpbnB1dCB0eXBlPSJmaWxlIj4KLQotVG8gdGVzdCBtYW51
YWxseSB5b3UgbmVlZCB0byBhdHRlbXB0IHRvIGRyYWcgYSBmaWxlIG9udG8gdGhlIGZpbGUgaW5w
dXQgYmVsb3cKLQotCi0KLVBBU1M6IENvdWxkIG5vdCBkcm9wIGZpbGUgb24gdG8gdGhlIGRpc2Fi
bGVkIGZpbGUgaW5wdXQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kcmFn
Z2luZy10by1kaXNhYmxlZC1maWxlLWlucHV0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2RyYWdnaW5nLXRvLWRpc2FibGVkLWZpbGUtaW5wdXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggODcyZDA4OS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2RyYWdnaW5nLXRvLWRpc2FibGVkLWZpbGUtaW5wdXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDUwICswLDAgQEAKLTxwPlRoaXMgdGVzdHMgdGhhdCB5b3UgY2FuJ3QgZHJhZyBhIGZpbGUgb250
byBhIGRpc2FibGVkICZsdDtpbnB1dCB0eXBlPSJmaWxlIiZndDs8L3A+Ci08cD5UbyB0ZXN0IG1h
bnVhbGx5IHlvdSBuZWVkIHRvIGF0dGVtcHQgdG8gZHJhZyBhIGZpbGUgb250byB0aGUgZmlsZSBp
bnB1dCBiZWxvdzwvcD4KLTxpbnB1dCBpZD0idGFyZ2V0IiB0eXBlPSJmaWxlIiBkaXNhYmxlZC8+
PGJyIC8+Ci08aW5wdXQgaWQ9ImRyYWdTdGFydCIgdHlwZT0idGV4dCIgdmFsdWU9IlRoaXMgaW5w
dXQgZmllbGQgaXMgb25seSBwcmVzZW50IHRvIGFsbG93IERSVCB0byBpbml0aWF0ZSBhIGRyYWci
PjwvaW5wdXQ+PGJyIC8+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLQotCi08c2NyaXB0Pgot
ICAgIGZ1bmN0aW9uIGRlYnVnKHN0cikgewotICAgICAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdjb25zb2xlJykKLSAgICAgICAgYy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZShzdHIgKyAnXG4nKSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gcnVuVGVzdCgp
IHsKLSAgICAgICAgdmFyIGRyYWdTdGFydCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkcmFn
U3RhcnQiKTsKLSAgICAgICAgdmFyIHggPSBkcmFnU3RhcnQub2Zmc2V0TGVmdCArIGRyYWdTdGFy
dC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZhciB5ID0gZHJhZ1N0YXJ0Lm9mZnNldFRvcCAr
IGRyYWdTdGFydC5vZmZzZXRIZWlnaHQgLyAyOwotCi0gICAgICAgIHZhciB0YXJnZXQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7Ci0gICAgICAgIHZhciB0eCA9IHRhcmdldC5v
ZmZzZXRMZWZ0ICsgdGFyZ2V0Lm9mZnNldFdpZHRoIC8gMjsKLSAgICAgICAgdmFyIHR5ID0gdGFy
Z2V0Lm9mZnNldFRvcCArIHRhcmdldC5vZmZzZXRIZWlnaHQgLyAyOwotICAgICAgICAKLSAgICAg
ICAgZHJhZ1N0YXJ0LnNlbGVjdCgpOwotCi0gICAgICAgIHZhciBpbml0aWFsVmFsdWUgPSB0YXJn
ZXQudmFsdWU7Ci0gICAgICAgIAotICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5
KTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgICAgIGV2ZW50U2VuZGVy
LmxlYXBGb3J3YXJkKDQwMCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHR4LCB0
eSk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsgICAgICAgCi0gICAgICAgICAKLSAg
ICAgICAgdmFyIGZpbmFsVmFsdWUgPSB0YXJnZXQudmFsdWU7Ci0gICAgICAgIGlmIChpbml0aWFs
VmFsdWUgPT0gZmluYWxWYWx1ZSkKLSAgICAgICAgICAgIGRlYnVnKCJQQVNTOiBDb3VsZCBub3Qg
ZHJvcCBmaWxlIG9uIHRvIHRoZSBkaXNhYmxlZCBmaWxlIGlucHV0Iik7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgIGRlYnVnKCJGQUlMOiBEcm9wcGVkIGZpbGUgb24gdG8gZGlzYWJsZWQgZmls
ZSBpbnB1dCIpOwotICAgIH0KLQotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkRmlsZVRvUGFzdGVib2FyZE9uRHJh
ZygpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAg
IHJ1blRlc3QoKTsKLSAgICB9Ci0gICAgCi0gICAgLy8gcmVtb3ZlIGRyYWcgc291cmNlCi0gICAg
dmFyIGRyYWdTdGFydCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkcmFnU3RhcnQiKTsKLSAg
ICBkcmFnU3RhcnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChkcmFnU3RhcnQpOwotICAgIAotPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RyYWdnaW5nLXRvLWZp
bGUtaW5wdXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kcmFnZ2luZy10
by1maWxlLWlucHV0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YmU5MTA3MS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RyYWdnaW5nLXRv
LWZpbGUtaW5wdXQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1U
aGlzIHRlc3RzIHRoZSBhYmlsaXR5IHRvIGRyYWcgYSBmaWxlIG9udG8gPGlucHV0IHR5cGU9ImZp
bGUiPgotCi1UbyB0ZXN0IG1hbnVhbGx5IHlvdSBuZWVkIHRvIGF0dGVtcHQgdG8gZHJhZyBhIGZp
bGUgb250byB0aGUgZmlsZSBpbnB1dCBiZWxvdwotCi0KLQotUEFTUzogU3VjY2Vzc2Z1bGx5IGRy
b3BwZWQgZmlsZSBvbiB0byBmaWxlIGlucHV0Ci1QQVNTOiBGaW5pc2hlZCB0ZXN0Ci0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZmlsZS1pbnB1dC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kcmFnZ2luZy10by1maWxlLWlucHV0Lmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA4ZDJjZDcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9kcmFnZ2luZy10by1maWxlLWlucHV0Lmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw1MiArMCwwIEBACi08cD5UaGlzIHRlc3RzIHRoZSBhYmlsaXR5IHRvIGRyYWcgYSBm
aWxlIG9udG8gJmx0O2lucHV0IHR5cGU9ImZpbGUiJmd0OzwvcD4KLTxwPlRvIHRlc3QgbWFudWFs
bHkgeW91IG5lZWQgdG8gYXR0ZW1wdCB0byBkcmFnIGEgZmlsZSBvbnRvIHRoZSBmaWxlIGlucHV0
IGJlbG93PC9wPgotPGlucHV0IGlkPSJ0YXJnZXQiIHR5cGU9ImZpbGUiLz48YnIgLz4KLTxpbnB1
dCBpZD0iZHJhZ1N0YXJ0IiB0eXBlPSJ0ZXh0IiB2YWx1ZT0iVGhpcyBpbnB1dCBmaWVsZCBpcyBv
bmx5IHByZXNlbnQgdG8gYWxsb3cgRFJUIHRvIGluaXRpYXRlIGEgZHJhZyI+PC9pbnB1dD48YnIg
Lz4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotCi0KLTxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24g
ZGVidWcoc3RyKSB7Ci0gICAgICAgIHZhciBjID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nv
bnNvbGUnKQotICAgICAgICBjLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0
ciArICdcbicpKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICB2
YXIgZHJhZ1N0YXJ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyYWdTdGFydCIpOwotICAg
ICAgICB2YXIgeCA9IGRyYWdTdGFydC5vZmZzZXRMZWZ0ICsgZHJhZ1N0YXJ0Lm9mZnNldFdpZHRo
IC8gMjsKLSAgICAgICAgdmFyIHkgPSBkcmFnU3RhcnQub2Zmc2V0VG9wICsgZHJhZ1N0YXJ0Lm9m
ZnNldEhlaWdodCAvIDI7Ci0KLSAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQiKTsKLSAgICAgICAgdmFyIHR4ID0gdGFyZ2V0Lm9mZnNldExlZnQgKyB0
YXJnZXQub2Zmc2V0V2lkdGggLyAyOwotICAgICAgICB2YXIgdHkgPSB0YXJnZXQub2Zmc2V0VG9w
ICsgdGFyZ2V0Lm9mZnNldEhlaWdodCAvIDI7Ci0gICAgICAgIAotICAgICAgICBkcmFnU3RhcnQu
c2VsZWN0KCk7Ci0KLSAgICAgICAgdmFyIGluaXRpYWxWYWx1ZSA9IHRhcmdldC52YWx1ZTsKLSAg
ICAgICAgCi0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwotICAgICAgICBl
dmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICAgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQo
NDAwKTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8odHgsIHR5KTsKLSAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VVcCgpOyAgICAgICAKLSAgICAgICAgIAotICAgICAgICB2YXIgZmlu
YWxWYWx1ZSA9IHRhcmdldC52YWx1ZTsKLSAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSA9PSBmaW5h
bFZhbHVlIHx8IGZpbmFsVmFsdWUgIT0gIkRSVEZha2VGaWxlIikKLSAgICAgICAgICAgIGRlYnVn
KCJGQUlMOiBDb3VsZCBub3QgZHJvcCBmaWxlIG9uIHRvIGZpbGUgaW5wdXQiKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgZGVidWcoIlBBU1M6IFN1Y2Nlc3NmdWxseSBkcm9wcGVkIGZpbGUg
b24gdG8gZmlsZSBpbnB1dCIpOwotICAgICAgICAgICAgCi0gICAgICAgIGRlYnVnKCJQQVNTOiBG
aW5pc2hlZCB0ZXN0Iik7Ci0gICAgfQotCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5hZGRGaWxlVG9QYXN0ZWJvYXJk
T25EcmFnKCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICAgICAgcnVuVGVzdCgpOwotICAgIH0KLSAgICAKLSAgICAvLyByZW1vdmUgZHJhZyBzb3VyY2UK
LSAgICB2YXIgZHJhZ1N0YXJ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyYWdTdGFydCIp
OwotICAgIGRyYWdTdGFydC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGRyYWdTdGFydCk7Ci0gICAg
Ci08L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9T
a2lwcGVkCmluZGV4IDBkYWMyMzMuLjdhMmRhM2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVk
CkBAIC0xMjMwLDYgKzEyMzAsNyBAQCBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJvcC10ZXh0LXdpdGhv
dXQtc2VsZWN0aW9uLmh0bWwKIGVkaXRpbmcvcGFzdGVib2FyZC9lbWFjcy1jbnRsLXktMDAxLmh0
bWwKIGVkaXRpbmcvcGFzdGVib2FyZC9lbWFjcy1jdHJsLWEtay15Lmh0bWwKIGVkaXRpbmcvcGFz
dGVib2FyZC9lbWFjcy1jdHJsLWsteS0wMDEuaHRtbAorZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUt
aW5wdXQtZmlsZXMtYWNjZXNzLmh0bWwKIGVkaXRpbmcvcGFzdGVib2FyZC9pbm5lclRleHQtaW5s
aW5lLXRhYmxlLmh0bWwKIGVkaXRpbmcvcGFzdGVib2FyZC9pbnB1dC1maWVsZC0xLmh0bWwKIGVk
aXRpbmcvcGFzdGVib2FyZC9pbnRlcmNoYW5nZS1uZXdsaW5lLTEuaHRtbApAQCAtMTcxNCw4ICsx
NzE1LDYgQEAgZmFzdC9mb3Jtcy9jaGVjay1ib3gtZW50ZXIta2V5Lmh0bWwKIGZhc3QvZm9ybXMv
ZGlzcGxheS1ub25lLWluLW9uY2hhbmdlLWtleWJvYXJkLmh0bWwKIGZhc3QvZm9ybXMvZHJhZy1p
bnRvLXRleHRhcmVhLmh0bWwKIGZhc3QvZm9ybXMvZHJhZy1vdXQtb2YtdGV4dGFyZWEuaHRtbAot
ZmFzdC9mb3Jtcy9kcmFnZ2luZy10by1kaXNhYmxlZC1maWxlLWlucHV0Lmh0bWwKLWZhc3QvZm9y
bXMvZHJhZ2dpbmctdG8tZmlsZS1pbnB1dC5odG1sCiBmYXN0L2Zvcm1zL2VudGVyLWNsaWNrcy1i
dXR0b25zLmh0bWwKIGZhc3QvZm9ybXMvZm9jdXMyLmh0bWwKIGZhc3QvZm9ybXMvZm9jdXMtY29u
dHJvbC10by1wYWdlLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Nr
aXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IDA3ZDA2NjUuLjg4
MjA4MTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtMTAsNiArMTAsOSBAQCBmYXN0L2V2
ZW50cy9wb3B1cC1ibG9ja2luZy1jbGljay1pbi1pZnJhbWUuaHRtbAogCiAjIC0tLS0tLS0tIGNy
YXNoZXMKIAorIyAtLS0tLS0tIG1pc3NpbmcgZXZlbnRTZW5kZXIuYmVnaW5EcmFnV2l0aEZpbGVz
CitlZGl0aW5nL3Bhc3RlYm9hcmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuaHRtbAorCiAjIC0t
LS0tLS0gZmFpbGluZyBlZGl0aW5nIHRlc3RzCiBlZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS10by1l
bmQtb2YtcGFyYWdyYXBoLmh0bWwKIGVkaXRpbmcvZXhlY0NvbW1hbmQvZW5hYmxpbmctYW5kLXNl
bGVjdGlvbi0yLmh0bWwKQEAgLTE2Miw3ICsxNjUsNiBAQCBmYXN0L2Zvcm1zL2J1dHRvbi1jYW5u
b3QtYmUtbmVzdGVkLmh0bWwKIGZhc3QvZm9ybXMvYnV0dG9uLXNwYWNlYmFyLWNsaWNrLmh0bWwK
IGZhc3QvZm9ybXMvY29udHJvbC1yZXN0cmljdC1saW5lLWhlaWdodC5odG1sCiBmYXN0L2Zvcm1z
L2RyYWctaW50by10ZXh0YXJlYS5odG1sCi1mYXN0L2Zvcm1zL2RyYWdnaW5nLXRvLWZpbGUtaW5w
dXQuaHRtbAogZmFzdC9mb3Jtcy9mb2N1cy1jb250cm9sLXRvLXBhZ2UuaHRtbAogZmFzdC9mb3Jt
cy9mb2N1cy1zZWxlY3Rpb24taW5wdXQuaHRtbAogZmFzdC9mb3Jtcy9mb2N1cy1zZWxlY3Rpb24t
dGV4dGFyZWEuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBw
ZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCA4NzhjNjE4Li5kZDQ4
OGM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtMTgxLDggKzE4MSw4IEBAIHN2Zy93
ZWJhcmNoaXZlCiBzdmcvY3VzdG9tL2ltYWdlLXdpdGgtcHJlZml4LWluLXdlYmFyY2hpdmUuc3Zn
CiBodHRwL3Rlc3RzL3dlYmFyY2hpdmUKIAotIyA8cmRhcjovL3Byb2JsZW0vNTIzMDM5Nj4gbGF5
b3V0VGVzdENvbnRyb2xsZXIuYWRkRmlsZVRvUGFzdGVib2FyZE9uRHJhZyBpcyB1bmltcGxlbWVu
dGVkCi1mYXN0L2Zvcm1zL2RyYWdnaW5nLXRvLWZpbGUtaW5wdXQuaHRtbAorIyA8cmRhcjovL3By
b2JsZW0vNTIzMDM5Nj4gZXZlbnRTZW5kZXIuYmVnaW5EcmFnV2l0aEZpbGVzIGlzIHVuaW1wbGVt
ZW50ZWQKK2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5odG1sCiAK
ICMgTmVlZCB0byBhZGQgZnVuY3Rpb25hbGl0eSB0byBEdW1wUmVuZGVyVHJlZSB0byB0ZXN0IElE
TiA8cmRhcjovL3Byb2JsZW0vNTMwMTk1ND4KIGZhc3QvZW5jb2RpbmcvaWRuLXNlY3VyaXR5Lmh0
bWwKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5n
ZUxvZwppbmRleCAwYzAyOGNiLi5kYmI2ZWQ5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMDkt
MDUtMTggIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBsYXlvdXRUZXN0Q29udHJvbGxl
ci5hZGRGaWxlVG9QYXN0ZWJvYXJkT25EcmFnIGFuZCBhZGQgZXZlbnRTZW5kZXIuYmVnaW5EcmFn
V2l0aEZpbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNTg1MgorCisgICAgICAgIFRoaXMgYWxsb3dzIHVzIHRvIG5vdyB0ZXN0IG11bHRpLWZpbGUg
ZmlsZSBkcmFncyBpbiBEdW1wUmVuZGVyVHJlZSBwZXI6CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTg2MgorCisgICAgICAgIEkgcmVtb3ZlZCB0aGUg
ZXhpc3RpbmcgdGVzdHMgdXNpbmcgYWRkRmlsZVRvUGFzdGVib2FyZE9uRHJhZygpCisgICAgICAg
IGFuZCByZXBsYWNlZCB0aGVtIHdpdGggYSBuZXcgdGVzdCAoZWRpdGluZy9wYXN0ZWJvYXJkL2Zp
bGUtaW5wdXQtZmlsZXMtYWNjZXNzKQorICAgICAgICB3aGljaCBjb3ZlcnMgc2V2ZXJhbCBtb3Jl
IGRyYWctZHJvcCBjYXNlcy4KKworICAgICAgICBJIGFkZGVkIGEgRHVtcFJlbmRlclRyZWVGaWxl
RHJhZ2dpbmdTb3VyY2UgY2xhc3MgdG8gYXZvaWQKKyAgICAgICAgdGhlIGhhY2sgb2YgaWYgKCFk
cmFnZ2luZ1NvdXJjZSkgaW4gW0R1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvIGRyYWdnaW5nU291
cmNlT3BlcmF0aW9uTWFza10KKworICAgICAgICBOZXcgVGVzdDogZWRpdGluZy9wYXN0ZWJvYXJk
L2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmh0bWwKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdTb3VyY2UuaDogQWRkZWQuCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdTb3VyY2Uu
bTogQWRkZWQuCisgICAgICAgICgtW0R1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlIGRy
YWdnaW5nU291cmNlT3BlcmF0aW9uTWFza0ZvckxvY2FsOl0pOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250
cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c3RhdGljVmFsdWVzKTogcmVtb3ZlZCBhZGRGaWxlVG9QYXN0ZWJvYXJkT25EcmFnIHN1
cHBvcnQKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMpOiBy
ZW1vdmVkIGFkZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWcgc3VwcG9ydAorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAocnVuVGVzdCk6IEFTU0VSVCB0aGF0
IGRyYWdnaW5nSW5mbyBoYXMgYmVlbiBjbGVhcmVkCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
bWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubW06CisgICAgICAgICgrW0V2ZW50U2VuZGluZ0Nv
bnRyb2xsZXIgaXNTZWxlY3RvckV4Y2x1ZGVkRnJvbVdlYlNjcmlwdDpdKTogU29ydGVkIHNlbGVj
dG9ycy4KKyAgICAgICAgKCtbRXZlbnRTZW5kaW5nQ29udHJvbGxlciB3ZWJTY3JpcHROYW1lRm9y
U2VsZWN0b3I6XSk6IFNvcnRlZCBzZWxlY3RvcnMuCisgICAgICAgICgtW0V2ZW50U2VuZGluZ0Nv
bnRyb2xsZXIgYmVnaW5EcmFnV2l0aEZpbGVzOl0pOgorICAgICAgICAoLVtFdmVudFNlbmRpbmdD
b250cm9sbGVyIG1vdXNlTW92ZVRvWDpZOl0pOgorICAgICAgICAoLVtFdmVudFNlbmRpbmdDb250
cm9sbGVyIGtleURvd246d2l0aE1vZGlmaWVyczpdKToKKyAgICAgICAgKC1bRXZlbnRTZW5kaW5n
Q29udHJvbGxlciBmaXJlS2V5Ym9hcmRFdmVudHNUb0VsZW1lbnQ6XSk6IHJlbW92ZWQgc3B1cmlv
dXMgeyB9CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW06CisgICAg
ICAgICgtW1VJRGVsZWdhdGUgd2ViVmlldzpkcmFnSW1hZ2U6YXQ6b2Zmc2V0OmV2ZW50OnBhc3Rl
Ym9hcmQ6c291cmNlOnNsaWRlQmFjazpmb3JWaWV3Ol0pOiByZW1vdmVkIGFkZEZpbGVUb1Bhc3Rl
Ym9hcmRPbkRyYWcgc3VwcG9ydAorCiAyMDA5LTA1LTE4ICBLZXZpbiBPbGxpdmllciAgPGtldmlu
b0B0aGVvbGxpdmllcnMuY29tPgogCiAgICAgICAgIHd4IGJ1aWxkIGZpeC4gVXNlIHB5dGhvbi1j
b25maWcgdG8gZ2V0IFB5dGhvbiBsaW5raW5nIGluZm8gb24gVW5peCBPU2VzLiAKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJl
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYyZWE0MDEuLmNlMDYxNGYgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJl
bmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTcsNiArNTcsOCBAQAogCQlB
OEI5MUFFMjBDRjNCMzcyMDA4RjkxRkYgLyogRHVtcFJlbmRlclRyZWVQYXN0ZWJvYXJkLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEI5MUFERjBDRjNC
MzcyMDA4RjkxRkYgLyogRHVtcFJlbmRlclRyZWVQYXN0ZWJvYXJkLmggKi87IH07CiAJCUE4Qjkx
QkZEMENGNTIyQjQwMDhGOTFGRiAvKiBDaGVja2VkTWFsbG9jLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QjkxQkY3MENGNTIyQjQwMDhGOTFGRiAv
KiBDaGVja2VkTWFsbG9jLmNwcCAqLzsgfTsKIAkJQThCOTFCRkYwQ0Y1MjJCNDAwOEY5MUZGIC8q
IENoZWNrZWRNYWxsb2MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4QjkxQkY5MENGNTIyQjQwMDhGOTFGRiAvKiBDaGVja2VkTWFsbG9jLmggKi87IH07
CisJCUE4RDc5Q0VBMEZDMjhCMkMwMDRBQzhGRSAvKiBEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2lu
Z1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThENzlDRTgwRkMyOEIyQzAwNEFDOEZFIC8qIER1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291
cmNlLmggKi87IH07CisJCUE4RDc5Q0VCMEZDMjhCMkMwMDRBQzhGRSAvKiBEdW1wUmVuZGVyVHJl
ZUZpbGVEcmFnZ2luZ1NvdXJjZS5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThENzlDRTkwRkMyOEIyQzAwNEFDOEZFIC8qIER1bXBSZW5kZXJUcmVlRmls
ZURyYWdnaW5nU291cmNlLm0gKi87IH07CiAJCUFFODI1OUYzMDhEMjI0NjMwMDA1MDdBQiAvKiBD
YXJib24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQUU4MjU3RUYwOEQyMjM4OTAwMDUwN0FCIC8qIENhcmJvbi5mcmFtZXdvcmsgKi87
IH07CiAJCUFFODI1OUY0MDhEMjI0NjMwMDA1MDdBQiAvKiBDYXJib24uZnJhbWV3b3JrIGluIEZy
YW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUU4MjU3RUYwOEQy
MjM4OTAwMDUwN0FCIC8qIENhcmJvbi5mcmFtZXdvcmsgKi87IH07CiAJCUI1QTc1MkEyMDhBRjVE
MUYwMDEzOEU0NSAvKiBRdWFydHpDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1QTc1MkExMDhBRjVEMUYwMDEzOEU0NSAvKiBR
dWFydHpDb3JlLmZyYW1ld29yayAqLzsgfTsKQEAgLTE5MSw2ICsxOTMsOCBAQAogCQlBOEI5MUFE
RjBDRjNCMzcyMDA4RjkxRkYgLyogRHVtcFJlbmRlclRyZWVQYXN0ZWJvYXJkLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IER1bXBSZW5kZXJUcmVlUGFzdGVib2FyZC5oOyBwYXRo
ID0gbWFjL0R1bXBSZW5kZXJUcmVlUGFzdGVib2FyZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBOEI5MUJGNzBDRjUyMkI0MDA4RjkxRkYgLyogQ2hlY2tlZE1hbGxvYy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDaGVja2VkTWFsbG9jLmNwcDsgcGF0
aCA9IG1hYy9DaGVja2VkTWFsbG9jLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QThCOTFCRjkwQ0Y1MjJCNDAwOEY5MUZGIC8qIENoZWNrZWRNYWxsb2MuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gQ2hlY2tlZE1hbGxvYy5oOyBwYXRoID0gbWFjL0NoZWNrZWRN
YWxsb2MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQThENzlDRTgwRkMyOEIyQzAw
NEFDOEZFIC8qIER1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IER1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4RDc5Q0U5MEZDMjhCMkMwMDRBQzhGRSAv
KiBEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLm9iamM7IHBhdGggPSBEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBQTdGMTBDMjBDQjNDMTAzMDAwM0JEQzkgLyogQUhF
TV9fX18uVFRGICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gZmlsZTsgbmFtZSA9ICJBSEVNX19fXy5UVEYiOyBwYXRoID0gInF0L2ZvbnRzL0FIRU1fX19f
LlRURiI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFFODI1N0VGMDhEMjIzODkwMDA1
MDdBQiAvKiBDYXJib24uZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBDYXJib24uZnJhbWV3
b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9uLmZyYW1ld29yazsg
c291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJQjVBNzUyNjcwOEFGNEE0QTAwMTM4RTQ1
IC8qIEltYWdlRGlmZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVU
eXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsgaW5jbHVkZUluSW5kZXggPSAwOyBw
YXRoID0gSW1hZ2VEaWZmOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAt
MzA2LDYgKzMxMCw4IEBACiAJCQkJQkNBMThDMEEwQzlCNTlFRjAwMTE0MzY5IC8qIER1bXBSZW5k
ZXJUcmVlTWFjLmggKi8sCiAJCQkJQkNBMThCNzMwQzlCMDhGMTAwMTE0MzY5IC8qIER1bXBSZW5k
ZXJUcmVlRHJhZ2dpbmdJbmZvLmggKi8sCiAJCQkJQkNBMThCNzQwQzlCMDhGMTAwMTE0MzY5IC8q
IER1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvLm1tICovLAorCQkJCUE4RDc5Q0U4MEZDMjhCMkMw
MDRBQzhGRSAvKiBEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5oICovLAorCQkJCUE4
RDc5Q0U5MEZDMjhCMkMwMDRBQzhGRSAvKiBEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJj
ZS5tICovLAogCQkJCUJDOUQ5MDIxMEM5NzQ3MkQwMDk5QTRBMyAvKiBXb3JrUXVldWUuY3BwICov
LAogCQkJCUJDOUQ5MDIyMEM5NzQ3MkUwMDk5QTRBMyAvKiBXb3JrUXVldWUuaCAqLywKIAkJCQlC
QzlEOTAyMzBDOTc0NzJFMDA5OUE0QTMgLyogV29ya1F1ZXVlSXRlbS5oICovLApAQCAtNTEzLDYg
KzUxOSw3IEBACiAJCQkJQkM5RDkwMjUwQzk3NDcyRTAwOTlBNEEzIC8qIFdvcmtRdWV1ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM5RDkwMjYwQzk3NDcyRTAwOTlBNEEzIC8qIFdvcmtRdWV1ZUl0
ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzM0JGNUFCMEY5M0ZBNUMwMDBGMDQ0MSAvKiBQbGFp
blRleHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlBOEQ3OUNFQTBGQzI4QjJDMDA0
QUM4RkUgLyogRHVtcFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdTb3VyY2UuaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpAQCAtNjU4LDYgKzY2NSw3IEBACiAJCQkJQkM5RDkwMjQwQzk3NDcyRTAwOTlBNEEzIC8qIFdv
cmtRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0ExOEIyNjBDOUIwMTVDMDAxMTQzNjkg
LyogV29ya1F1ZXVlSXRlbU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzM0JGNUFDMEY5M0ZB
NUMwMDBGMDQ0MSAvKiBQbGFpblRleHRDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJ
QThENzlDRUIwRkMyOEIyQzAwNEFDOEZFIC8qIER1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291
cmNlLm0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL0R1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlLmggYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyZjQ1ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5o
CkBAIC0wLDAgKzEsMzkgQEAKKy8vIENvcHlyaWdodCAoYykgMjAwOSwgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKy8vIAorLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisv
LyBtZXQ6CisvLyAKKy8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisvLyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisvLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0cmlidXRpb24uCisvLyAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
Ly8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKy8vIAorLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8g
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworI2ltcG9ydCA8Q29jb2EvQ29jb2EuaD4KKworLy8gQW4gaW1wbGVtZW50YXRp
b24gb2YgTlNEcmFnZ2luZ1NvdXJjZSBmb3IgdXNlIHdpdGggRHVtcFJlbmRlclRyZWVEcmFnZ2lu
Z0luZm8gd2hlbiBkcmFnZ2luZyBmaWxlcworLy8gVXNlZCBieSAtW0V2ZW50U2VuZGluZ0NvbnRy
b2xsZXIgYmVnaW5EcmFnV2l0aEZpbGVzOl0KKworQGludGVyZmFjZSBEdW1wUmVuZGVyVHJlZUZp
bGVEcmFnZ2luZ1NvdXJjZSA6IE5TT2JqZWN0IHsKK30KKworLSAoTlNEcmFnT3BlcmF0aW9uKWRy
YWdnaW5nU291cmNlT3BlcmF0aW9uTWFza0ZvckxvY2FsOihCT09MKWZsYWc7CisKK0BlbmQKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlRmlsZURy
YWdnaW5nU291cmNlLm0gYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJl
ZUZpbGVEcmFnZ2luZ1NvdXJjZS5tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjQ0OWQ5MTgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9E
dW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5tCkBAIC0wLDAgKzEsMzggQEAKKy8vIENv
cHlyaWdodCAoYykgMjAwOSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIAor
Ly8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisvLyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisvLyBtZXQ6CisvLyAKKy8vICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisvLyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisvLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisvLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisvLyBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisvLyBkaXN0
cmlidXRpb24uCisvLyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisvLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vIAorLy8gVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
Ly8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2ltcG9ydCAiRHVt
cFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdTb3VyY2UuaCIKKworQGltcGxlbWVudGF0aW9uIER1bXBS
ZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlCisKKy0gKE5TRHJhZ09wZXJhdGlvbilkcmFnZ2lu
Z1NvdXJjZU9wZXJhdGlvbk1hc2tGb3JMb2NhbDooQk9PTClmbGFnCit7CisgICAgcmV0dXJuIE5T
RHJhZ09wZXJhdGlvbkNvcHk7Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCAyMjgyZjY5Li41MGY5NmQz
IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwCkBAIC01MSw3ICs1MSw2IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRU
ZXN0Q29udHJvbGxlcihjb25zdCBzdGQ6OnN0cmluZyYgdGVzdFBhdGhPclVSTCwgY29uCiAgICAg
LCBtX2R1bXBFZGl0aW5nQ2FsbGJhY2tzKGZhbHNlKQogICAgICwgbV9kdW1wUmVzb3VyY2VMb2Fk
Q2FsbGJhY2tzKGZhbHNlKQogICAgICwgbV9kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKGZhbHNlKQot
ICAgICwgbV9hZGRGaWxlVG9QYXN0ZWJvYXJkT25EcmFnKGZhbHNlKQogICAgICwgbV9jYWxsQ2xv
c2VPbldlYlZpZXdzKHRydWUpCiAgICAgLCBtX2Nhbk9wZW5XaW5kb3dzKGZhbHNlKQogICAgICwg
bV9jbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUodHJ1ZSkKQEAgLTIyNCwxMyArMjIz
LDYgQEAgc3RhdGljIEpTVmFsdWVSZWYgdGVzdFJlcGFpbnRDYWxsYmFjayhKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24KICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRl
ZmluZWQoY29udGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIGFkZEZpbGVUb1Bhc3RlYm9h
cmRPbkRyYWdDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rp
b24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBK
U1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCi17Ci0gICAgTGF5
b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29u
dHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgY29udHJvbGxl
ci0+c2V0QWRkRmlsZVRvUGFzdGVib2FyZE9uRHJhZyh0cnVlKTsKLSAgICByZXR1cm4gSlNWYWx1
ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KIHN0YXRpYyBKU1ZhbHVlUmVmIGFkZERpc2Fs
bG93ZWRVUkxDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rp
b24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBK
U1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgLy8g
SGFzIG1hYyBpbXBsZW1lbnRhdGlvbgpAQCAtODI1LDE0ICs4MTcsMTIgQEAgSlNTdGF0aWNWYWx1
ZSogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY1ZhbHVlcygpCiAgICAgICAgIHsgMCwgMCwg
MCwgMCB9CiAgICAgfTsKICAgICByZXR1cm4gc3RhdGljVmFsdWVzOwotCiB9CiAKIEpTU3RhdGlj
RnVuY3Rpb24qIExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMoKQogewogICAg
IHN0YXRpYyBKU1N0YXRpY0Z1bmN0aW9uIHN0YXRpY0Z1bmN0aW9uc1tdID0gewogICAgICAgICB7
ICJhZGREaXNhbGxvd2VkVVJMIiwgYWRkRGlzYWxsb3dlZFVSTENhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0g
ICAgICAgIHsgImFkZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWciLCBhZGRGaWxlVG9QYXN0ZWJvYXJk
T25EcmFnQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiY2xlYXJBbGxEYXRhYmFzZXMiLCBj
bGVhckFsbERhdGFiYXNlc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImNsZWFyQmFja0Zv
cndhcmRMaXN0IiwgY2xlYXJCYWNrRm9yd2FyZExpc3RDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAg
ICB7ICJjbGVhclBlcnNpc3RlbnRVc2VyU3R5bGVTaGVldCIsIGNsZWFyUGVyc2lzdGVudFVzZXJT
dHlsZVNoZWV0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDdlMzBiOTUuLjQxOGIwYTAgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgK
KysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApA
QCAtMTIyLDkgKzEyMiw2IEBAIHB1YmxpYzoKICAgICBib29sIGR1bXBGcmFtZUxvYWRDYWxsYmFj
a3MoKSBjb25zdCB7IHJldHVybiBtX2R1bXBGcmFtZUxvYWRDYWxsYmFja3M7IH0KICAgICB2b2lk
IHNldER1bXBGcmFtZUxvYWRDYWxsYmFja3MoYm9vbCBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKSB7
IG1fZHVtcEZyYW1lTG9hZENhbGxiYWNrcyA9IGR1bXBGcmFtZUxvYWRDYWxsYmFja3M7IH0KIAot
ICAgIGJvb2wgYWRkRmlsZVRvUGFzdGVib2FyZE9uRHJhZygpIGNvbnN0IHsgcmV0dXJuIG1fYWRk
RmlsZVRvUGFzdGVib2FyZE9uRHJhZzsgfQotICAgIHZvaWQgc2V0QWRkRmlsZVRvUGFzdGVib2Fy
ZE9uRHJhZyhib29sIGFkZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWcpIHsgbV9hZGRGaWxlVG9QYXN0
ZWJvYXJkT25EcmFnID0gYWRkRmlsZVRvUGFzdGVib2FyZE9uRHJhZzsgfQotCiAgICAgYm9vbCBj
YWxsQ2xvc2VPbldlYlZpZXdzKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsQ2xvc2VPbldlYlZpZXdz
OyB9CiAgICAgdm9pZCBzZXRDYWxsQ2xvc2VPbldlYlZpZXdzKGJvb2wgY2FsbENsb3NlT25XZWJW
aWV3cykgeyBtX2NhbGxDbG9zZU9uV2ViVmlld3MgPSBjYWxsQ2xvc2VPbldlYlZpZXdzOyB9CiAK
QEAgLTE3Nyw3ICsxNzQsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kdW1wRWRpdGluZ0NhbGxi
YWNrczsKICAgICBib29sIG1fZHVtcFJlc291cmNlTG9hZENhbGxiYWNrczsKICAgICBib29sIG1f
ZHVtcEZyYW1lTG9hZENhbGxiYWNrczsKLSAgICBib29sIG1fYWRkRmlsZVRvUGFzdGVib2FyZE9u
RHJhZzsKICAgICBib29sIG1fY2FsbENsb3NlT25XZWJWaWV3czsKICAgICBib29sIG1fY2FuT3Bl
bldpbmRvd3M7CiAgICAgYm9vbCBtX2Nsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZTsK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZS5tbSBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpp
bmRleCAxMjEwOTc2Li43ZmQzYWExIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0yNiwxMSArMjYsMTIgQEAKICAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwotIAorCiAjaW1wb3J0ICJEdW1wUmVuZGVyVHJlZS5o
IgogCiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oIgogI2ltcG9ydCAiQ2hlY2tl
ZE1hbGxvYy5oIgorI2ltcG9ydCAiRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8uaCIKICNpbXBv
cnQgIkR1bXBSZW5kZXJUcmVlUGFzdGVib2FyZC5oIgogI2ltcG9ydCAiRHVtcFJlbmRlclRyZWVX
aW5kb3cuaCIKICNpbXBvcnQgIkVkaXRpbmdEZWxlZ2F0ZS5oIgpAQCAtMTA5MSw2ICsxMDkyLDgg
QEAgc3RhdGljIHZvaWQgcnVuVGVzdChjb25zdCBzdHJpbmcmIHRlc3RQYXRoT3JVUkwpCiAKICAg
ICBnTGF5b3V0VGVzdENvbnRyb2xsZXIgPSBuZXcgTGF5b3V0VGVzdENvbnRyb2xsZXIodGVzdFVS
TCwgZXhwZWN0ZWRQaXhlbEhhc2gpOwogICAgIHRvcExvYWRpbmdGcmFtZSA9IG5pbDsKKyAgICBB
U1NFUlQoIWRyYWdnaW5nSW5mbyk7IC8vIHRoZSBwcmV2aW91cyB0ZXN0IHNob3VsZCBoYXZlIGNh
bGxlZCBldmVudFNlbmRlci5tb3VzZVVwIHRvIGRyb3AhCisgICAgcmVsZWFzZUFuZFplcm8oJmRy
YWdnaW5nSW5mbyk7CiAgICAgZG9uZSA9IE5POwogCiAgICAgZ0xheW91dFRlc3RDb250cm9sbGVy
LT5zZXRJY29uRGF0YWJhc2VFbmFibGVkKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9FdmVudFNlbmRpbmdDb250cm9sbGVyLm1tIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubW0KaW5kZXggNTg4
MzAyNi4uZmNkNzIxYiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubW0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubW0KQEAgLTMzLDYgKzMzLDcgQEAKIAogI2lt
cG9ydCAiRHVtcFJlbmRlclRyZWUuaCIKICNpbXBvcnQgIkR1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJ
bmZvLmgiCisjaW1wb3J0ICJEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5oIgogCiAj
aW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9y
IEdldEN1cnJlbnRFdmVudFRpbWUoKQogI2ltcG9ydCA8V2ViS2l0L0RPTVByaXZhdGUuaD4KQEAg
LTExOCwxNiArMTE5LDE3IEBAIEJPT0wgcmVwbGF5aW5nU2F2ZWRFdmVudHM7CiAKICsgKEJPT0wp
aXNTZWxlY3RvckV4Y2x1ZGVkRnJvbVdlYlNjcmlwdDooU0VMKWFTZWxlY3RvcgogewotICAgIGlm
IChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKG1vdXNlRG93bjopCi0gICAgICAgICAgICB8fCBhU2Vs
ZWN0b3IgPT0gQHNlbGVjdG9yKG1vdXNlVXA6KQorICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVj
dG9yKGJlZ2luRHJhZ1dpdGhGaWxlczopCisgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNl
bGVjdG9yKGNsZWFyS2lsbFJpbmcpCiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVj
dG9yKGNvbnRleHRDbGljaykKLSAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3Io
c2NoZWR1bGVBc3luY2hyb25vdXNDbGljaykKLSAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBA
c2VsZWN0b3IobW91c2VNb3ZlVG9YOlk6KQotICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBz
ZWxlY3RvcihsZWFwRm9yd2FyZDopCi0gICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVj
dG9yKGtleURvd246d2l0aE1vZGlmaWVyczopCiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0g
QHNlbGVjdG9yKGVuYWJsZURPTVVJRXZlbnRMb2dnaW5nOikKICAgICAgICAgICAgIHx8IGFTZWxl
Y3RvciA9PSBAc2VsZWN0b3IoZmlyZUtleWJvYXJkRXZlbnRzVG9FbGVtZW50OikKLSAgICAgICAg
ICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoY2xlYXJLaWxsUmluZykKKyAgICAgICAgICAg
IHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3Ioa2V5RG93bjp3aXRoTW9kaWZpZXJzOikKKyAgICAg
ICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IobGVhcEZvcndhcmQ6KQorICAgICAgICAg
ICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcihtb3VzZURvd246KQorICAgICAgICAgICAgfHwg
YVNlbGVjdG9yID09IEBzZWxlY3Rvcihtb3VzZU1vdmVUb1g6WTopCisgICAgICAgICAgICB8fCBh
U2VsZWN0b3IgPT0gQHNlbGVjdG9yKG1vdXNlVXA6KQorICAgICAgICAgICAgfHwgYVNlbGVjdG9y
ID09IEBzZWxlY3RvcihzY2hlZHVsZUFzeW5jaHJvbm91c0NsaWNrKQogICAgICAgICAgICAgfHwg
YVNlbGVjdG9yID09IEBzZWxlY3Rvcih0ZXh0Wm9vbUluKQogICAgICAgICAgICAgfHwgYVNlbGVj
dG9yID09IEBzZWxlY3Rvcih0ZXh0Wm9vbU91dCkKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9
PSBAc2VsZWN0b3Ioem9vbVBhZ2VJbikKQEAgLTE0NSwyMCArMTQ3LDIyIEBAIEJPT0wgcmVwbGF5
aW5nU2F2ZWRFdmVudHM7CiAKICsgKE5TU3RyaW5nICopd2ViU2NyaXB0TmFtZUZvclNlbGVjdG9y
OihTRUwpYVNlbGVjdG9yCiB7CisgICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoYmVnaW5E
cmFnV2l0aEZpbGVzOikpCisgICAgICAgIHJldHVybiBAImJlZ2luRHJhZ1dpdGhGaWxlcyI7Cisg
ICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoZW5hYmxlRE9NVUlFdmVudExvZ2dpbmc6KSkK
KyAgICAgICAgcmV0dXJuIEAiZW5hYmxlRE9NVUlFdmVudExvZ2dpbmciOworICAgIGlmIChhU2Vs
ZWN0b3IgPT0gQHNlbGVjdG9yKGZpcmVLZXlib2FyZEV2ZW50c1RvRWxlbWVudDopKQorICAgICAg
ICByZXR1cm4gQCJmaXJlS2V5Ym9hcmRFdmVudHNUb0VsZW1lbnQiOworICAgIGlmIChhU2VsZWN0
b3IgPT0gQHNlbGVjdG9yKGtleURvd246d2l0aE1vZGlmaWVyczopKQorICAgICAgICByZXR1cm4g
QCJrZXlEb3duIjsKKyAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihsZWFwRm9yd2FyZDop
KQorICAgICAgICByZXR1cm4gQCJsZWFwRm9yd2FyZCI7CiAgICAgaWYgKGFTZWxlY3RvciA9PSBA
c2VsZWN0b3IobW91c2VEb3duOikpCiAgICAgICAgIHJldHVybiBAIm1vdXNlRG93biI7CiAgICAg
aWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IobW91c2VVcDopKQogICAgICAgICByZXR1cm4gQCJt
b3VzZVVwIjsKICAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3Rvcihtb3VzZU1vdmVUb1g6WTop
KQogICAgICAgICByZXR1cm4gQCJtb3VzZU1vdmVUbyI7Ci0gICAgaWYgKGFTZWxlY3RvciA9PSBA
c2VsZWN0b3IobGVhcEZvcndhcmQ6KSkKLSAgICAgICAgcmV0dXJuIEAibGVhcEZvcndhcmQiOwot
ICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGtleURvd246d2l0aE1vZGlmaWVyczopKQot
ICAgICAgICByZXR1cm4gQCJrZXlEb3duIjsKLSAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3Rv
cihlbmFibGVET01VSUV2ZW50TG9nZ2luZzopKQotICAgICAgICByZXR1cm4gQCJlbmFibGVET01V
SUV2ZW50TG9nZ2luZyI7Ci0gICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoZmlyZUtleWJv
YXJkRXZlbnRzVG9FbGVtZW50OikpCi0gICAgICAgIHJldHVybiBAImZpcmVLZXlib2FyZEV2ZW50
c1RvRWxlbWVudCI7CiAgICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3Ioc2V0RHJhZ01vZGU6
KSkKICAgICAgICAgcmV0dXJuIEAic2V0RHJhZ01vZGUiOwogICAgIHJldHVybiBuaWw7CkBAIC0y
MzgsNiArMjQyLDM3IEBAIHN0YXRpYyBOU0V2ZW50VHlwZSBldmVudFR5cGVGb3JNb3VzZUJ1dHRv
bkFuZEFjdGlvbihpbnQgYnV0dG9uLCBNb3VzZUFjdGlvbiBhY3RpCiAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PE5TRXZlbnRUeXBlPigwKTsKIH0KIAorLSAodm9pZCliZWdpbkRyYWdXaXRoRmlsZXM6
KFdlYlNjcmlwdE9iamVjdCopanNGaWxlUGF0aHMKK3sKKyAgICBhc3NlcnQoIWRyYWdnaW5nSW5m
byk7CisgICAgYXNzZXJ0KFtqc0ZpbGVQYXRocyBpc0tpbmRPZkNsYXNzOltXZWJTY3JpcHRPYmpl
Y3QgY2xhc3NdXSk7CisKKyAgICBOU1Bhc3RlYm9hcmQgKnBib2FyZCA9IFtOU1Bhc3RlYm9hcmQg
cGFzdGVib2FyZFdpdGhVbmlxdWVOYW1lXTsKKyAgICBbcGJvYXJkIGRlY2xhcmVUeXBlczpbTlNB
cnJheSBhcnJheVdpdGhPYmplY3Q6TlNGaWxlbmFtZXNQYm9hcmRUeXBlXSBvd25lcjpuaWxdOwor
CisgICAgTlNVUkwgKmN1cnJlbnRUZXN0VVJMID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6W1ttYWlu
RnJhbWUgd2ViVmlld10gbWFpbkZyYW1lVVJMXV07CisKKyAgICBOU011dGFibGVBcnJheSAqZmls
ZVBhdGhzID0gW05TTXV0YWJsZUFycmF5IGFycmF5XTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBbW2pzRmlsZVBhdGhzIHdlYlNjcmlwdFZhbHVlQXRJbmRleDppXSBpc0tpbmRPZkNsYXNzOltO
U1N0cmluZyBjbGFzc11dOyBpKyspIHsKKyAgICAgICAgTlNTdHJpbmcgKmZpbGVQYXRoID0gKE5T
U3RyaW5nICopW2pzRmlsZVBhdGhzIHdlYlNjcmlwdFZhbHVlQXRJbmRleDppXTsKKyAgICAgICAg
Ly8gSGF2ZSBOU1VSTCBlbmNvZGUgdGhlIG5hbWUgc28gdGhhdCB3ZSBoYW5kbGUgJz8nIGluIGZp
bGUgbmFtZXMgY29ycmVjdGx5LgorICAgICAgICBOU1VSTCAqZmlsZVVSTCA9IFtOU1VSTCBmaWxl
VVJMV2l0aFBhdGg6ZmlsZVBhdGhdOworICAgICAgICBOU1VSTCAqYWJzb2x1dGVGaWxlVVJMID0g
W05TVVJMIFVSTFdpdGhTdHJpbmc6W2ZpbGVVUkwgcmVsYXRpdmVTdHJpbmddICByZWxhdGl2ZVRv
VVJMOmN1cnJlbnRUZXN0VVJMXTsKKyAgICAgICAgW2ZpbGVQYXRocyBhZGRPYmplY3Q6W2Fic29s
dXRlRmlsZVVSTCBwYXRoXV07CisgICAgfQorCisgICAgW3Bib2FyZCBzZXRQcm9wZXJ0eUxpc3Q6
ZmlsZVBhdGhzIGZvclR5cGU6TlNGaWxlbmFtZXNQYm9hcmRUeXBlXTsKKyAgICBhc3NlcnQoW3Bi
b2FyZCBwcm9wZXJ0eUxpc3RGb3JUeXBlOk5TRmlsZW5hbWVzUGJvYXJkVHlwZV0pOyAvLyBzZXRQ
cm9wZXJ0eUxpc3Qgd2lsbCBzaWxlbnRseSBmYWlsIG9uIGVycm9yLCBhc3NlcnQgdGhhdCBpdCBk
aWRuJ3QgZmFpbAorCisgICAgLy8gUHJvdmlkZSBhIHNvdXJjZSwgb3RoZXJ3aXNlIFtEdW1wUmVu
ZGVyVHJlZURyYWdnaW5nSW5mbyBkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2tdIGRlZmF1bHRz
IHRvIE5TRHJhZ09wZXJhdGlvbk5vbmUKKyAgICBEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1Nv
dXJjZSAqc291cmNlID0gW1tbRHVtcFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdTb3VyY2UgYWxsb2Nd
IGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICBkcmFnZ2luZ0luZm8gPSBbW0R1bXBSZW5kZXJUcmVl
RHJhZ2dpbmdJbmZvIGFsbG9jXSBpbml0V2l0aEltYWdlOm5pbCBvZmZzZXQ6TlNaZXJvU2l6ZSBw
YXN0ZWJvYXJkOnBib2FyZCBzb3VyY2U6c291cmNlXTsKKyAgICBbW21haW5GcmFtZSB3ZWJWaWV3
XSBkcmFnZ2luZ0VudGVyZWQ6ZHJhZ2dpbmdJbmZvXTsKKworICAgIGRyYWdNb2RlID0gTk87IC8v
IGRyYWdNb2RlIHNhdmVzIGV2ZW50cyBhbmQgdGhlbiByZXBsYXlzIHRoZW0gbGF0ZXIuICBXZSBk
b24ndCBuZWVkL3dhbnQgdGhhdC4KKyAgICBsZWZ0TW91c2VCdXR0b25Eb3duID0gWUVTOyAvLyBN
YWtlIHRoZSByZXN0IG9mIGV2ZW50U2VuZGVyIHRoaW5rIGEgZHJhZyBpcyBpbiBwcm9ncmVzcwor
fQorCiAtICh2b2lkKXVwZGF0ZUNsaWNrQ291bnRGb3JCdXR0b246KGludClidXR0b25OdW1iZXIK
IHsKICAgICBpZiAoKFtzZWxmIGN1cnJlbnRFdmVudFRpbWVdIC0gbGFzdENsaWNrID49IDEpIHx8
CkBAIC0zMzksNyArMzc0LDkgQEAgc3RhdGljIE5TRXZlbnRUeXBlIGV2ZW50VHlwZUZvck1vdXNl
QnV0dG9uQW5kQWN0aW9uKGludCBidXR0b24sIE1vdXNlQWN0aW9uIGFjdGkKICAgICAgICAgICAg
IFt3ZWJWaWV3IHBlcmZvcm1EcmFnT3BlcmF0aW9uOmRyYWdnaW5nSW5mb107CiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgIFt3ZWJWaWV3IGRyYWdnaW5nRXhpdGVkOmRyYWdnaW5nSW5mb107Ci0g
ICAgICAgIFtbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nU291cmNlXSBkcmFnZ2VkSW1hZ2U6W2RyYWdn
aW5nSW5mbyBkcmFnZ2VkSW1hZ2VdIGVuZGVkQXQ6bGFzdE1vdXNlUG9zaXRpb24gb3BlcmF0aW9u
OmRyYWdPcGVyYXRpb25dOworICAgICAgICAvLyBQZXIgTlNEcmFnZ2luZy5oOiBkcmFnZ2luZ1Nv
dXJjZXMgbWF5IG5vdCBpbXBsZW1lbnQgZHJhZ2dlZEltYWdlOmVuZGVkQXQ6b3BlcmF0aW9uOgor
ICAgICAgICBpZiAoW1tkcmFnZ2luZ0luZm8gZHJhZ2dpbmdTb3VyY2VdIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoZHJhZ2dlZEltYWdlOmVuZGVkQXQ6b3BlcmF0aW9uOildKQorICAgICAg
ICAgICAgW1tkcmFnZ2luZ0luZm8gZHJhZ2dpbmdTb3VyY2VdIGRyYWdnZWRJbWFnZTpbZHJhZ2dp
bmdJbmZvIGRyYWdnZWRJbWFnZV0gZW5kZWRBdDpsYXN0TW91c2VQb3NpdGlvbiBvcGVyYXRpb246
ZHJhZ09wZXJhdGlvbl07CiAgICAgICAgIFtkcmFnZ2luZ0luZm8gcmVsZWFzZV07CiAgICAgICAg
IGRyYWdnaW5nSW5mbyA9IG5pbDsKICAgICB9CkBAIC0zNTUsNyArMzkyLDYgQEAgc3RhdGljIE5T
RXZlbnRUeXBlIGV2ZW50VHlwZUZvck1vdXNlQnV0dG9uQW5kQWN0aW9uKGludCBidXR0b24sIE1v
dXNlQWN0aW9uIGFjdGkKICAgICAgICAgW2ludm9jYXRpb24gc2V0QXJndW1lbnQ6JnkgYXRJbmRl
eDozXTsKICAgICAgICAgCiAgICAgICAgIFtFdmVudFNlbmRpbmdDb250cm9sbGVyIHNhdmVFdmVu
dDppbnZvY2F0aW9uXTsKLSAgICAgICAgCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTM3
Niw3ICs0MTIsOSBAQCBzdGF0aWMgTlNFdmVudFR5cGUgZXZlbnRUeXBlRm9yTW91c2VCdXR0b25B
bmRBY3Rpb24oaW50IGJ1dHRvbiwgTW91c2VBY3Rpb24gYWN0aQogICAgICAgICBpZiAobGVmdE1v
dXNlQnV0dG9uRG93bikgewogICAgICAgICAgICAgW3N1YlZpZXcgbW91c2VEcmFnZ2VkOmV2ZW50
XTsKICAgICAgICAgICAgIGlmIChkcmFnZ2luZ0luZm8pIHsKLSAgICAgICAgICAgICAgICBbW2Ry
YWdnaW5nSW5mbyBkcmFnZ2luZ1NvdXJjZV0gZHJhZ2dlZEltYWdlOltkcmFnZ2luZ0luZm8gZHJh
Z2dlZEltYWdlXSBtb3ZlZFRvOmxhc3RNb3VzZVBvc2l0aW9uXTsKKyAgICAgICAgICAgICAgICAv
LyBQZXIgTlNEcmFnZ2luZy5oOiBkcmFnZ2luZ1NvdXJjZXMgbWF5IG5vdCBpbXBsZW1lbnQgZHJh
Z2dlZEltYWdlOm1vdmVkVG86CisgICAgICAgICAgICAgICAgaWYgKFtbZHJhZ2dpbmdJbmZvIGRy
YWdnaW5nU291cmNlXSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGRyYWdnZWRJbWFnZTpt
b3ZlZFRvOildKQorICAgICAgICAgICAgICAgICAgICBbW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ1Nv
dXJjZV0gZHJhZ2dlZEltYWdlOltkcmFnZ2luZ0luZm8gZHJhZ2dlZEltYWdlXSBtb3ZlZFRvOmxh
c3RNb3VzZVBvc2l0aW9uXTsKICAgICAgICAgICAgICAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBk
cmFnZ2luZ1VwZGF0ZWQ6ZHJhZ2dpbmdJbmZvXTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBl
bHNlCkBAIC00NzYsNyArNTE0LDcgQEAgc3RhdGljIE5TRXZlbnRUeXBlIGV2ZW50VHlwZUZvck1v
dXNlQnV0dG9uQW5kQWN0aW9uKGludCBidXR0b24sIE1vdXNlQWN0aW9uIGFjdGkKICAgICAgICAg
Y2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzID0gW2NoYXJhY3RlciBsb3dlcmNhc2VTdHJpbmdd
OwogICAgIH0KIAotICAgIGlmIChbbW9kaWZpZXJzIGlzS2luZE9mQ2xhc3M6W1dlYlNjcmlwdE9i
amVjdCBjbGFzc11dKQorICAgIGlmIChbbW9kaWZpZXJzIGlzS2luZE9mQ2xhc3M6W1dlYlNjcmlw
dE9iamVjdCBjbGFzc11dKSB7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IFtbbW9kaWZp
ZXJzIHdlYlNjcmlwdFZhbHVlQXRJbmRleDppXSBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFz
c11dOyBpKyspIHsKICAgICAgICAgICAgIE5TU3RyaW5nICptb2RpZmllciA9IChOU1N0cmluZyAq
KVttb2RpZmllcnMgd2ViU2NyaXB0VmFsdWVBdEluZGV4OmldOwogICAgICAgICAgICAgaWYgKFtt
b2RpZmllciBpc0VxdWFsOkAiY3RybEtleSJdKQpAQCAtNDg4LDYgKzUyNiw3IEBAIHN0YXRpYyBO
U0V2ZW50VHlwZSBldmVudFR5cGVGb3JNb3VzZUJ1dHRvbkFuZEFjdGlvbihpbnQgYnV0dG9uLCBN
b3VzZUFjdGlvbiBhY3RpCiAgICAgICAgICAgICBlbHNlIGlmIChbbW9kaWZpZXIgaXNFcXVhbDpA
Im1ldGFLZXkiXSkKICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzIHw9IE5TQ29tbWFuZEtl
eU1hc2s7CiAgICAgICAgIH0KKyAgICB9CiAKICAgICBbW1ttYWluRnJhbWUgZnJhbWVWaWV3XSBk
b2N1bWVudFZpZXddIGxheW91dF07CiAKQEAgLTYxNyw5ICs2NTYsOCBAQCBzdGF0aWMgTlNFdmVu
dFR5cGUgZXZlbnRUeXBlRm9yTW91c2VCdXR0b25BbmRBY3Rpb24oaW50IGJ1dHRvbiwgTW91c2VB
Y3Rpb24gYWN0aQogLy8gdG8gd29yayB3ZWxsIGVub3VnaCB0aGF0IHdlIGNhbiB0ZXN0IHRoYXQg
d2F5IGluc3RlYWQuCiAtICh2b2lkKWZpcmVLZXlib2FyZEV2ZW50c1RvRWxlbWVudDooV2ViU2Ny
aXB0T2JqZWN0ICopZWxlbWVudCB7CiAgICAgCi0gICAgaWYgKCFbZWxlbWVudCBpc0tpbmRPZkNs
YXNzOltET01IVE1MRWxlbWVudCBjbGFzc11dKSB7CisgICAgaWYgKCFbZWxlbWVudCBpc0tpbmRP
ZkNsYXNzOltET01IVE1MRWxlbWVudCBjbGFzc11dKQogICAgICAgICByZXR1cm47Ci0gICAgfQog
ICAgIAogICAgIERPTUhUTUxFbGVtZW50ICp0YXJnZXQgPSAoRE9NSFRNTEVsZW1lbnQqKWVsZW1l
bnQ7CiAgICAgRE9NRG9jdW1lbnQgKmRvY3VtZW50ID0gW3RhcmdldCBvd25lckRvY3VtZW50XTsK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRlLm1t
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KaW5kZXggMWY4
Mjg5Mi4uNjZhYWRmOSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L1VJRGVsZWdhdGUubW0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVs
ZWdhdGUubW0KQEAgLTk1LDEwICs5NSw2IEBAIER1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvICpk
cmFnZ2luZ0luZm8gPSBuaWw7CiAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5kZXIgZHJh
Z0ltYWdlOihOU0ltYWdlICopYW5JbWFnZSBhdDooTlNQb2ludCl2aWV3TG9jYXRpb24gb2Zmc2V0
OihOU1NpemUpaW5pdGlhbE9mZnNldCBldmVudDooTlNFdmVudCAqKWV2ZW50IHBhc3RlYm9hcmQ6
KE5TUGFzdGVib2FyZCAqKXBib2FyZCBzb3VyY2U6KGlkKXNvdXJjZU9iaiBzbGlkZUJhY2s6KEJP
T0wpc2xpZGVGbGFnIGZvclZpZXc6KE5TVmlldyAqKXZpZXcKIHsKICAgICAgYXNzZXJ0KCFkcmFn
Z2luZ0luZm8pOwotICAgICBpZiAoZ0xheW91dFRlc3RDb250cm9sbGVyLT5hZGRGaWxlVG9QYXN0
ZWJvYXJkT25EcmFnKCkpIHsKLSAgICAgICAgIFtwYm9hcmQgZGVjbGFyZVR5cGVzOltOU0FycmF5
IGFycmF5V2l0aE9iamVjdDpOU0ZpbGVuYW1lc1Bib2FyZFR5cGVdIG93bmVyOm5pbF07Ci0gICAg
ICAgICBbcGJvYXJkIHNldFByb3BlcnR5TGlzdDpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6QCJE
UlRGYWtlRmlsZSJdIGZvclR5cGU6TlNGaWxlbmFtZXNQYm9hcmRUeXBlXTsKLSAgICAgfQogICAg
ICBkcmFnZ2luZ0luZm8gPSBbW0R1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvIGFsbG9jXSBpbml0
V2l0aEltYWdlOmFuSW1hZ2Ugb2Zmc2V0OmluaXRpYWxPZmZzZXQgcGFzdGVib2FyZDpwYm9hcmQg
c291cmNlOnNvdXJjZU9ial07CiAgICAgIFtzZW5kZXIgZHJhZ2dpbmdVcGRhdGVkOmRyYWdnaW5n
SW5mb107CiAgICAgIFtFdmVudFNlbmRpbmdDb250cm9sbGVyIHJlcGxheVNhdmVkRXZlbnRzXTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30488</attachid>
            <date>2009-05-19 18:50:26 -0700</date>
            <delta_ts>2009-05-19 23:18:06 -0700</delta_ts>
            <desc>Remove layoutTestController.addFileToPasteboardOnDrag and add eventSender.beginDragWithFiles</desc>
            <filename>Remove-layoutTestController.addFileToPasteboardOnDrag-and-add-eventSender.beginDragWithFiles.patch</filename>
            <type>text/plain</type>
            <size>44534</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">OGNiZGJmOTYxZjI1OTBhOWJlZGRjODEwNmE5MjJkZjg1N2E0NzU2YgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVlZjVlNTku
LmIyNTc3MzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAwOS0wNS0xOCAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVtb3ZlIGxheW91dFRlc3RDb250cm9sbGVyLmFkZEZpbGVUb1Bhc3RlYm9h
cmRPbkRyYWcgYW5kIGFkZCBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1ODUyCisKKyAgICAgICAg
QWRkIG5ldyB0ZXN0cyBmb3IgbXVsdGktZmlsZSBkcmFnZ2luZzoKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1ODYyCisKKyAgICAgICAgSSd2ZSByZW1v
dmVkIHRoZSBvbGQgdGVzdHMgaW4gZmFzdC9mb3JtcyB3aGljaCB1c2VkIGxheW91dFRlc3RDb250
cm9sbGVyLmFkZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWcKKyAgICAgICAgYW5kIGhhdmUgYWRkZWQg
YSBuZXcgdGVzdCBpbiBlZGl0aW5nL3Bhc3RlYm9hcmQvICh3aGVyZSBhbGwgdGhlIG90aGVyIGRy
YWctZHJvcCB0ZXN0cyBhcmUpCisgICAgICAgIHdoaWNoIHRlc3RzIG1vcmUgdGhhbiB0aGUgcHJl
dmlvdXMgdHdvIHRlc3RzIGRpZC4KKworICAgICAgICBNYWMgd2FzIHRoZSBvbmx5IHBsYXRmb3Jt
IHJ1bm5pbmcgdGhlIG9sZCBsYXlvdXRUZXN0Q29udHJvbGxlci5hZGRGaWxlVG9QYXN0ZWJvYXJk
T25EcmFnIHRlc3RzCisgICAgICAgIEkndmUgdXBkYXRlZCBhbGwgdGhlIFNraXBwZWQgZmlsZXMg
dG8gc2tpcCB0aGlzIG5ldyB0ZXN0IGluc3RlYWQuCisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3Rl
Ym9hcmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3Jlc291cmNlcy9GaWxlIFdpdGggU3Bh
Y2VzISBGb3IgRHJhZ2dpbmc/LmdpZjogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvcmVzb3VyY2VzL2FwcGxlLmdpZi4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvcmVz
b3VyY2VzL2FwcGxlLmdpZjogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvcmVz
b3VyY2VzL2FwcGxlLmdpZi4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvcmVzb3VyY2Vz
L2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmpzOiBBZGRlZC4KKyAgICAgICAgKG1vdmVNb3VzZVRv
Q2VudGVyT2ZFbGVtZW50KToKKyAgICAgICAgKGRyYWdGaWxlc09udG9JbnB1dCk6CisgICAgICAg
IChmaWxlTGlzdFNob3VsZEJlKToKKyAgICAgICAgKGZpbGVzU2hvdWxkQmUpOgorICAgICAgICAo
ZHJhZ2dpbmdQYXRoc1Nob3VsZFJlc3VsdEluRmlsZXMpOgorICAgICAgICAocnVuVGVzdCk6Cisg
ICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3Jlc291cmNlcy9tb3ppbGxhLmdpZjogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL21vemlsbGEuZ2lmLgorICAgICAg
ICAqIGZhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZGlzYWJsZWQtZmlsZS1pbnB1dC1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9kcmFnZ2luZy10by1kaXNhYmxlZC1m
aWxlLWlucHV0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9kcmFnZ2luZy10
by1maWxlLWlucHV0LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1z
L2RyYWdnaW5nLXRvLWZpbGUtaW5wdXQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorICAgICAgICAq
IHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorCiAyMDA5LTA1LTE4ICBEYXZpZCBLaWx6ZXIgIDxkZGtp
bHplckBhcHBsZS5jb20+CiAKICAgICAgICAgQnVnIDIwNjUyOiBXZWJLaXQgZG9lc24ndCBkaXNw
bGF5IGZhdmljb25zIHdpdGggTUlNRSB0eXBlIGltYWdlL3ZuZC5taWNyb3NvZnQuaWNvbgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMt
YWNjZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9maWxl
LWlucHV0LWZpbGVzLWFjY2Vzcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNWZhNzQzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvcGFzdGVib2FyZC9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1NCBAQAorVGVzdHMgZm9yIG11bHRpLWZpbGUgZHJhZyBvbnRvIGZpbGUgaW5wdXQgZWxl
bWVudHMgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTg2Mgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRHJhZ2dpbmcgdG8gYSBkaXNhYmxlZCBm
aWxlIGlucHV0IGNvbnRyb2w6CitQQVNTIGZpbGVJbnB1dC52YWx1ZSBpcyAiIgorUEFTUyBmaWxl
SW5wdXQuZmlsZXMubGVuZ3RoIGlzIDAKK0RyYWdnaW5nIGEgc2luZ2xlIChub24tZXhpc3RhbnQp
IGZpbGUgdG8gYSBmaWxlIGlucHV0IGNvbnRyb2w6CitQQVNTIGZpbGVJbnB1dC52YWx1ZSBpcyAi
RFJURmFrZUZpbGUiCitQQVNTIGZpbGVJbnB1dC5maWxlcy5sZW5ndGggaXMgMQorUEFTUyBmaWxl
SW5wdXQuZmlsZXNbMF0uZmlsZU5hbWUgaXMgIkRSVEZha2VGaWxlIgorUEFTUyBmaWxlSW5wdXQu
ZmlsZXNbMF0uZmlsZVNpemUgaXMgMAorRHJhZ2dpbmcgYSByZWFsIGZpbGUgdG8gYSBmaWxlIGlu
cHV0IGNvbnRyb2w6CitQQVNTIGZpbGVJbnB1dC52YWx1ZSBpcyAiYXBwbGUuZ2lmIgorUEFTUyBm
aWxlSW5wdXQuZmlsZXMubGVuZ3RoIGlzIDEKK1BBU1MgZmlsZUlucHV0LmZpbGVzWzBdLmZpbGVO
YW1lIGlzICJhcHBsZS5naWYiCitQQVNTIGZpbGVJbnB1dC5maWxlc1swXS5maWxlU2l6ZSBpcyAx
NDc2CitEcmFnZ2luZyBhIGZpbGUgd2l0aCBVUkwgZW5jb2RlZCBjaGFyYWN0ZXJzIHRvIGEgZmls
ZSBpbnB1dCBjb250cm9sOgorUEFTUyBmaWxlSW5wdXQudmFsdWUgaXMgIkZpbGUgV2l0aCBTcGFj
ZXMhIEZvciBEcsOkZ2dpbmc/LmdpZiIKK1BBU1MgZmlsZUlucHV0LmZpbGVzLmxlbmd0aCBpcyAx
CitQQVNTIGZpbGVJbnB1dC5maWxlc1swXS5maWxlTmFtZSBpcyAiRmlsZSBXaXRoIFNwYWNlcyEg
Rm9yIERyw6RnZ2luZz8uZ2lmIgorUEFTUyBmaWxlSW5wdXQuZmlsZXNbMF0uZmlsZVNpemUgaXMg
MTQ3NgorRHJhZ2dpbmcgYSBkaXJlY3Rvcnkgb250byBhbiBmaWxlIGlucHV0IGNvbnRyb2w6CitG
QUlMIGZpbGVJbnB1dC52YWx1ZSBzaG91bGQgYmUgLiBXYXMgZGlyZWN0b3J5LWZvci1kcmFnZ2lu
Zy4KK0ZBSUwgZmlsZUlucHV0LmZpbGVzLmxlbmd0aCBzaG91bGQgYmUgMC4gV2FzIDEuCitEcmFn
Z2luZyB0d28gZmlsZXMgdG8gYSBzaW5nbGUtZmlsZSBpbnB1dCBjb250cm9sOgorUEFTUyBmaWxl
SW5wdXQudmFsdWUgaXMgImFwcGxlLmdpZiIKK1BBU1MgZmlsZUlucHV0LmZpbGVzLmxlbmd0aCBp
cyAxCitQQVNTIGZpbGVJbnB1dC5maWxlc1swXS5maWxlTmFtZSBpcyAiYXBwbGUuZ2lmIgorUEFT
UyBmaWxlSW5wdXQuZmlsZXNbMF0uZmlsZVNpemUgaXMgMTQ3NgorRHJhZ2dpbmcgYSBmaWxlIGFu
ZCBhIGRpcmVjdG9yeSBvbnRvIGEgc2luZ2xlLWZpbGUgaW5wdXQgY29udHJvbDoKK0ZBSUwgZmls
ZUlucHV0LnZhbHVlIHNob3VsZCBiZSAuIFdhcyBhcHBsZS5naWYuCitGQUlMIGZpbGVJbnB1dC5m
aWxlcy5sZW5ndGggc2hvdWxkIGJlIDAuIFdhcyAxLgorRHJhZ2dpbmcgYSBkaXJlY3RvcnkgYW5k
IGEgZmlsZSBvbnRvIGEgc2luZ2xlLWZpbGUgaW5wdXQgY29udHJvbDoKK0ZBSUwgZmlsZUlucHV0
LnZhbHVlIHNob3VsZCBiZSAuIFdhcyBkaXJlY3RvcnktZm9yLWRyYWdnaW5nLgorRkFJTCBmaWxl
SW5wdXQuZmlsZXMubGVuZ3RoIHNob3VsZCBiZSAwLiBXYXMgMS4KK0RyYWdnaW5nIHR3byBmaWxl
cyB0byBhIG11bHRpLWZpbGUgaW5wdXQgY29udHJvbDoKK1BBU1MgZmlsZUlucHV0LnZhbHVlIGlz
ICJhcHBsZS5naWYiCitQQVNTIGZpbGVJbnB1dC5maWxlcy5sZW5ndGggaXMgMgorUEFTUyBmaWxl
SW5wdXQuZmlsZXNbMF0uZmlsZU5hbWUgaXMgImFwcGxlLmdpZiIKK1BBU1MgZmlsZUlucHV0LmZp
bGVzWzBdLmZpbGVTaXplIGlzIDE0NzYKK1BBU1MgZmlsZUlucHV0LmZpbGVzWzFdLmZpbGVOYW1l
IGlzICJtb3ppbGxhLmdpZiIKK1BBU1MgZmlsZUlucHV0LmZpbGVzWzFdLmZpbGVTaXplIGlzIDI1
OTMKK0RyYWdnaW5nIGEgZmlsZSBhbmQgYSBkaXJlY3Rvcnkgb250byBhIG11dGxpLWZpbGUgaW5w
dXQgY29udHJvbDoKK1BBU1MgZmlsZUlucHV0LnZhbHVlIGlzICIiCitQQVNTIGZpbGVJbnB1dC5m
aWxlcy5sZW5ndGggaXMgMAorRHJhZ2dpbmcgYSBkaXJlY3RvcnkgYW5kIGEgZmlsZSBvbnRvIGEg
bXV0bGktZmlsZSBpbnB1dCBjb250cm9sOgorUEFTUyBmaWxlSW5wdXQudmFsdWUgaXMgIiIKK1BB
U1MgZmlsZUlucHV0LmZpbGVzLmxlbmd0aCBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmh0bWwgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3Bhc3RlYm9hcmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODYwM2NmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmh0bWwK
QEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgImEvTGF5b3V0VGVz
dHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Jlc291cmNlcy9GaWxlIFdpdGggU3BhY2VzISBGb3IgRHJh
XDMxNFwyMTBnZ2luZz8uZ2lmIiAiYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcmVz
b3VyY2VzL0ZpbGUgV2l0aCBTcGFjZXMhIEZvciBEcmFcMzE0XDIxMGdnaW5nPy5naWYiCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1ODQ0YzgKQmluYXJ5IGZpbGVzIC9kZXYv
bnVsbCBhbmQgImIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Jlc291cmNlcy9GaWxl
IFdpdGggU3BhY2VzISBGb3IgRHJhXDMxNFwyMTBnZ2luZz8uZ2lmIiBkaWZmZXIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9yZXNvdXJjZXMvYXBwbGUuZ2lmIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Jlc291cmNlcy9hcHBsZS5naWYKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTU4NDRjOApCaW5hcnkgZmlsZXMgL2Rldi9u
dWxsIGFuZCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9yZXNvdXJjZXMvYXBwbGUu
Z2lmIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Jl
c291cmNlcy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5qcyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9yZXNvdXJjZXMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTIzMWYwMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9yZXNvdXJjZXMvZmlsZS1pbnB1dC1maWxlcy1h
Y2Nlc3MuanMKQEAgLTAsMCArMSwxMjEgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0cyBmb3IgbXVsdGkt
ZmlsZSBkcmFnIG9udG8gZmlsZSBpbnB1dCBlbGVtZW50cyBmb3IgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI1ODYyIik7CisKK3ZhciBmaWxlSW5wdXQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOworZmlsZUlucHV0LnR5cGUgPSAnZmlsZSc7CitmaWxl
SW5wdXQuc3R5bGUud2lkdGggPSAiMTAwJSI7IC8vIFNvIHRoYXQgYW55IG1hbnVhbCB0ZXN0aW5n
IHdpbGwgc2hvdyBmdWxsIGZpbGUgbmFtZXMKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZmls
ZUlucHV0KTsKKworZnVuY3Rpb24gbW92ZU1vdXNlVG9DZW50ZXJPZkVsZW1lbnQoZWxlbWVudCkK
K3sKKyAgICB2YXIgY2VudGVyWCA9IGZpbGVJbnB1dC5vZmZzZXRMZWZ0ICsgZmlsZUlucHV0Lm9m
ZnNldFdpZHRoIC8gMjsKKyAgICB2YXIgY2VudGVyWSA9IGZpbGVJbnB1dC5vZmZzZXRUb3AgKyBm
aWxlSW5wdXQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhj
ZW50ZXJYLCBjZW50ZXJZKTsKK30KKworZnVuY3Rpb24gZHJhZ0ZpbGVzT250b0lucHV0KGZpbGVz
KSB7CisgICAgZmlsZUlucHV0LnZhbHVlID0gIiI7IC8vIENsZWFyIHRoZSA8aW5wdXQ+CisKKyAg
ICBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoZmlsZXMpOworICAgIG1vdmVNb3VzZVRv
Q2VudGVyT2ZFbGVtZW50KGZpbGVJbnB1dCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwor
fQorCitmdW5jdGlvbiBmaWxlTGlzdFNob3VsZEJlKGZpbGVMaXN0U3RyaW5nLCBmaWxlc0FycmF5
KQoreworICAgIHNob3VsZEJlKGZpbGVMaXN0U3RyaW5nICsgIi5sZW5ndGgiLCAiIiArIGZpbGVz
QXJyYXkubGVuZ3RoKTsKKyAgICBmb3IgKHZhciB4ID0gMDsgeCA8IGZpbGVzQXJyYXkubGVuZ3Ro
OyB4KyspIHsKKyAgICAgICAgdmFyIGZpbGVWYWx1ZVN0cmluZyA9IGZpbGVMaXN0U3RyaW5nICsg
IlsiICsgeCArICJdIjsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKGZpbGVWYWx1ZVN0
cmluZyArICIuZmlsZU5hbWUiLCBmaWxlc0FycmF5W3hdWyduYW1lJ10pOworICAgICAgICBzaG91
bGRCZShmaWxlVmFsdWVTdHJpbmcgKyAiLmZpbGVTaXplIiwgIiIgKyBmaWxlc0FycmF5W3hdWydz
aXplJ10pOworICAgIH0KK30KKworZnVuY3Rpb24gZmlsZXNTaG91bGRCZShmaWxlc0FycmF5KQor
eworICAgIGZpbGVMaXN0U2hvdWxkQmUoImZpbGVJbnB1dC5maWxlcyIsIGZpbGVzQXJyYXkpOwor
fQorCitmdW5jdGlvbiBkcmFnZ2luZ1BhdGhzU2hvdWxkUmVzdWx0SW5GaWxlcyhwYXRoc0FycmF5
LCBmaWxlc0FycmF5KQoreworICAgIGRyYWdGaWxlc09udG9JbnB1dChwYXRoc0FycmF5KTsKKyAg
ICAvLyBXZWJLaXQgc2VlbXMgdG8gYWx3YXlzIHRha2UgdGhlIGZpcnN0IGZpbGUgaW4gdGhlIGRy
YWdnZWQgbGlzdCBhcyAudmFsdWU6CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJmaWxlSW5w
dXQudmFsdWUiLCBmaWxlc0FycmF5WzBdID8gZmlsZXNBcnJheVswXVsnbmFtZSddIDogJycpOwor
ICAgIGZpbGVzU2hvdWxkQmUoZmlsZXNBcnJheSk7Cit9CisKK2Z1bmN0aW9uIHRlc3REcmFnZ2lu
Z0ZpbGVzKGZpbGVzQXJyYXkpCit7CisgICAgLy8gV2UgY291bGQgbWFrZSBhIHdheSB0byBwYXJz
ZSB0aGUgZmlsZW5hbWUgZnJvbSB0aGUgcGF0aCwgYW5kIHRoZW4gb25seSBuZWVkIHRvIHBhc3MK
KyAgICAvLyB0aGUgcGF0aCBpbiB0aGUgZmlsZXNBcnJheS4KKyAgICB2YXIgcGF0aHNPbmx5ID0g
ZmlsZXNBcnJheS5tYXAoZnVuY3Rpb24oZmlsZVNwZWMpIHsgcmV0dXJuIGZpbGVTcGVjWydwYXRo
J107IH0pOworICAgIGRyYWdnaW5nUGF0aHNTaG91bGRSZXN1bHRJbkZpbGVzKHBhdGhzT25seSwg
ZmlsZXNBcnJheSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RPcmRlcmVkRHJhZ2dpbmdXaXRoRGlyZWN0
b3J5KCkKK3sKKyAgICB2YXIgaW5wdXRUeXBlID0gZmlsZUlucHV0Lm11bHRpcGxlID8gIm11dGxp
LWZpbGUiIDogInNpbmdsZS1maWxlIjsKKworICAgIC8vIE5vdGU6IFRoZSBvcmRlciBvZiBzZWxl
Y3Rpb24gaW4gdGhlIEZpbmRlciBjaGFuZ2VzIHRoZSBvcmRlciBvZiBmaWxlIHBhdGhzIGluIHRo
ZSBwYXN0ZWJvYXJkCisgICAgLy8gdGh1cyBpdCdzIGltcG9ydGFudCB0aGF0IHdlIHRlc3QgZGlm
ZmVyZW50IG9yZGVycyBoZXJlIGFzIHdlbGwgKGF0IGxlYXN0IG9uIHRoZSBNYWMpCisgICAgZGVi
dWcoIkRyYWdnaW5nIGEgZmlsZSBhbmQgYSBkaXJlY3Rvcnkgb250byBhICIgKyBpbnB1dFR5cGUg
KyAiIGlucHV0IGNvbnRyb2w6IikKKyAgICBkcmFnZ2luZ1BhdGhzU2hvdWxkUmVzdWx0SW5GaWxl
cyhbJ3Jlc291cmNlcy9hcHBsZS5naWYnLCAncmVzb3VyY2VzL2RpcmVjdG9yeS1mb3ItZHJhZ2dp
bmcnXSwgW10pOworCisgICAgZGVidWcoIkRyYWdnaW5nIGEgZGlyZWN0b3J5IGFuZCBhIGZpbGUg
b250byBhICIgICsgaW5wdXRUeXBlICsgIiBpbnB1dCBjb250cm9sOiIpCisgICAgZHJhZ2dpbmdQ
YXRoc1Nob3VsZFJlc3VsdEluRmlsZXMoWydyZXNvdXJjZXMvZGlyZWN0b3J5LWZvci1kcmFnZ2lu
ZycsICdyZXNvdXJjZXMvYXBwbGUuZ2lmJ10sIFtdKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgp
Cit7CisgICAgZGVidWcoIkRyYWdnaW5nIHRvIGEgZGlzYWJsZWQgZmlsZSBpbnB1dCBjb250cm9s
OiIpCisgICAgZmlsZUlucHV0LmRpc2FibGVkID0gdHJ1ZTsKKyAgICBkcmFnZ2luZ1BhdGhzU2hv
dWxkUmVzdWx0SW5GaWxlcyhbJ0RSVEZha2VGaWxlJ10sIFtdKQorICAgIGZpbGVJbnB1dC5kaXNh
YmxlZCA9IGZhbHNlOworCisgICAgZGVidWcoIkRyYWdnaW5nIGEgc2luZ2xlIChub24tZXhpc3Rh
bnQpIGZpbGUgdG8gYSBmaWxlIGlucHV0IGNvbnRyb2w6IikKKyAgICB0ZXN0RHJhZ2dpbmdGaWxl
cyhbCisgICAgICAgIHsgJ3BhdGgnOiAnRFJURmFrZUZpbGUnLCAnbmFtZScgOiAnRFJURmFrZUZp
bGUnLCAnc2l6ZScgOiAwIH0KKyAgICBdKTsKKworICAgIGRlYnVnKCJEcmFnZ2luZyBhIHJlYWwg
ZmlsZSB0byBhIGZpbGUgaW5wdXQgY29udHJvbDoiKQorICAgIHRlc3REcmFnZ2luZ0ZpbGVzKFsK
KyAgICAgICAgeyAncGF0aCc6ICdyZXNvdXJjZXMvYXBwbGUuZ2lmJywgJ25hbWUnIDogJ2FwcGxl
LmdpZicsICdzaXplJyA6IDE0NzYgfQorICAgIF0pOworCisgICAgZGVidWcoIkRyYWdnaW5nIGEg
ZmlsZSB3aXRoIFVSTCBlbmNvZGVkIGNoYXJhY3RlcnMgdG8gYSBmaWxlIGlucHV0IGNvbnRyb2w6
IikKKyAgICB0ZXN0RHJhZ2dpbmdGaWxlcyhbCisgICAgICAgIHsgJ3BhdGgnOiAncmVzb3VyY2Vz
L0ZpbGUgV2l0aCBTcGFjZXMhIEZvciBEcuRnZ2luZz8uZ2lmJywgJ25hbWUnIDogJ0ZpbGUgV2l0
aCBTcGFjZXMhIEZvciBEcuRnZ2luZz8uZ2lmJywgJ3NpemUnIDogMTQ3NiB9CisgICAgXSk7CisK
KyAgICAvLyBEaXJlY3RvcnkgZHJhZ2dpbmcgYmVoYXZpb3IgaXMgY292ZXJlZCBieQorICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTg1MgorICAgIGRlYnVn
KCJEcmFnZ2luZyBhIGRpcmVjdG9yeSBvbnRvIGFuIGZpbGUgaW5wdXQgY29udHJvbDoiKQorICAg
IGRyYWdnaW5nUGF0aHNTaG91bGRSZXN1bHRJbkZpbGVzKFsncmVzb3VyY2VzL2RpcmVjdG9yeS1m
b3ItZHJhZ2dpbmcnXSwgW10pOworCisgICAgLy8gRklYTUU6IEN1cnJlbnQgYmVoYXZpb3IgaXMg
dG8gdGFrZSB0aGUgZmlyc3QgZmlsZSwgYnV0IEkgZXhwZWN0IHRoYXQncworICAgIC8vIGNvbmZ1
c2luZyB0byB0aGUgdXNlci4gIFdlIHNob3VsZCBjaGFuZ2UgdGhpcyB0byBleHBlY3QgZHJhZyBm
YWlsdXJlLgorICAgIGRlYnVnKCJEcmFnZ2luZyB0d28gZmlsZXMgdG8gYSBzaW5nbGUtZmlsZSBp
bnB1dCBjb250cm9sOiIpCisgICAgZHJhZ2dpbmdQYXRoc1Nob3VsZFJlc3VsdEluRmlsZXMoWydy
ZXNvdXJjZXMvYXBwbGUuZ2lmJywgJ3Jlc291cmNlcy9tb3ppbGxhLmdpZiddLCBbeyAnbmFtZScg
OiAnYXBwbGUuZ2lmJywgJ3NpemUnIDogMTQ3NiB9XSk7CisKKyAgICB0ZXN0T3JkZXJlZERyYWdn
aW5nV2l0aERpcmVjdG9yeSgpOworCisgICAgZmlsZUlucHV0Lm11bHRpcGxlID0gdHJ1ZTsKKwor
ICAgIGRlYnVnKCJEcmFnZ2luZyB0d28gZmlsZXMgdG8gYSBtdWx0aS1maWxlIGlucHV0IGNvbnRy
b2w6IikKKyAgICB0ZXN0RHJhZ2dpbmdGaWxlcyhbCisgICAgICAgIHsgJ3BhdGgnOiAncmVzb3Vy
Y2VzL2FwcGxlLmdpZicsICduYW1lJyA6ICdhcHBsZS5naWYnLCAnc2l6ZScgOiAxNDc2IH0sCisg
ICAgICAgIHsgJ3BhdGgnOiAncmVzb3VyY2VzL21vemlsbGEuZ2lmJywgJ25hbWUnIDogJ21vemls
bGEuZ2lmJywgJ3NpemUnIDogMjU5MyB9CisgICAgXSk7CisKKyAgICB0ZXN0T3JkZXJlZERyYWdn
aW5nV2l0aERpcmVjdG9yeSgpOworfQorCitpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAg
cnVuVGVzdCgpOworICAgIC8vIENsZWFuIHVwIGFmdGVyIG91cnNlbHZlcworICAgIGZpbGVJbnB1
dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGZpbGVJbnB1dCk7Cit9IGVsc2UgeworICAgIHRlc3RG
YWlsZWQoIlRoaXMgdGVzdCBpcyBub3QgaW50ZXJhY3RpdmUsIHBsZWFzZSBydW4gdXNpbmcgRHVt
cFJlbmRlclRyZWUiKTsKK30KKworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9yZXNvdXJjZXMvbW96aWxs
YS5naWYgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcmVzb3VyY2VzL21vemlsbGEu
Z2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwOWIzMGUKQmluYXJ5IGZp
bGVzIC9kZXYvbnVsbCBhbmQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcmVzb3Vy
Y2VzL21vemlsbGEuZ2lmIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9kcmFnZ2luZy10by1kaXNhYmxlZC1maWxlLWlucHV0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZGlzYWJsZWQtZmlsZS1pbnB1dC1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUyOGJlMmMuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kcmFnZ2luZy10by1kaXNhYmxlZC1maWxlLWlucHV0LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotVGhpcyB0ZXN0cyB0aGF0
IHlvdSBjYW4ndCBkcmFnIGEgZmlsZSBvbnRvIGEgZGlzYWJsZWQgPGlucHV0IHR5cGU9ImZpbGUi
PgotCi1UbyB0ZXN0IG1hbnVhbGx5IHlvdSBuZWVkIHRvIGF0dGVtcHQgdG8gZHJhZyBhIGZpbGUg
b250byB0aGUgZmlsZSBpbnB1dCBiZWxvdwotCi0KLQotUEFTUzogQ291bGQgbm90IGRyb3AgZmls
ZSBvbiB0byB0aGUgZGlzYWJsZWQgZmlsZSBpbnB1dAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2RyYWdnaW5nLXRvLWRpc2FibGVkLWZpbGUtaW5wdXQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZGlzYWJsZWQtZmlsZS1pbnB1dC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NzJkMDg5Li4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZGlzYWJsZWQtZmlsZS1pbnB1dC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotPHA+VGhpcyB0ZXN0cyB0aGF0IHlvdSBjYW4n
dCBkcmFnIGEgZmlsZSBvbnRvIGEgZGlzYWJsZWQgJmx0O2lucHV0IHR5cGU9ImZpbGUiJmd0Ozwv
cD4KLTxwPlRvIHRlc3QgbWFudWFsbHkgeW91IG5lZWQgdG8gYXR0ZW1wdCB0byBkcmFnIGEgZmls
ZSBvbnRvIHRoZSBmaWxlIGlucHV0IGJlbG93PC9wPgotPGlucHV0IGlkPSJ0YXJnZXQiIHR5cGU9
ImZpbGUiIGRpc2FibGVkLz48YnIgLz4KLTxpbnB1dCBpZD0iZHJhZ1N0YXJ0IiB0eXBlPSJ0ZXh0
IiB2YWx1ZT0iVGhpcyBpbnB1dCBmaWVsZCBpcyBvbmx5IHByZXNlbnQgdG8gYWxsb3cgRFJUIHRv
IGluaXRpYXRlIGEgZHJhZyI+PC9pbnB1dD48YnIgLz4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJl
PgotCi0KLTxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gZGVidWcoc3RyKSB7Ci0gICAgICAgIHZhciBj
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKQotICAgICAgICBjLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0ciArICdcbicpKTsKLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICB2YXIgZHJhZ1N0YXJ0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImRyYWdTdGFydCIpOwotICAgICAgICB2YXIgeCA9IGRyYWdTdGFydC5vZmZz
ZXRMZWZ0ICsgZHJhZ1N0YXJ0Lm9mZnNldFdpZHRoIC8gMjsKLSAgICAgICAgdmFyIHkgPSBkcmFn
U3RhcnQub2Zmc2V0VG9wICsgZHJhZ1N0YXJ0Lm9mZnNldEhlaWdodCAvIDI7Ci0KLSAgICAgICAg
dmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKLSAgICAgICAg
dmFyIHR4ID0gdGFyZ2V0Lm9mZnNldExlZnQgKyB0YXJnZXQub2Zmc2V0V2lkdGggLyAyOwotICAg
ICAgICB2YXIgdHkgPSB0YXJnZXQub2Zmc2V0VG9wICsgdGFyZ2V0Lm9mZnNldEhlaWdodCAvIDI7
Ci0gICAgICAgIAotICAgICAgICBkcmFnU3RhcnQuc2VsZWN0KCk7Ci0KLSAgICAgICAgdmFyIGlu
aXRpYWxWYWx1ZSA9IHRhcmdldC52YWx1ZTsKLSAgICAgICAgCi0gICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKHgsIHkpOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAg
ICAgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoNDAwKTsKLSAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8odHgsIHR5KTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOyAgICAg
ICAKLSAgICAgICAgIAotICAgICAgICB2YXIgZmluYWxWYWx1ZSA9IHRhcmdldC52YWx1ZTsKLSAg
ICAgICAgaWYgKGluaXRpYWxWYWx1ZSA9PSBmaW5hbFZhbHVlKQotICAgICAgICAgICAgZGVidWco
IlBBU1M6IENvdWxkIG5vdCBkcm9wIGZpbGUgb24gdG8gdGhlIGRpc2FibGVkIGZpbGUgaW5wdXQi
KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZGVidWcoIkZBSUw6IERyb3BwZWQgZmlsZSBv
biB0byBkaXNhYmxlZCBmaWxlIGlucHV0Iik7Ci0gICAgfQotCi0gICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5hZGRGaWxl
VG9QYXN0ZWJvYXJkT25EcmFnKCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKLSAgICAgICAgcnVuVGVzdCgpOwotICAgIH0KLSAgICAKLSAgICAvLyByZW1vdmUg
ZHJhZyBzb3VyY2UKLSAgICB2YXIgZHJhZ1N0YXJ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImRyYWdTdGFydCIpOwotICAgIGRyYWdTdGFydC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGRyYWdT
dGFydCk7Ci0gICAgCi08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvZHJhZ2dpbmctdG8tZmlsZS1pbnB1dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2RyYWdnaW5nLXRvLWZpbGUtaW5wdXQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBiZTkxMDcxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvZHJhZ2dpbmctdG8tZmlsZS1pbnB1dC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSw5ICswLDAgQEAKLVRoaXMgdGVzdHMgdGhlIGFiaWxpdHkgdG8gZHJhZyBhIGZpbGUgb250
byA8aW5wdXQgdHlwZT0iZmlsZSI+Ci0KLVRvIHRlc3QgbWFudWFsbHkgeW91IG5lZWQgdG8gYXR0
ZW1wdCB0byBkcmFnIGEgZmlsZSBvbnRvIHRoZSBmaWxlIGlucHV0IGJlbG93Ci0KLQotCi1QQVNT
OiBTdWNjZXNzZnVsbHkgZHJvcHBlZCBmaWxlIG9uIHRvIGZpbGUgaW5wdXQKLVBBU1M6IEZpbmlz
aGVkIHRlc3QKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kcmFnZ2luZy10
by1maWxlLWlucHV0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RyYWdnaW5nLXRvLWZp
bGUtaW5wdXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDhkMmNkNy4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RyYWdnaW5nLXRvLWZpbGUtaW5wdXQu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLTxwPlRoaXMgdGVzdHMgdGhlIGFi
aWxpdHkgdG8gZHJhZyBhIGZpbGUgb250byAmbHQ7aW5wdXQgdHlwZT0iZmlsZSImZ3Q7PC9wPgot
PHA+VG8gdGVzdCBtYW51YWxseSB5b3UgbmVlZCB0byBhdHRlbXB0IHRvIGRyYWcgYSBmaWxlIG9u
dG8gdGhlIGZpbGUgaW5wdXQgYmVsb3c8L3A+Ci08aW5wdXQgaWQ9InRhcmdldCIgdHlwZT0iZmls
ZSIvPjxiciAvPgotPGlucHV0IGlkPSJkcmFnU3RhcnQiIHR5cGU9InRleHQiIHZhbHVlPSJUaGlz
IGlucHV0IGZpZWxkIGlzIG9ubHkgcHJlc2VudCB0byBhbGxvdyBEUlQgdG8gaW5pdGlhdGUgYSBk
cmFnIj48L2lucHV0PjxiciAvPgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci0KLQotPHNjcmlw
dD4KLSAgICBmdW5jdGlvbiBkZWJ1ZyhzdHIpIHsKLSAgICAgICAgdmFyIGMgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnY29uc29sZScpCi0gICAgICAgIGMuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoc3RyICsgJ1xuJykpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7Ci0gICAgICAgIHZhciBkcmFnU3RhcnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
ZHJhZ1N0YXJ0Iik7Ci0gICAgICAgIHZhciB4ID0gZHJhZ1N0YXJ0Lm9mZnNldExlZnQgKyBkcmFn
U3RhcnQub2Zmc2V0V2lkdGggLyAyOwotICAgICAgICB2YXIgeSA9IGRyYWdTdGFydC5vZmZzZXRU
b3AgKyBkcmFnU3RhcnQub2Zmc2V0SGVpZ2h0IC8gMjsKLQotICAgICAgICB2YXIgdGFyZ2V0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwotICAgICAgICB2YXIgdHggPSB0YXJn
ZXQub2Zmc2V0TGVmdCArIHRhcmdldC5vZmZzZXRXaWR0aCAvIDI7Ci0gICAgICAgIHZhciB0eSA9
IHRhcmdldC5vZmZzZXRUb3AgKyB0YXJnZXQub2Zmc2V0SGVpZ2h0IC8gMjsKLSAgICAgICAgCi0g
ICAgICAgIGRyYWdTdGFydC5zZWxlY3QoKTsKLQotICAgICAgICB2YXIgaW5pdGlhbFZhbHVlID0g
dGFyZ2V0LnZhbHVlOwotICAgICAgICAKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
eCwgeSk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwotICAgICAgICBldmVudFNl
bmRlci5sZWFwRm9yd2FyZCg0MDApOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh0
eCwgdHkpOwotICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7ICAgICAgIAotICAgICAgICAg
Ci0gICAgICAgIHZhciBmaW5hbFZhbHVlID0gdGFyZ2V0LnZhbHVlOwotICAgICAgICBpZiAoaW5p
dGlhbFZhbHVlID09IGZpbmFsVmFsdWUgfHwgZmluYWxWYWx1ZSAhPSAiRFJURmFrZUZpbGUiKQot
ICAgICAgICAgICAgZGVidWcoIkZBSUw6IENvdWxkIG5vdCBkcm9wIGZpbGUgb24gdG8gZmlsZSBp
bnB1dCIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBkZWJ1ZygiUEFTUzogU3VjY2Vzc2Z1
bGx5IGRyb3BwZWQgZmlsZSBvbiB0byBmaWxlIGlucHV0Iik7Ci0gICAgICAgICAgICAKLSAgICAg
ICAgZGVidWcoIlBBU1M6IEZpbmlzaGVkIHRlc3QiKTsKLSAgICB9Ci0KLSAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFk
ZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWcoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwotICAgICAgICBydW5UZXN0KCk7Ci0gICAgfQotICAgIAotICAgIC8vIHJl
bW92ZSBkcmFnIHNvdXJjZQotICAgIHZhciBkcmFnU3RhcnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZHJhZ1N0YXJ0Iik7Ci0gICAgZHJhZ1N0YXJ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQo
ZHJhZ1N0YXJ0KTsKLSAgICAKLTwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggMGRhYzIzMy4uN2EyZGEzYyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1NraXBwZWQKQEAgLTEyMzAsNiArMTIzMCw3IEBAIGVkaXRpbmcvcGFzdGVib2Fy
ZC9kcm9wLXRleHQtd2l0aG91dC1zZWxlY3Rpb24uaHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2Vt
YWNzLWNudGwteS0wMDEuaHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2VtYWNzLWN0cmwtYS1rLXku
aHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2VtYWNzLWN0cmwtay15LTAwMS5odG1sCitlZGl0aW5n
L3Bhc3RlYm9hcmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuaHRtbAogZWRpdGluZy9wYXN0ZWJv
YXJkL2lubmVyVGV4dC1pbmxpbmUtdGFibGUuaHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2lucHV0
LWZpZWxkLTEuaHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2ludGVyY2hhbmdlLW5ld2xpbmUtMS5o
dG1sCkBAIC0xNzE0LDggKzE3MTUsNiBAQCBmYXN0L2Zvcm1zL2NoZWNrLWJveC1lbnRlci1rZXku
aHRtbAogZmFzdC9mb3Jtcy9kaXNwbGF5LW5vbmUtaW4tb25jaGFuZ2Uta2V5Ym9hcmQuaHRtbAog
ZmFzdC9mb3Jtcy9kcmFnLWludG8tdGV4dGFyZWEuaHRtbAogZmFzdC9mb3Jtcy9kcmFnLW91dC1v
Zi10ZXh0YXJlYS5odG1sCi1mYXN0L2Zvcm1zL2RyYWdnaW5nLXRvLWRpc2FibGVkLWZpbGUtaW5w
dXQuaHRtbAotZmFzdC9mb3Jtcy9kcmFnZ2luZy10by1maWxlLWlucHV0Lmh0bWwKIGZhc3QvZm9y
bXMvZW50ZXItY2xpY2tzLWJ1dHRvbnMuaHRtbAogZmFzdC9mb3Jtcy9mb2N1czIuaHRtbAogZmFz
dC9mb3Jtcy9mb2N1cy1jb250cm9sLXRvLXBhZ2UuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQK
aW5kZXggMDdkMDY2NS4uODgyMDgxOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC0xMCw2
ICsxMCw5IEBAIGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NraW5nLWNsaWNrLWluLWlmcmFtZS5odG1s
CiAKICMgLS0tLS0tLS0gY3Jhc2hlcwogCisjIC0tLS0tLS0gbWlzc2luZyBldmVudFNlbmRlci5i
ZWdpbkRyYWdXaXRoRmlsZXMKK2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlucHV0LWZpbGVzLWFj
Y2Vzcy5odG1sCisKICMgLS0tLS0tLSBmYWlsaW5nIGVkaXRpbmcgdGVzdHMKIGVkaXRpbmcvZGVs
ZXRpbmcvZGVsZXRlLXRvLWVuZC1vZi1wYXJhZ3JhcGguaHRtbAogZWRpdGluZy9leGVjQ29tbWFu
ZC9lbmFibGluZy1hbmQtc2VsZWN0aW9uLTIuaHRtbApAQCAtMTYyLDcgKzE2NSw2IEBAIGZhc3Qv
Zm9ybXMvYnV0dG9uLWNhbm5vdC1iZS1uZXN0ZWQuaHRtbAogZmFzdC9mb3Jtcy9idXR0b24tc3Bh
Y2ViYXItY2xpY2suaHRtbAogZmFzdC9mb3Jtcy9jb250cm9sLXJlc3RyaWN0LWxpbmUtaGVpZ2h0
Lmh0bWwKIGZhc3QvZm9ybXMvZHJhZy1pbnRvLXRleHRhcmVhLmh0bWwKLWZhc3QvZm9ybXMvZHJh
Z2dpbmctdG8tZmlsZS1pbnB1dC5odG1sCiBmYXN0L2Zvcm1zL2ZvY3VzLWNvbnRyb2wtdG8tcGFn
ZS5odG1sCiBmYXN0L2Zvcm1zL2ZvY3VzLXNlbGVjdGlvbi1pbnB1dC5odG1sCiBmYXN0L2Zvcm1z
L2ZvY3VzLXNlbGVjdGlvbi10ZXh0YXJlYS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCmlu
ZGV4IDg3OGM2MTguLmRkNDg4YzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCkBAIC0xODEs
OCArMTgxLDggQEAgc3ZnL3dlYmFyY2hpdmUKIHN2Zy9jdXN0b20vaW1hZ2Utd2l0aC1wcmVmaXgt
aW4td2ViYXJjaGl2ZS5zdmcKIGh0dHAvdGVzdHMvd2ViYXJjaGl2ZQogCi0jIDxyZGFyOi8vcHJv
YmxlbS81MjMwMzk2PiBsYXlvdXRUZXN0Q29udHJvbGxlci5hZGRGaWxlVG9QYXN0ZWJvYXJkT25E
cmFnIGlzIHVuaW1wbGVtZW50ZWQKLWZhc3QvZm9ybXMvZHJhZ2dpbmctdG8tZmlsZS1pbnB1dC5o
dG1sCisjIDxyZGFyOi8vcHJvYmxlbS81MjMwMzk2PiBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRo
RmlsZXMgaXMgdW5pbXBsZW1lbnRlZAorZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmls
ZXMtYWNjZXNzLmh0bWwKIAogIyBOZWVkIHRvIGFkZCBmdW5jdGlvbmFsaXR5IHRvIER1bXBSZW5k
ZXJUcmVlIHRvIHRlc3QgSUROIDxyZGFyOi8vcHJvYmxlbS81MzAxOTU0PgogZmFzdC9lbmNvZGlu
Zy9pZG4tc2VjdXJpdHkuaHRtbApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIv
V2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDBjMDI4Y2IuLmRiYjZlZDkgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MyBAQAorMjAwOS0wNS0xOCAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGxh
eW91dFRlc3RDb250cm9sbGVyLmFkZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWcgYW5kIGFkZCBldmVu
dFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI1ODUyCisKKyAgICAgICAgVGhpcyBhbGxvd3MgdXMgdG8gbm93
IHRlc3QgbXVsdGktZmlsZSBmaWxlIGRyYWdzIGluIER1bXBSZW5kZXJUcmVlIHBlcjoKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1ODYyCisKKyAgICAg
ICAgSSByZW1vdmVkIHRoZSBleGlzdGluZyB0ZXN0cyB1c2luZyBhZGRGaWxlVG9QYXN0ZWJvYXJk
T25EcmFnKCkKKyAgICAgICAgYW5kIHJlcGxhY2VkIHRoZW0gd2l0aCBhIG5ldyB0ZXN0IChlZGl0
aW5nL3Bhc3RlYm9hcmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MpCisgICAgICAgIHdoaWNoIGNv
dmVycyBzZXZlcmFsIG1vcmUgZHJhZy1kcm9wIGNhc2VzLgorCisgICAgICAgIEkgYWRkZWQgYSBE
dW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZSBjbGFzcyB0byBhdm9pZAorICAgICAgICB0
aGUgaGFjayBvZiBpZiAoIWRyYWdnaW5nU291cmNlKSBpbiBbRHVtcFJlbmRlclRyZWVEcmFnZ2lu
Z0luZm8gZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrXQorCisgICAgICAgIE5ldyBUZXN0OiBl
ZGl0aW5nL3Bhc3RlYm9hcmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuaHRtbAorCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1Nv
dXJjZS5oOiBBZGRlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZUZp
bGVEcmFnZ2luZ1NvdXJjZS5tOiBBZGRlZC4KKyAgICAgICAgKC1bRHVtcFJlbmRlclRyZWVGaWxl
RHJhZ2dpbmdTb3VyY2UgZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrRm9yTG9jYWw6XSk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAg
KExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNWYWx1ZXMpOiByZW1vdmVkIGFkZEZpbGVUb1Bh
c3RlYm9hcmRPbkRyYWcgc3VwcG9ydAorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0
YXRpY0Z1bmN0aW9ucyk6IHJlbW92ZWQgYWRkRmlsZVRvUGFzdGVib2FyZE9uRHJhZyBzdXBwb3J0
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChydW5U
ZXN0KTogQVNTRVJUIHRoYXQgZHJhZ2dpbmdJbmZvIGhhcyBiZWVuIGNsZWFyZWQKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9tYWMvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5tbToKKyAgICAgICAg
KCtbRXZlbnRTZW5kaW5nQ29udHJvbGxlciBpc1NlbGVjdG9yRXhjbHVkZWRGcm9tV2ViU2NyaXB0
Ol0pOiBTb3J0ZWQgc2VsZWN0b3JzLgorICAgICAgICAoK1tFdmVudFNlbmRpbmdDb250cm9sbGVy
IHdlYlNjcmlwdE5hbWVGb3JTZWxlY3RvcjpdKTogU29ydGVkIHNlbGVjdG9ycy4KKyAgICAgICAg
KC1bRXZlbnRTZW5kaW5nQ29udHJvbGxlciBiZWdpbkRyYWdXaXRoRmlsZXM6XSk6CisgICAgICAg
ICgtW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIgbW91c2VNb3ZlVG9YOlk6XSk6CisgICAgICAgICgt
W0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIga2V5RG93bjp3aXRoTW9kaWZpZXJzOl0pOgorICAgICAg
ICAoLVtFdmVudFNlbmRpbmdDb250cm9sbGVyIGZpcmVLZXlib2FyZEV2ZW50c1RvRWxlbWVudDpd
KTogcmVtb3ZlZCBzcHVyaW91cyB7IH0KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVUlE
ZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bVUlEZWxlZ2F0ZSB3ZWJWaWV3OmRyYWdJbWFnZTphdDpv
ZmZzZXQ6ZXZlbnQ6cGFzdGVib2FyZDpzb3VyY2U6c2xpZGVCYWNrOmZvclZpZXc6XSk6IHJlbW92
ZWQgYWRkRmlsZVRvUGFzdGVib2FyZE9uRHJhZyBzdXBwb3J0CisKIDIwMDktMDUtMTggIEtldmlu
IE9sbGl2aWVyICA8a2V2aW5vQHRoZW9sbGl2aWVycy5jb20+CiAKICAgICAgICAgd3ggYnVpbGQg
Zml4LiBVc2UgcHl0aG9uLWNvbmZpZyB0byBnZXQgUHl0aG9uIGxpbmtpbmcgaW5mbyBvbiBVbml4
IE9TZXMuIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRl
clRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjJlYTQw
MS4uY2UwNjE0ZiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJl
bmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01
Nyw2ICs1Nyw4IEBACiAJCUE4QjkxQUUyMENGM0IzNzIwMDhGOTFGRiAvKiBEdW1wUmVuZGVyVHJl
ZVBhc3RlYm9hcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4QjkxQURGMENGM0IzNzIwMDhGOTFGRiAvKiBEdW1wUmVuZGVyVHJlZVBhc3RlYm9hcmQu
aCAqLzsgfTsKIAkJQThCOTFCRkQwQ0Y1MjJCNDAwOEY5MUZGIC8qIENoZWNrZWRNYWxsb2MuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCOTFCRjcw
Q0Y1MjJCNDAwOEY5MUZGIC8qIENoZWNrZWRNYWxsb2MuY3BwICovOyB9OwogCQlBOEI5MUJGRjBD
RjUyMkI0MDA4RjkxRkYgLyogQ2hlY2tlZE1hbGxvYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThCOTFCRjkwQ0Y1MjJCNDAwOEY5MUZGIC8qIENoZWNr
ZWRNYWxsb2MuaCAqLzsgfTsKKwkJQThENzlDRUEwRkMyOEIyQzAwNEFDOEZFIC8qIER1bXBSZW5k
ZXJUcmVlRmlsZURyYWdnaW5nU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEQ3OUNFODBGQzI4QjJDMDA0QUM4RkUgLyogRHVtcFJlbmRlclRy
ZWVGaWxlRHJhZ2dpbmdTb3VyY2UuaCAqLzsgfTsKKwkJQThENzlDRUIwRkMyOEIyQzAwNEFDOEZF
IC8qIER1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlLm0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEQ3OUNFOTBGQzI4QjJDMDA0QUM4RkUgLyog
RHVtcFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdTb3VyY2UubSAqLzsgfTsKIAkJQUU4MjU5RjMwOEQy
MjQ2MzAwMDUwN0FCIC8qIENhcmJvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRTgyNTdFRjA4RDIyMzg5MDAwNTA3QUIgLyogQ2Fy
Ym9uLmZyYW1ld29yayAqLzsgfTsKIAkJQUU4MjU5RjQwOEQyMjQ2MzAwMDUwN0FCIC8qIENhcmJv
bi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBRTgyNTdFRjA4RDIyMzg5MDAwNTA3QUIgLyogQ2FyYm9uLmZyYW1ld29yayAqLzsgfTsK
IAkJQjVBNzUyQTIwOEFGNUQxRjAwMTM4RTQ1IC8qIFF1YXJ0ekNvcmUuZnJhbWV3b3JrIGluIEZy
YW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjVBNzUyQTEwOEFG
NUQxRjAwMTM4RTQ1IC8qIFF1YXJ0ekNvcmUuZnJhbWV3b3JrICovOyB9OwpAQCAtMTkxLDYgKzE5
Myw4IEBACiAJCUE4QjkxQURGMENGM0IzNzIwMDhGOTFGRiAvKiBEdW1wUmVuZGVyVHJlZVBhc3Rl
Ym9hcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRHVtcFJlbmRlclRyZWVQ
YXN0ZWJvYXJkLmg7IHBhdGggPSBtYWMvRHVtcFJlbmRlclRyZWVQYXN0ZWJvYXJkLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QjkxQkY3MENGNTIyQjQwMDhGOTFGRiAvKiBDaGVj
a2VkTWFsbG9jLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENoZWNr
ZWRNYWxsb2MuY3BwOyBwYXRoID0gbWFjL0NoZWNrZWRNYWxsb2MuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBOEI5MUJGOTBDRjUyMkI0MDA4RjkxRkYgLyogQ2hlY2tlZE1hbGxv
Yy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDaGVja2VkTWFsbG9jLmg7IHBh
dGggPSBtYWMvQ2hlY2tlZE1hbGxvYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
OEQ3OUNFODBGQzI4QjJDMDA0QUM4RkUgLyogRHVtcFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdTb3Vy
Y2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHVtcFJlbmRlclRyZWVGaWxl
RHJhZ2dpbmdTb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQThENzlDRTkw
RkMyOEIyQzAwNEFDOEZFIC8qIER1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlLm0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgcGF0aCA9IER1bXBSZW5kZXJUcmVlRmlsZURyYWdn
aW5nU291cmNlLm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBN0YxMEMyMENCM0Mx
MDMwMDAzQkRDOSAvKiBBSEVNX19fXy5UVEYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBuYW1lID0gIkFIRU1fX19fLlRURiI7IHBhdGggPSAi
cXQvZm9udHMvQUhFTV9fX18uVFRGIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUU4
MjU3RUYwOEQyMjM4OTAwMDUwN0FCIC8qIENhcmJvbi5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFt
ZSA9IENhcmJvbi5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9D
YXJib24uZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQlCNUE3NTI2
NzA4QUY0QTRBMDAxMzhFNDUgLyogSW1hZ2VEaWZmICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNs
dWRlSW5JbmRleCA9IDA7IHBhdGggPSBJbWFnZURpZmY7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CkBAIC0zMDYsNiArMzEwLDggQEAKIAkJCQlCQ0ExOEMwQTBDOUI1OUVGMDAx
MTQzNjkgLyogRHVtcFJlbmRlclRyZWVNYWMuaCAqLywKIAkJCQlCQ0ExOEI3MzBDOUIwOEYxMDAx
MTQzNjkgLyogRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8uaCAqLywKIAkJCQlCQ0ExOEI3NDBD
OUIwOEYxMDAxMTQzNjkgLyogRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8ubW0gKi8sCisJCQkJ
QThENzlDRTgwRkMyOEIyQzAwNEFDOEZFIC8qIER1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291
cmNlLmggKi8sCisJCQkJQThENzlDRTkwRkMyOEIyQzAwNEFDOEZFIC8qIER1bXBSZW5kZXJUcmVl
RmlsZURyYWdnaW5nU291cmNlLm0gKi8sCiAJCQkJQkM5RDkwMjEwQzk3NDcyRDAwOTlBNEEzIC8q
IFdvcmtRdWV1ZS5jcHAgKi8sCiAJCQkJQkM5RDkwMjIwQzk3NDcyRTAwOTlBNEEzIC8qIFdvcmtR
dWV1ZS5oICovLAogCQkJCUJDOUQ5MDIzMEM5NzQ3MkUwMDk5QTRBMyAvKiBXb3JrUXVldWVJdGVt
LmggKi8sCkBAIC01MTMsNiArNTE5LDcgQEAKIAkJCQlCQzlEOTAyNTBDOTc0NzJFMDA5OUE0QTMg
LyogV29ya1F1ZXVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzlEOTAyNjBDOTc0NzJFMDA5OUE0
QTMgLyogV29ya1F1ZXVlSXRlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzQkY1QUIwRjkzRkE1
QzAwMEYwNDQxIC8qIFBsYWluVGV4dENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4
RDc5Q0VBMEZDMjhCMkMwMDRBQzhGRSAvKiBEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJj
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CkBAIC02NTgsNiArNjY1LDcgQEAKIAkJCQlCQzlEOTAyNDBDOTc0
NzJFMDA5OUE0QTMgLyogV29ya1F1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQTE4QjI2
MEM5QjAxNUMwMDExNDM2OSAvKiBXb3JrUXVldWVJdGVtTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTMzQkY1QUMwRjkzRkE1QzAwMEYwNDQxIC8qIFBsYWluVGV4dENvbnRyb2xsZXIubW0gaW4g
U291cmNlcyAqLywKKwkJCQlBOEQ3OUNFQjBGQzI4QjJDMDA0QUM4RkUgLyogRHVtcFJlbmRlclRy
ZWVGaWxlRHJhZ2dpbmdTb3VyY2UubSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdTb3VyY2UuaCBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291
cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTJmNDVkNgotLS0gL2Rl
di9udWxsCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlRmls
ZURyYWdnaW5nU291cmNlLmgKQEAgLTAsMCArMSwzOSBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDA5
LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gCisvLyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8v
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vIAorLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8v
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKy8vIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
Ky8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisvLyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorLy8gCisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8g
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisvLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKy8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaW1wb3J0IDxDb2NvYS9Db2NvYS5oPgorCisv
LyBBbiBpbXBsZW1lbnRhdGlvbiBvZiBOU0RyYWdnaW5nU291cmNlIGZvciB1c2Ugd2l0aCBEdW1w
UmVuZGVyVHJlZURyYWdnaW5nSW5mbyB3aGVuIGRyYWdnaW5nIGZpbGVzCisvLyBVc2VkIGJ5IC1b
RXZlbnRTZW5kaW5nQ29udHJvbGxlciBiZWdpbkRyYWdXaXRoRmlsZXM6XQorCitAaW50ZXJmYWNl
IER1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlIDogTlNPYmplY3QgeworfQorCistIChO
U0RyYWdPcGVyYXRpb24pZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrRm9yTG9jYWw6KEJPT0wp
ZmxhZzsKKworQGVuZApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVt
cFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdTb3VyY2UubSBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL0R1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlLm0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNDQ5ZDkxOAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlRmlsZURyYWdnaW5nU291cmNlLm0KQEAgLTAs
MCArMSwzOCBAQAorLy8gQ29weXJpZ2h0IChjKSAyMDA5LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorLy8gCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoK
Ky8vIAorLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKy8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKy8vICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKy8vIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
Ky8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKy8vIGRpc3RyaWJ1dGlvbi4KKy8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKy8vIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisvLyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorLy8g
CisvLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisvLyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisvLyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisvLyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKy8vIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorLy8gVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisvLyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCisjaW1wb3J0ICJEdW1wUmVuZGVyVHJlZUZpbGVEcmFnZ2luZ1NvdXJjZS5oIgorCitAaW1w
bGVtZW50YXRpb24gRHVtcFJlbmRlclRyZWVGaWxlRHJhZ2dpbmdTb3VyY2UKKworLSAoTlNEcmFn
T3BlcmF0aW9uKWRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFza0ZvckxvY2FsOihCT09MKWZsYWcK
K3sKKyAgICByZXR1cm4gTlNEcmFnT3BlcmF0aW9uQ29weTsKK30KKworQGVuZApkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4
IDIyODJmNjkuLjUwZjk2ZDMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTUxLDcgKzUxLDYgQEAgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0UGF0
aE9yVVJMLCBjb24KICAgICAsIG1fZHVtcEVkaXRpbmdDYWxsYmFja3MoZmFsc2UpCiAgICAgLCBt
X2R1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoZmFsc2UpCiAgICAgLCBtX2R1bXBGcmFtZUxvYWRD
YWxsYmFja3MoZmFsc2UpCi0gICAgLCBtX2FkZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWcoZmFsc2Up
CiAgICAgLCBtX2NhbGxDbG9zZU9uV2ViVmlld3ModHJ1ZSkKICAgICAsIG1fY2FuT3BlbldpbmRv
d3MoZmFsc2UpCiAgICAgLCBtX2Nsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSh0cnVl
KQpAQCAtMjI0LDEzICsyMjMsNiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiB0ZXN0UmVwYWludENhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbgogICAgIHJldHVy
biBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAotc3RhdGljIEpTVmFsdWVSZWYg
YWRkRmlsZVRvUGFzdGVib2FyZE9uRHJhZ0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3Vt
ZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikKLXsKLSAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19j
YXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3Qp
KTsKLSAgICBjb250cm9sbGVyLT5zZXRBZGRGaWxlVG9QYXN0ZWJvYXJkT25EcmFnKHRydWUpOwot
ICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLX0KLQogc3RhdGljIEpT
VmFsdWVSZWYgYWRkRGlzYWxsb3dlZFVSTENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3Vt
ZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikKIHsKICAgICAvLyBIYXMgbWFjIGltcGxlbWVudGF0aW9uCkBAIC04MjUsMTQgKzgxNywx
MiBAQCBKU1N0YXRpY1ZhbHVlKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljVmFsdWVzKCkK
ICAgICAgICAgeyAwLCAwLCAwLCAwIH0KICAgICB9OwogICAgIHJldHVybiBzdGF0aWNWYWx1ZXM7
Ci0KIH0KIAogSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1
bmN0aW9ucygpCiB7CiAgICAgc3RhdGljIEpTU3RhdGljRnVuY3Rpb24gc3RhdGljRnVuY3Rpb25z
W10gPSB7CiAgICAgICAgIHsgImFkZERpc2FsbG93ZWRVUkwiLCBhZGREaXNhbGxvd2VkVVJMQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAiYWRkRmlsZVRvUGFzdGVib2FyZE9uRHJhZyIsIGFk
ZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWdDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJjbGVh
ckFsbERhdGFiYXNlcyIsIGNsZWFyQWxsRGF0YWJhc2VzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAg
ICAgeyAiY2xlYXJCYWNrRm9yd2FyZExpc3QiLCBjbGVhckJhY2tGb3J3YXJkTGlzdENhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCiAgICAgICAgIHsgImNsZWFyUGVyc2lzdGVudFVzZXJTdHlsZVNoZWV0IiwgY2xl
YXJQZXJzaXN0ZW50VXNlclN0eWxlU2hlZXRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggN2UzMGI5
NS4uNDE4YjBhMCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCkBAIC0xMjIsOSArMTIyLDYgQEAgcHVibGljOgogICAgIGJvb2wgZHVt
cEZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fZHVtcEZyYW1lTG9hZENhbGxi
YWNrczsgfQogICAgIHZvaWQgc2V0RHVtcEZyYW1lTG9hZENhbGxiYWNrcyhib29sIGR1bXBGcmFt
ZUxvYWRDYWxsYmFja3MpIHsgbV9kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzID0gZHVtcEZyYW1lTG9h
ZENhbGxiYWNrczsgfQogCi0gICAgYm9vbCBhZGRGaWxlVG9QYXN0ZWJvYXJkT25EcmFnKCkgY29u
c3QgeyByZXR1cm4gbV9hZGRGaWxlVG9QYXN0ZWJvYXJkT25EcmFnOyB9Ci0gICAgdm9pZCBzZXRB
ZGRGaWxlVG9QYXN0ZWJvYXJkT25EcmFnKGJvb2wgYWRkRmlsZVRvUGFzdGVib2FyZE9uRHJhZykg
eyBtX2FkZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWcgPSBhZGRGaWxlVG9QYXN0ZWJvYXJkT25EcmFn
OyB9Ci0KICAgICBib29sIGNhbGxDbG9zZU9uV2ViVmlld3MoKSBjb25zdCB7IHJldHVybiBtX2Nh
bGxDbG9zZU9uV2ViVmlld3M7IH0KICAgICB2b2lkIHNldENhbGxDbG9zZU9uV2ViVmlld3MoYm9v
bCBjYWxsQ2xvc2VPbldlYlZpZXdzKSB7IG1fY2FsbENsb3NlT25XZWJWaWV3cyA9IGNhbGxDbG9z
ZU9uV2ViVmlld3M7IH0KIApAQCAtMTc3LDcgKzE3NCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2R1bXBFZGl0aW5nQ2FsbGJhY2tzOwogICAgIGJvb2wgbV9kdW1wUmVzb3VyY2VMb2FkQ2FsbGJh
Y2tzOwogICAgIGJvb2wgbV9kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzOwotICAgIGJvb2wgbV9hZGRG
aWxlVG9QYXN0ZWJvYXJkT25EcmFnOwogICAgIGJvb2wgbV9jYWxsQ2xvc2VPbldlYlZpZXdzOwog
ICAgIGJvb2wgbV9jYW5PcGVuV2luZG93czsKICAgICBib29sIG1fY2xvc2VSZW1haW5pbmdXaW5k
b3dzV2hlbkNvbXBsZXRlOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1
bXBSZW5kZXJUcmVlLm1tCmluZGV4IDEyMTA5NzYuLjdmZDNhYTEgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTI2LDExICsyNiwx
MiBAQAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCi0gCisKICNpbXBvcnQg
IkR1bXBSZW5kZXJUcmVlLmgiCiAKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgi
CiAjaW1wb3J0ICJDaGVja2VkTWFsbG9jLmgiCisjaW1wb3J0ICJEdW1wUmVuZGVyVHJlZURyYWdn
aW5nSW5mby5oIgogI2ltcG9ydCAiRHVtcFJlbmRlclRyZWVQYXN0ZWJvYXJkLmgiCiAjaW1wb3J0
ICJEdW1wUmVuZGVyVHJlZVdpbmRvdy5oIgogI2ltcG9ydCAiRWRpdGluZ0RlbGVnYXRlLmgiCkBA
IC0xMDkxLDYgKzEwOTIsOCBAQCBzdGF0aWMgdm9pZCBydW5UZXN0KGNvbnN0IHN0cmluZyYgdGVz
dFBhdGhPclVSTCkKIAogICAgIGdMYXlvdXRUZXN0Q29udHJvbGxlciA9IG5ldyBMYXlvdXRUZXN0
Q29udHJvbGxlcih0ZXN0VVJMLCBleHBlY3RlZFBpeGVsSGFzaCk7CiAgICAgdG9wTG9hZGluZ0Zy
YW1lID0gbmlsOworICAgIEFTU0VSVCghZHJhZ2dpbmdJbmZvKTsgLy8gdGhlIHByZXZpb3VzIHRl
c3Qgc2hvdWxkIGhhdmUgY2FsbGVkIGV2ZW50U2VuZGVyLm1vdXNlVXAgdG8gZHJvcCEKKyAgICBy
ZWxlYXNlQW5kWmVybygmZHJhZ2dpbmdJbmZvKTsKICAgICBkb25lID0gTk87CiAKICAgICBnTGF5
b3V0VGVzdENvbnRyb2xsZXItPnNldEljb25EYXRhYmFzZUVuYWJsZWQoZmFsc2UpOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0V2ZW50U2VuZGluZ0NvbnRyb2xs
ZXIubW0gYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRXZlbnRTZW5kaW5nQ29udHJv
bGxlci5tbQppbmRleCA1ODgzMDI2Li5mY2Q3MjFiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5tbQorKysgYi9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5tbQpAQCAtMzMs
NiArMzMsNyBAQAogCiAjaW1wb3J0ICJEdW1wUmVuZGVyVHJlZS5oIgogI2ltcG9ydCAiRHVtcFJl
bmRlclRyZWVEcmFnZ2luZ0luZm8uaCIKKyNpbXBvcnQgIkR1bXBSZW5kZXJUcmVlRmlsZURyYWdn
aW5nU291cmNlLmgiCiAKICNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBmb3IgR2V0Q3VycmVudEV2ZW50VGltZSgpCiAjaW1wb3J0IDxXZWJLaXQv
RE9NUHJpdmF0ZS5oPgpAQCAtMTE4LDE2ICsxMTksMTcgQEAgQk9PTCByZXBsYXlpbmdTYXZlZEV2
ZW50czsKIAogKyAoQk9PTClpc1NlbGVjdG9yRXhjbHVkZWRGcm9tV2ViU2NyaXB0OihTRUwpYVNl
bGVjdG9yCiB7Ci0gICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IobW91c2VEb3duOikKLSAg
ICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IobW91c2VVcDopCisgICAgaWYgKGFT
ZWxlY3RvciA9PSBAc2VsZWN0b3IoYmVnaW5EcmFnV2l0aEZpbGVzOikKKyAgICAgICAgICAgIHx8
IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoY2xlYXJLaWxsUmluZykKICAgICAgICAgICAgIHx8IGFT
ZWxlY3RvciA9PSBAc2VsZWN0b3IoY29udGV4dENsaWNrKQotICAgICAgICAgICAgfHwgYVNlbGVj
dG9yID09IEBzZWxlY3RvcihzY2hlZHVsZUFzeW5jaHJvbm91c0NsaWNrKQotICAgICAgICAgICAg
fHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcihtb3VzZU1vdmVUb1g6WTopCi0gICAgICAgICAgICB8
fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGxlYXBGb3J3YXJkOikKLSAgICAgICAgICAgIHx8IGFT
ZWxlY3RvciA9PSBAc2VsZWN0b3Ioa2V5RG93bjp3aXRoTW9kaWZpZXJzOikKICAgICAgICAgICAg
IHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoZW5hYmxlRE9NVUlFdmVudExvZ2dpbmc6KQogICAg
ICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihmaXJlS2V5Ym9hcmRFdmVudHNUb0Vs
ZW1lbnQ6KQotICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihjbGVhcktpbGxS
aW5nKQorICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihrZXlEb3duOndpdGhN
b2RpZmllcnM6KQorICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihsZWFwRm9y
d2FyZDopCisgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKG1vdXNlRG93bjop
CisgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKG1vdXNlTW92ZVRvWDpZOikK
KyAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IobW91c2VVcDopCisgICAgICAg
ICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHNjaGVkdWxlQXN5bmNocm9ub3VzQ2xpY2sp
CiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHRleHRab29tSW4pCiAgICAg
ICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHRleHRab29tT3V0KQogICAgICAgICAg
ICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcih6b29tUGFnZUluKQpAQCAtMTQ1LDIwICsxNDcs
MjIgQEAgQk9PTCByZXBsYXlpbmdTYXZlZEV2ZW50czsKIAogKyAoTlNTdHJpbmcgKil3ZWJTY3Jp
cHROYW1lRm9yU2VsZWN0b3I6KFNFTClhU2VsZWN0b3IKIHsKKyAgICBpZiAoYVNlbGVjdG9yID09
IEBzZWxlY3RvcihiZWdpbkRyYWdXaXRoRmlsZXM6KSkKKyAgICAgICAgcmV0dXJuIEAiYmVnaW5E
cmFnV2l0aEZpbGVzIjsKKyAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihlbmFibGVET01V
SUV2ZW50TG9nZ2luZzopKQorICAgICAgICByZXR1cm4gQCJlbmFibGVET01VSUV2ZW50TG9nZ2lu
ZyI7CisgICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoZmlyZUtleWJvYXJkRXZlbnRzVG9F
bGVtZW50OikpCisgICAgICAgIHJldHVybiBAImZpcmVLZXlib2FyZEV2ZW50c1RvRWxlbWVudCI7
CisgICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3Ioa2V5RG93bjp3aXRoTW9kaWZpZXJzOikp
CisgICAgICAgIHJldHVybiBAImtleURvd24iOworICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVj
dG9yKGxlYXBGb3J3YXJkOikpCisgICAgICAgIHJldHVybiBAImxlYXBGb3J3YXJkIjsKICAgICBp
ZiAoYVNlbGVjdG9yID09IEBzZWxlY3Rvcihtb3VzZURvd246KSkKICAgICAgICAgcmV0dXJuIEAi
bW91c2VEb3duIjsKICAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3Rvcihtb3VzZVVwOikpCiAg
ICAgICAgIHJldHVybiBAIm1vdXNlVXAiOwogICAgIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9y
KG1vdXNlTW92ZVRvWDpZOikpCiAgICAgICAgIHJldHVybiBAIm1vdXNlTW92ZVRvIjsKLSAgICBp
ZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihsZWFwRm9yd2FyZDopKQotICAgICAgICByZXR1cm4g
QCJsZWFwRm9yd2FyZCI7Ci0gICAgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3Ioa2V5RG93bjp3
aXRoTW9kaWZpZXJzOikpCi0gICAgICAgIHJldHVybiBAImtleURvd24iOwotICAgIGlmIChhU2Vs
ZWN0b3IgPT0gQHNlbGVjdG9yKGVuYWJsZURPTVVJRXZlbnRMb2dnaW5nOikpCi0gICAgICAgIHJl
dHVybiBAImVuYWJsZURPTVVJRXZlbnRMb2dnaW5nIjsKLSAgICBpZiAoYVNlbGVjdG9yID09IEBz
ZWxlY3RvcihmaXJlS2V5Ym9hcmRFdmVudHNUb0VsZW1lbnQ6KSkKLSAgICAgICAgcmV0dXJuIEAi
ZmlyZUtleWJvYXJkRXZlbnRzVG9FbGVtZW50IjsKICAgICBpZiAoYVNlbGVjdG9yID09IEBzZWxl
Y3RvcihzZXREcmFnTW9kZTopKQogICAgICAgICByZXR1cm4gQCJzZXREcmFnTW9kZSI7CiAgICAg
cmV0dXJuIG5pbDsKQEAgLTIzOCw2ICsyNDIsMzcgQEAgc3RhdGljIE5TRXZlbnRUeXBlIGV2ZW50
VHlwZUZvck1vdXNlQnV0dG9uQW5kQWN0aW9uKGludCBidXR0b24sIE1vdXNlQWN0aW9uIGFjdGkK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TlNFdmVudFR5cGU+KDApOwogfQogCistICh2b2lkKWJl
Z2luRHJhZ1dpdGhGaWxlczooV2ViU2NyaXB0T2JqZWN0Kilqc0ZpbGVQYXRocworeworICAgIGFz
c2VydCghZHJhZ2dpbmdJbmZvKTsKKyAgICBhc3NlcnQoW2pzRmlsZVBhdGhzIGlzS2luZE9mQ2xh
c3M6W1dlYlNjcmlwdE9iamVjdCBjbGFzc11dKTsKKworICAgIE5TUGFzdGVib2FyZCAqcGJvYXJk
ID0gW05TUGFzdGVib2FyZCBwYXN0ZWJvYXJkV2l0aFVuaXF1ZU5hbWVdOworICAgIFtwYm9hcmQg
ZGVjbGFyZVR5cGVzOltOU0FycmF5IGFycmF5V2l0aE9iamVjdDpOU0ZpbGVuYW1lc1Bib2FyZFR5
cGVdIG93bmVyOm5pbF07CisKKyAgICBOU1VSTCAqY3VycmVudFRlc3RVUkwgPSBbTlNVUkwgVVJM
V2l0aFN0cmluZzpbW21haW5GcmFtZSB3ZWJWaWV3XSBtYWluRnJhbWVVUkxdXTsKKworICAgIE5T
TXV0YWJsZUFycmF5ICpmaWxlUGF0aHMgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IFtbanNGaWxlUGF0aHMgd2ViU2NyaXB0VmFsdWVBdEluZGV4Omld
IGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV07IGkrKykgeworICAgICAgICBOU1N0cmlu
ZyAqZmlsZVBhdGggPSAoTlNTdHJpbmcgKilbanNGaWxlUGF0aHMgd2ViU2NyaXB0VmFsdWVBdElu
ZGV4OmldOworICAgICAgICAvLyBIYXZlIE5TVVJMIGVuY29kZSB0aGUgbmFtZSBzbyB0aGF0IHdl
IGhhbmRsZSAnPycgaW4gZmlsZSBuYW1lcyBjb3JyZWN0bHkuCisgICAgICAgIE5TVVJMICpmaWxl
VVJMID0gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpmaWxlUGF0aF07CisgICAgICAgIE5TVVJMICph
YnNvbHV0ZUZpbGVVUkwgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpbZmlsZVVSTCByZWxhdGl2ZVN0
cmluZ10gIHJlbGF0aXZlVG9VUkw6Y3VycmVudFRlc3RVUkxdOworICAgICAgICBbZmlsZVBhdGhz
IGFkZE9iamVjdDpbYWJzb2x1dGVGaWxlVVJMIHBhdGhdXTsKKyAgICB9CisKKyAgICBbcGJvYXJk
IHNldFByb3BlcnR5TGlzdDpmaWxlUGF0aHMgZm9yVHlwZTpOU0ZpbGVuYW1lc1Bib2FyZFR5cGVd
OworICAgIGFzc2VydChbcGJvYXJkIHByb3BlcnR5TGlzdEZvclR5cGU6TlNGaWxlbmFtZXNQYm9h
cmRUeXBlXSk7IC8vIHNldFByb3BlcnR5TGlzdCB3aWxsIHNpbGVudGx5IGZhaWwgb24gZXJyb3Is
IGFzc2VydCB0aGF0IGl0IGRpZG4ndCBmYWlsCisKKyAgICAvLyBQcm92aWRlIGEgc291cmNlLCBv
dGhlcndpc2UgW0R1bXBSZW5kZXJUcmVlRHJhZ2dpbmdJbmZvIGRyYWdnaW5nU291cmNlT3BlcmF0
aW9uTWFza10gZGVmYXVsdHMgdG8gTlNEcmFnT3BlcmF0aW9uTm9uZQorICAgIER1bXBSZW5kZXJU
cmVlRmlsZURyYWdnaW5nU291cmNlICpzb3VyY2UgPSBbW1tEdW1wUmVuZGVyVHJlZUZpbGVEcmFn
Z2luZ1NvdXJjZSBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOworICAgIGRyYWdnaW5nSW5mbyA9
IFtbRHVtcFJlbmRlclRyZWVEcmFnZ2luZ0luZm8gYWxsb2NdIGluaXRXaXRoSW1hZ2U6bmlsIG9m
ZnNldDpOU1plcm9TaXplIHBhc3RlYm9hcmQ6cGJvYXJkIHNvdXJjZTpzb3VyY2VdOworICAgIFtb
bWFpbkZyYW1lIHdlYlZpZXddIGRyYWdnaW5nRW50ZXJlZDpkcmFnZ2luZ0luZm9dOworCisgICAg
ZHJhZ01vZGUgPSBOTzsgLy8gZHJhZ01vZGUgc2F2ZXMgZXZlbnRzIGFuZCB0aGVuIHJlcGxheXMg
dGhlbSBsYXRlci4gIFdlIGRvbid0IG5lZWQvd2FudCB0aGF0LgorICAgIGxlZnRNb3VzZUJ1dHRv
bkRvd24gPSBZRVM7IC8vIE1ha2UgdGhlIHJlc3Qgb2YgZXZlbnRTZW5kZXIgdGhpbmsgYSBkcmFn
IGlzIGluIHByb2dyZXNzCit9CisKIC0gKHZvaWQpdXBkYXRlQ2xpY2tDb3VudEZvckJ1dHRvbjoo
aW50KWJ1dHRvbk51bWJlcgogewogICAgIGlmICgoW3NlbGYgY3VycmVudEV2ZW50VGltZV0gLSBs
YXN0Q2xpY2sgPj0gMSkgfHwKQEAgLTMzOSw3ICszNzQsOSBAQCBzdGF0aWMgTlNFdmVudFR5cGUg
ZXZlbnRUeXBlRm9yTW91c2VCdXR0b25BbmRBY3Rpb24oaW50IGJ1dHRvbiwgTW91c2VBY3Rpb24g
YWN0aQogICAgICAgICAgICAgW3dlYlZpZXcgcGVyZm9ybURyYWdPcGVyYXRpb246ZHJhZ2dpbmdJ
bmZvXTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgW3dlYlZpZXcgZHJhZ2dpbmdFeGl0ZWQ6
ZHJhZ2dpbmdJbmZvXTsKLSAgICAgICAgW1tkcmFnZ2luZ0luZm8gZHJhZ2dpbmdTb3VyY2VdIGRy
YWdnZWRJbWFnZTpbZHJhZ2dpbmdJbmZvIGRyYWdnZWRJbWFnZV0gZW5kZWRBdDpsYXN0TW91c2VQ
b3NpdGlvbiBvcGVyYXRpb246ZHJhZ09wZXJhdGlvbl07CisgICAgICAgIC8vIFBlciBOU0RyYWdn
aW5nLmg6IGRyYWdnaW5nU291cmNlcyBtYXkgbm90IGltcGxlbWVudCBkcmFnZ2VkSW1hZ2U6ZW5k
ZWRBdDpvcGVyYXRpb246CisgICAgICAgIGlmIChbW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ1NvdXJj
ZV0gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihkcmFnZ2VkSW1hZ2U6ZW5kZWRBdDpvcGVy
YXRpb246KV0pCisgICAgICAgICAgICBbW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ1NvdXJjZV0gZHJh
Z2dlZEltYWdlOltkcmFnZ2luZ0luZm8gZHJhZ2dlZEltYWdlXSBlbmRlZEF0Omxhc3RNb3VzZVBv
c2l0aW9uIG9wZXJhdGlvbjpkcmFnT3BlcmF0aW9uXTsKICAgICAgICAgW2RyYWdnaW5nSW5mbyBy
ZWxlYXNlXTsKICAgICAgICAgZHJhZ2dpbmdJbmZvID0gbmlsOwogICAgIH0KQEAgLTM1NSw3ICsz
OTIsNiBAQCBzdGF0aWMgTlNFdmVudFR5cGUgZXZlbnRUeXBlRm9yTW91c2VCdXR0b25BbmRBY3Rp
b24oaW50IGJ1dHRvbiwgTW91c2VBY3Rpb24gYWN0aQogICAgICAgICBbaW52b2NhdGlvbiBzZXRB
cmd1bWVudDomeSBhdEluZGV4OjNdOwogICAgICAgICAKICAgICAgICAgW0V2ZW50U2VuZGluZ0Nv
bnRyb2xsZXIgc2F2ZUV2ZW50Omludm9jYXRpb25dOwotICAgICAgICAKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtMzc2LDcgKzQxMiw5IEBAIHN0YXRpYyBOU0V2ZW50VHlwZSBldmVudFR5
cGVGb3JNb3VzZUJ1dHRvbkFuZEFjdGlvbihpbnQgYnV0dG9uLCBNb3VzZUFjdGlvbiBhY3RpCiAg
ICAgICAgIGlmIChsZWZ0TW91c2VCdXR0b25Eb3duKSB7CiAgICAgICAgICAgICBbc3ViVmlldyBt
b3VzZURyYWdnZWQ6ZXZlbnRdOwogICAgICAgICAgICAgaWYgKGRyYWdnaW5nSW5mbykgewotICAg
ICAgICAgICAgICAgIFtbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nU291cmNlXSBkcmFnZ2VkSW1hZ2U6
W2RyYWdnaW5nSW5mbyBkcmFnZ2VkSW1hZ2VdIG1vdmVkVG86bGFzdE1vdXNlUG9zaXRpb25dOwor
ICAgICAgICAgICAgICAgIC8vIFBlciBOU0RyYWdnaW5nLmg6IGRyYWdnaW5nU291cmNlcyBtYXkg
bm90IGltcGxlbWVudCBkcmFnZ2VkSW1hZ2U6bW92ZWRUbzoKKyAgICAgICAgICAgICAgICBpZiAo
W1tkcmFnZ2luZ0luZm8gZHJhZ2dpbmdTb3VyY2VdIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoZHJhZ2dlZEltYWdlOm1vdmVkVG86KV0pCisgICAgICAgICAgICAgICAgICAgIFtbZHJhZ2dp
bmdJbmZvIGRyYWdnaW5nU291cmNlXSBkcmFnZ2VkSW1hZ2U6W2RyYWdnaW5nSW5mbyBkcmFnZ2Vk
SW1hZ2VdIG1vdmVkVG86bGFzdE1vdXNlUG9zaXRpb25dOwogICAgICAgICAgICAgICAgIFtbbWFp
bkZyYW1lIHdlYlZpZXddIGRyYWdnaW5nVXBkYXRlZDpkcmFnZ2luZ0luZm9dOwogICAgICAgICAg
ICAgfQogICAgICAgICB9IGVsc2UKQEAgLTQ3Niw3ICs1MTQsNyBAQCBzdGF0aWMgTlNFdmVudFR5
cGUgZXZlbnRUeXBlRm9yTW91c2VCdXR0b25BbmRBY3Rpb24oaW50IGJ1dHRvbiwgTW91c2VBY3Rp
b24gYWN0aQogICAgICAgICBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnMgPSBbY2hhcmFjdGVy
IGxvd2VyY2FzZVN0cmluZ107CiAgICAgfQogCi0gICAgaWYgKFttb2RpZmllcnMgaXNLaW5kT2ZD
bGFzczpbV2ViU2NyaXB0T2JqZWN0IGNsYXNzXV0pCisgICAgaWYgKFttb2RpZmllcnMgaXNLaW5k
T2ZDbGFzczpbV2ViU2NyaXB0T2JqZWN0IGNsYXNzXV0pIHsKICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgW1ttb2RpZmllcnMgd2ViU2NyaXB0VmFsdWVBdEluZGV4OmldIGlzS2luZE9mQ2xh
c3M6W05TU3RyaW5nIGNsYXNzXV07IGkrKykgewogICAgICAgICAgICAgTlNTdHJpbmcgKm1vZGlm
aWVyID0gKE5TU3RyaW5nICopW21vZGlmaWVycyB3ZWJTY3JpcHRWYWx1ZUF0SW5kZXg6aV07CiAg
ICAgICAgICAgICBpZiAoW21vZGlmaWVyIGlzRXF1YWw6QCJjdHJsS2V5Il0pCkBAIC00ODgsNiAr
NTI2LDcgQEAgc3RhdGljIE5TRXZlbnRUeXBlIGV2ZW50VHlwZUZvck1vdXNlQnV0dG9uQW5kQWN0
aW9uKGludCBidXR0b24sIE1vdXNlQWN0aW9uIGFjdGkKICAgICAgICAgICAgIGVsc2UgaWYgKFtt
b2RpZmllciBpc0VxdWFsOkAibWV0YUtleSJdKQogICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxh
Z3MgfD0gTlNDb21tYW5kS2V5TWFzazsKICAgICAgICAgfQorICAgIH0KIAogICAgIFtbW21haW5G
cmFtZSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld10gbGF5b3V0XTsKIApAQCAtNjE3LDkgKzY1Niw4
IEBAIHN0YXRpYyBOU0V2ZW50VHlwZSBldmVudFR5cGVGb3JNb3VzZUJ1dHRvbkFuZEFjdGlvbihp
bnQgYnV0dG9uLCBNb3VzZUFjdGlvbiBhY3RpCiAvLyB0byB3b3JrIHdlbGwgZW5vdWdoIHRoYXQg
d2UgY2FuIHRlc3QgdGhhdCB3YXkgaW5zdGVhZC4KIC0gKHZvaWQpZmlyZUtleWJvYXJkRXZlbnRz
VG9FbGVtZW50OihXZWJTY3JpcHRPYmplY3QgKillbGVtZW50IHsKICAgICAKLSAgICBpZiAoIVtl
bGVtZW50IGlzS2luZE9mQ2xhc3M6W0RPTUhUTUxFbGVtZW50IGNsYXNzXV0pIHsKKyAgICBpZiAo
IVtlbGVtZW50IGlzS2luZE9mQ2xhc3M6W0RPTUhUTUxFbGVtZW50IGNsYXNzXV0pCiAgICAgICAg
IHJldHVybjsKLSAgICB9CiAgICAgCiAgICAgRE9NSFRNTEVsZW1lbnQgKnRhcmdldCA9IChET01I
VE1MRWxlbWVudCopZWxlbWVudDsKICAgICBET01Eb2N1bWVudCAqZG9jdW1lbnQgPSBbdGFyZ2V0
IG93bmVyRG9jdW1lbnRdOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL1VJRGVsZWdhdGUubW0gYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlEZWxl
Z2F0ZS5tbQppbmRleCAxZjgyODkyLi42NmFhZGY5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbQorKysgYi9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbQpAQCAtOTUsMTAgKzk1LDYgQEAgRHVtcFJlbmRlclRy
ZWVEcmFnZ2luZ0luZm8gKmRyYWdnaW5nSW5mbyA9IG5pbDsKIC0gKHZvaWQpd2ViVmlldzooV2Vi
VmlldyAqKXNlbmRlciBkcmFnSW1hZ2U6KE5TSW1hZ2UgKilhbkltYWdlIGF0OihOU1BvaW50KXZp
ZXdMb2NhdGlvbiBvZmZzZXQ6KE5TU2l6ZSlpbml0aWFsT2Zmc2V0IGV2ZW50OihOU0V2ZW50ICop
ZXZlbnQgcGFzdGVib2FyZDooTlNQYXN0ZWJvYXJkICopcGJvYXJkIHNvdXJjZTooaWQpc291cmNl
T2JqIHNsaWRlQmFjazooQk9PTClzbGlkZUZsYWcgZm9yVmlldzooTlNWaWV3ICopdmlldwogewog
ICAgICBhc3NlcnQoIWRyYWdnaW5nSW5mbyk7Ci0gICAgIGlmIChnTGF5b3V0VGVzdENvbnRyb2xs
ZXItPmFkZEZpbGVUb1Bhc3RlYm9hcmRPbkRyYWcoKSkgewotICAgICAgICAgW3Bib2FyZCBkZWNs
YXJlVHlwZXM6W05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0Ok5TRmlsZW5hbWVzUGJvYXJkVHlwZV0g
b3duZXI6bmlsXTsKLSAgICAgICAgIFtwYm9hcmQgc2V0UHJvcGVydHlMaXN0OltOU0FycmF5IGFy
cmF5V2l0aE9iamVjdDpAIkRSVEZha2VGaWxlIl0gZm9yVHlwZTpOU0ZpbGVuYW1lc1Bib2FyZFR5
cGVdOwotICAgICB9CiAgICAgIGRyYWdnaW5nSW5mbyA9IFtbRHVtcFJlbmRlclRyZWVEcmFnZ2lu
Z0luZm8gYWxsb2NdIGluaXRXaXRoSW1hZ2U6YW5JbWFnZSBvZmZzZXQ6aW5pdGlhbE9mZnNldCBw
YXN0ZWJvYXJkOnBib2FyZCBzb3VyY2U6c291cmNlT2JqXTsKICAgICAgW3NlbmRlciBkcmFnZ2lu
Z1VwZGF0ZWQ6ZHJhZ2dpbmdJbmZvXTsKICAgICAgW0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIgcmVw
bGF5U2F2ZWRFdmVudHNdOwo=
</data>
<flag name="review"
          id="15392"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>