<?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>121368</bug_id>
          
          <creation_ts>2013-09-14 14:02:27 -0700</creation_ts>
          <short_desc>[CTTE] Node subclasses should take a Document by reference in their constructor (Part 3)</short_desc>
          <delta_ts>2013-09-14 14:32:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>929295</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-09-14 14:02:27 -0700</bug_when>
    <thetext>[CTTE] Node subclasses should take a Document by reference in their constructor (Part 3)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929299</commentid>
    <comment_count>1</comment_count>
      <attachid>211667</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-09-14 14:14:19 -0700</bug_when>
    <thetext>Created attachment 211667
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929300</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-14 14:16:33 -0700</bug_when>
    <thetext>Attachment 211667 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/dom/Document.cpp&apos;, u&apos;Source/WebCore/editing/DeleteButton.cpp&apos;, u&apos;Source/WebCore/editing/DeleteButton.h&apos;, u&apos;Source/WebCore/editing/DeleteButtonController.cpp&apos;, u&apos;Source/WebCore/editing/EditorCommand.cpp&apos;, u&apos;Source/WebCore/editing/htmlediting.cpp&apos;, u&apos;Source/WebCore/html/BaseChooserOnlyDateAndTimeInputType.cpp&apos;, u&apos;Source/WebCore/html/ColorInputType.cpp&apos;, u&apos;Source/WebCore/html/FileInputType.cpp&apos;, u&apos;Source/WebCore/html/HTMLBDIElement.h&apos;, u&apos;Source/WebCore/html/HTMLBRElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLBRElement.h&apos;, u&apos;Source/WebCore/html/HTMLBaseElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLBaseElement.h&apos;, u&apos;Source/WebCore/html/HTMLBaseFontElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLBaseFontElement.h&apos;, u&apos;Source/WebCore/html/HTMLButtonElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLButtonElement.h&apos;, u&apos;Source/WebCore/html/HTMLCanvasElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLCanvasElement.h&apos;, u&apos;Source/WebCore/html/HTMLDListElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLDListElement.h&apos;, u&apos;Source/WebCore/html/HTMLDataListElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLDataListElement.h&apos;, u&apos;Source/WebCore/html/HTMLDetailsElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLDetailsElement.h&apos;, u&apos;Source/WebCore/html/HTMLDirectoryElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLDirectoryElement.h&apos;, u&apos;Source/WebCore/html/HTMLDivElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLDivElement.h&apos;, u&apos;Source/WebCore/html/HTMLElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLEmbedElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLEmbedElement.h&apos;, u&apos;Source/WebCore/html/HTMLFieldSetElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLFieldSetElement.h&apos;, u&apos;Source/WebCore/html/HTMLFontElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLFontElement.h&apos;, u&apos;Source/WebCore/html/HTMLFormElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLFormElement.h&apos;, u&apos;Source/WebCore/html/HTMLFrameElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLFrameElement.h&apos;, u&apos;Source/WebCore/html/HTMLFrameSetElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLFrameSetElement.h&apos;, u&apos;Source/WebCore/html/HTMLHRElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLHRElement.h&apos;, u&apos;Source/WebCore/html/HTMLHeadElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLHeadElement.h&apos;, u&apos;Source/WebCore/html/HTMLHeadingElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLHeadingElement.h&apos;, u&apos;Source/WebCore/html/HTMLHtmlElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLHtmlElement.h&apos;, u&apos;Source/WebCore/html/HTMLIFrameElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLIFrameElement.h&apos;, u&apos;Source/WebCore/html/HTMLImageElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLImageElement.h&apos;, u&apos;Source/WebCore/html/HTMLInputElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLInputElement.h&apos;, u&apos;Source/WebCore/html/HTMLKeygenElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLKeygenElement.h&apos;, u&apos;Source/WebCore/html/HTMLLIElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLLIElement.h&apos;, u&apos;Source/WebCore/html/HTMLLabelElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLLabelElement.h&apos;, u&apos;Source/WebCore/html/HTMLLegendElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLLegendElement.h&apos;, u&apos;Source/WebCore/html/HTMLLinkElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLLinkElement.h&apos;, u&apos;Source/WebCore/html/HTMLModElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLModElement.h&apos;, u&apos;Source/WebCore/html/HTMLPreElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLPreElement.h&apos;, u&apos;Source/WebCore/html/HTMLQuoteElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLQuoteElement.h&apos;, u&apos;Source/WebCore/html/HTMLSummaryElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLTableCaptionElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLTableCaptionElement.h&apos;, u&apos;Source/WebCore/html/HTMLTableColElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLTableColElement.h&apos;, u&apos;Source/WebCore/html/HTMLTableElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLTagNames.in&apos;, u&apos;Source/WebCore/html/HTMLTextAreaElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLTextFormControlElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLViewSourceDocument.cpp&apos;, u&apos;Source/WebCore/html/ImageDocument.cpp&apos;, u&apos;Source/WebCore/html/RangeInputType.cpp&apos;, u&apos;Source/WebCore/html/TextFieldInputType.cpp&apos;, u&apos;Source/WebCore/html/ValidationMessage.cpp&apos;, u&apos;Source/WebCore/html/parser/HTMLConstructionSite.cpp&apos;, u&apos;Source/WebCore/html/shadow/DetailsMarkerControl.cpp&apos;, u&apos;Source/WebCore/html/shadow/DetailsMarkerControl.h&apos;, u&apos;Source/WebCore/html/shadow/MediaControlElementTypes.cpp&apos;, u&apos;Source/WebCore/html/shadow/MediaControls.cpp&apos;, u&apos;Source/WebCore/html/shadow/MediaControlsApple.cpp&apos;, u&apos;Source/WebCore/html/shadow/MeterShadowElement.cpp&apos;, u&apos;Source/WebCore/html/shadow/ProgressShadowElement.cpp&apos;, u&apos;Source/WebCore/html/shadow/SliderThumbElement.cpp&apos;, u&apos;Source/WebCore/html/shadow/SpinButtonElement.cpp&apos;, u&apos;Source/WebCore/html/shadow/TextControlInnerElements.cpp&apos;]&quot; exit_code: 1
Source/WebCore/html/HTMLDetailsElement.h:30:  The parameter name &quot;document&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 99 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929303</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-09-14 14:32:10 -0700</bug_when>
    <thetext>Committed r155786: &lt;http://trac.webkit.org/changeset/155786&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211667</attachid>
            <date>2013-09-14 14:14:19 -0700</date>
            <delta_ts>2013-09-14 14:28:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121368-20130914141418.patch</filename>
            <type>text/plain</type>
            <size>110330</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTc4NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU1IEBACisyMDEzLTA5LTE0ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NUVEVdIE5vZGUgc3ViY2xhc3NlcyBz
aG91bGQgdGFrZSBhIERvY3VtZW50IGJ5IHJlZmVyZW5jZSBpbiB0aGVpciBjb25zdHJ1Y3RvciAo
UGFydCAzKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTIxMzY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q29udmVydHMgdGhlIGZvbGxvd2luZyB0byB0YWtlIGEgRG9jdW1lbnQgcmVmZXJlbmNlOgorICAg
ICAgICAgICAgLSBEZWxldGVCdXR0b24KKyAgICAgICAgICAgIC0gRGV0YWlsc0NvbnRlbnRFbGVt
ZW50CisgICAgICAgICAgICAtIERldGFpbHNNYXJrZXJDb250cm9sCisgICAgICAgICAgICAtIERl
dGFpbHNTdW1tYXJ5RWxlbWVudAorICAgICAgICAgICAgLSBIVE1MQkRJRWxlbWVudAorICAgICAg
ICAgICAgLSBIVE1MQlJFbGVtZW50CisgICAgICAgICAgICAtIEhUTUxCYXNlRWxlbWVudAorICAg
ICAgICAgICAgLSBIVE1MQmFzZUZvbnRFbGVtZW50CisgICAgICAgICAgICAtIEhUTUxCdXR0b25F
bGVtZW50CisgICAgICAgICAgICAtIEhUTUxDYW52YXNFbGVtZW50CisgICAgICAgICAgICAtIEhU
TUxETGlzdEVsZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTERhdGFMaXN0RWxlbWVudAorICAgICAg
ICAgICAgLSBIVE1MRGV0YWlsc0VsZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTERpcmVjdG9yeUVs
ZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTERpdkVsZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTEVt
YmVkRWxlbWVudAorICAgICAgICAgICAgLSBIVE1MRmllbGRTZXRFbGVtZW50CisgICAgICAgICAg
ICAtIEhUTUxGb250RWxlbWVudAorICAgICAgICAgICAgLSBIVE1MRm9ybUVsZW1lbnQKKyAgICAg
ICAgICAgIC0gSFRNTEZyYW1lRWxlbWVudAorICAgICAgICAgICAgLSBIVE1MRnJhbWVTZXRFbGVt
ZW50CisgICAgICAgICAgICAtIEhUTUxIUkVsZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTEhlYWRF
bGVtZW50CisgICAgICAgICAgICAtIEhUTUxIZWFkaW5nRWxlbWVudAorICAgICAgICAgICAgLSBI
VE1MSHRtbEVsZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTElGcmFtZUVsZW1lbnQKKyAgICAgICAg
ICAgIC0gSFRNTEltYWdlRWxlbWVudAorICAgICAgICAgICAgLSBIVE1MSW5wdXRFbGVtZW50Cisg
ICAgICAgICAgICAtIEhUTUxLZXlnZW5FbGVtZW50CisgICAgICAgICAgICAtIEhUTUxMSUVsZW1l
bnQKKyAgICAgICAgICAgIC0gSFRNTExhYmVsRWxlbWVudAorICAgICAgICAgICAgLSBIVE1MTGVn
ZW5kRWxlbWVudAorICAgICAgICAgICAgLSBIVE1MTGlua0VsZW1lbnQKKyAgICAgICAgICAgIC0g
SFRNTE1vZEVsZW1lbnQKKyAgICAgICAgICAgIC0gSFRNTFByZUVsZW1lbnQKKyAgICAgICAgICAg
IC0gSFRNTFF1b3RlRWxlbWVudAorICAgICAgICAgICAgLSBIVE1MVGFibGVDYXB0aW9uRWxlbWVu
dAorICAgICAgICAgICAgLSBIVE1MVGFibGVDb2xFbGVtZW50CisgICAgICAgICAgICAtIEltYWdl
RG9jdW1lbnRFbGVtZW50CisgICAgICAgICAgICAtIEtleWdlblNlbGVjdEVsZW1lbnQKKyAgICAg
ICAgICAgIC0gU3VtbWFyeUNvbnRlbnRFbGVtZW50CisgICAgICAgICAgICAtIFVwbG9hZEJ1dHRv
bkVsZW1lbnQKKworCiAyMDEzLTA5LTE0ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlh
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIEdUSyBidWlsZCBmaXggYWZ0ZXIgcjE1NTc3NC4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gMTU1Nzc4KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDczNiw3ICs0NzM2
LDcgQEAgSFRNTENhbnZhc0VsZW1lbnQqIERvY3VtZW50OjpnZXRDU1NDYW52YQogewogICAgIFJl
ZlB0cjxIVE1MQ2FudmFzRWxlbWVudD4mIGVsZW1lbnQgPSBtX2Nzc0NhbnZhc0VsZW1lbnRzLmFk
ZChuYW1lLCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CiAgICAgaWYgKCFlbGVtZW50KQotICAg
ICAgICBlbGVtZW50ID0gSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAg
ZWxlbWVudCA9IEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGUoKnRoaXMpOwogICAgIHJldHVybiBl
bGVtZW50LmdldCgpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUJ1
dHRvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVCdXR0
b24uY3BwCShyZXZpc2lvbiAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZUJ1dHRvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDEyICs0MCwxMiBAQCB1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOwogCiAjaWYgRU5BQkxFKERFTEVUSU9OX1VJKQogCi1pbmxpbmUgRGVs
ZXRlQnV0dG9uOjpEZWxldGVCdXR0b24oRG9jdW1lbnQqIGRvY3VtZW50KQoraW5saW5lIERlbGV0
ZUJ1dHRvbjo6RGVsZXRlQnV0dG9uKERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IEhUTUxJbWFn
ZUVsZW1lbnQoaW1nVGFnLCBkb2N1bWVudCkKIHsKIH0KIAotUGFzc1JlZlB0cjxEZWxldGVCdXR0
b24+IERlbGV0ZUJ1dHRvbjo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8
RGVsZXRlQnV0dG9uPiBEZWxldGVCdXR0b246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7
CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZWxldGVCdXR0b24oZG9jdW1lbnQpKTsKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlQnV0dG9uLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVCdXR0b24uaAkocmV2aXNpb24gMTU1Nzc4KQor
KysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVCdXR0b24uaAkod29ya2luZyBjb3B5KQpA
QCAtMzIsMTIgKzMyLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGVsZXRlQnV0
dG9uIDogcHVibGljIEhUTUxJbWFnZUVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPERlbGV0ZUJ1dHRvbj4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8RGVsZXRlQnV0dG9uPiBjcmVhdGUoRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgYm9v
bCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIE9WRVJSSURFIHsgcmV0dXJuIHRydWU7
IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBEZWxldGVCdXR0b24oRG9jdW1lbnQqKTsKKyAg
ICBleHBsaWNpdCBEZWxldGVCdXR0b24oRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBk
ZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVCdXR0b25Db250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxNTU3Nzgp
CisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMDMsNyArMjAzLDcgQEAgdm9pZCBEZWxldGVCdXR0b25Db250cm9s
bGVyOjpkZXZpY2VTY2FsZQogCiB2b2lkIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI6OmNyZWF0ZURl
bGV0aW9uVUkoKQogewotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gY29udGFpbmVyID0gSFRN
TERpdkVsZW1lbnQ6OmNyZWF0ZSgmbV90YXJnZXQtPmRvY3VtZW50KCkpOworICAgIFJlZlB0cjxI
VE1MRGl2RWxlbWVudD4gY29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShtX3Rhcmdl
dC0+ZG9jdW1lbnQoKSk7CiAgICAgY29udGFpbmVyLT5zZXRJZEF0dHJpYnV0ZShjb250YWluZXJF
bGVtZW50SWRlbnRpZmllcik7CiAKICAgICBjb250YWluZXItPnNldElubGluZVN0eWxlUHJvcGVy
dHkoQ1NTUHJvcGVydHlXZWJraXRVc2VyRHJhZywgQ1NTVmFsdWVOb25lKTsKQEAgLTIxNyw3ICsy
MTcsNyBAQCB2b2lkIERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI6OmNyZWF0ZURlbGV0CiAgICAgY29u
dGFpbmVyLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5Qm90dG9tLCAwLCBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsKICAgICBjb250YWluZXItPnNldElubGluZVN0eWxlUHJv
cGVydHkoQ1NTUHJvcGVydHlMZWZ0LCAwLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsKIAot
ICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gb3V0bGluZSA9IEhUTUxEaXZFbGVtZW50OjpjcmVh
dGUoJm1fdGFyZ2V0LT5kb2N1bWVudCgpKTsKKyAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IG91
dGxpbmUgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKG1fdGFyZ2V0LT5kb2N1bWVudCgpKTsKICAg
ICBvdXRsaW5lLT5zZXRJZEF0dHJpYnV0ZShvdXRsaW5lRWxlbWVudElkZW50aWZpZXIpOwogCiAg
ICAgY29uc3QgaW50IGJvcmRlcldpZHRoID0gNDsKQEAgLTI0MSw3ICsyNDEsNyBAQCB2b2lkIERl
bGV0ZUJ1dHRvbkNvbnRyb2xsZXI6OmNyZWF0ZURlbGV0CiAgICAgaWYgKGVjKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBSZWZQdHI8RGVsZXRlQnV0dG9uPiBidXR0b24gPSBEZWxldGVCdXR0b246
OmNyZWF0ZSgmbV90YXJnZXQtPmRvY3VtZW50KCkpOworICAgIFJlZlB0cjxEZWxldGVCdXR0b24+
IGJ1dHRvbiA9IERlbGV0ZUJ1dHRvbjo6Y3JlYXRlKG1fdGFyZ2V0LT5kb2N1bWVudCgpKTsKICAg
ICBidXR0b24tPnNldElkQXR0cmlidXRlKGJ1dHRvbkVsZW1lbnRJZGVudGlmaWVyKTsKIAogICAg
IGNvbnN0IGludCBidXR0b25XaWR0aCA9IDMwOwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3JDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvckNvbW1hbmQuY3BwCShyZXZpc2lvbiAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OTMsNyArNDkzLDcg
QEAgc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydEJhY2t0YWIoRnJhbWUmIAogCiBzdGF0aWMgYm9v
bCBleGVjdXRlSW5zZXJ0SG9yaXpvbnRhbFJ1bGUoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRv
ckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgUmVmUHRyPEhUTUxI
UkVsZW1lbnQ+IHJ1bGUgPSBIVE1MSFJFbGVtZW50OjpjcmVhdGUoZnJhbWUuZG9jdW1lbnQoKSk7
CisgICAgUmVmUHRyPEhUTUxIUkVsZW1lbnQ+IHJ1bGUgPSBIVE1MSFJFbGVtZW50OjpjcmVhdGUo
KmZyYW1lLmRvY3VtZW50KCkpOwogICAgIGlmICghdmFsdWUuaXNFbXB0eSgpKQogICAgICAgICBy
dWxlLT5zZXRJZEF0dHJpYnV0ZSh2YWx1ZSk7CiAgICAgcmV0dXJuIGV4ZWN1dGVJbnNlcnROb2Rl
KGZyYW1lLCBydWxlLnJlbGVhc2UoKSk7CkBAIC01MDcsNyArNTA3LDcgQEAgc3RhdGljIGJvb2wg
ZXhlY3V0ZUluc2VydEhUTUwoRnJhbWUmIGZyYQogc3RhdGljIGJvb2wgZXhlY3V0ZUluc2VydElt
YWdlKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJp
bmcmIHZhbHVlKQogewogICAgIC8vIEZJWE1FOiBJZiB1c2VySW50ZXJmYWNlIGlzIHRydWUsIHdl
IHNob3VsZCBkaXNwbGF5IGEgZGlhbG9nIGJveCBhbmQgbGV0IHRoZSB1c2VyIGNob29zZSBhIGxv
Y2FsIGltYWdlLgotICAgIFJlZlB0cjxIVE1MSW1hZ2VFbGVtZW50PiBpbWFnZSA9IEhUTUxJbWFn
ZUVsZW1lbnQ6OmNyZWF0ZShmcmFtZS5kb2N1bWVudCgpKTsKKyAgICBSZWZQdHI8SFRNTEltYWdl
RWxlbWVudD4gaW1hZ2UgPSBIVE1MSW1hZ2VFbGVtZW50OjpjcmVhdGUoKmZyYW1lLmRvY3VtZW50
KCkpOwogICAgIGltYWdlLT5zZXRTcmModmFsdWUpOwogICAgIHJldHVybiBleGVjdXRlSW5zZXJ0
Tm9kZShmcmFtZSwgaW1hZ2UucmVsZWFzZSgpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvaHRtbGVkaXRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvaHRtbGVkaXRpbmcuY3BwCShyZXZpc2lvbiAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTA4LDcgKzkwOCw3IEBA
IFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZURlZmF1bHRQYXIKIHsKICAgICBzd2l0Y2gg
KGRvY3VtZW50LT5mcmFtZSgpLT5lZGl0b3IoKS5kZWZhdWx0UGFyYWdyYXBoU2VwYXJhdG9yKCkp
IHsKICAgICBjYXNlIEVkaXRvclBhcmFncmFwaFNlcGFyYXRvcklzRGl2OgotICAgICAgICByZXR1
cm4gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgICAgIHJldHVybiBIVE1M
RGl2RWxlbWVudDo6Y3JlYXRlKCpkb2N1bWVudCk7CiAgICAgY2FzZSBFZGl0b3JQYXJhZ3JhcGhT
ZXBhcmF0b3JJc1A6CiAgICAgICAgIHJldHVybiBIVE1MUGFyYWdyYXBoRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKICAgICB9CkBAIC05MTksNyArOTE5LDcgQEAgUGFzc1JlZlB0cjxIVE1MRWxl
bWVudD4gY3JlYXRlRGVmYXVsdFBhcgogCiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVC
cmVha0VsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQogewotICAgIHJldHVybiBIVE1MQlJFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIHJldHVybiBIVE1MQlJFbGVtZW50OjpjcmVhdGUo
KmRvY3VtZW50KTsKIH0KIAogUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlT3JkZXJlZExp
c3RFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKQEAgLTkzNCw3ICs5MzQsNyBAQCBQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBjcmVhdGVVbm9yZGVyZWRMCiAKIFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGNyZWF0ZUxpc3RJdGVtRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCiB7Ci0gICAgcmV0
dXJuIEhUTUxMSUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgcmV0dXJuIEhUTUxMSUVs
ZW1lbnQ6OmNyZWF0ZSgqZG9jdW1lbnQpOwogfQogCiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBj
cmVhdGVIVE1MRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaG9vc2VyT25seURhdGVBbmRU
aW1lSW5wdXRUeXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VD
aG9vc2VyT25seURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAkocmV2aXNpb24gMTU1Nzc4KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hvb3Nlck9ubHlEYXRlQW5kVGltZUlucHV0VHlwZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBCYXNlQ2hvb3Nlck9ubHlE
YXRlQW5kVGltZUlucHV0VHlwZQogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCB2YWx1ZUNvbnRhaW5lclBzZXVkbywgKCItd2Via2l0LWRhdGUtYW5kLXRpbWUtdmFsdWUi
LCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKLSAgICBSZWZQdHI8SFRN
TERpdkVsZW1lbnQ+IHZhbHVlQ29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZSgmZWxl
bWVudCgpLT5kb2N1bWVudCgpKTsKKyAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHZhbHVlQ29u
dGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCkpOwog
ICAgIHZhbHVlQ29udGFpbmVyLT5zZXRQc2V1ZG8odmFsdWVDb250YWluZXJQc2V1ZG8pOwogICAg
IGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCh2YWx1ZUNvbnRh
aW5lci5nZXQoKSk7CiAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9Db2xvcklucHV0VHlwZS5jcHAJKHJldmlzaW9uIDE1NTc3OCkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTksOSArMTE5
LDkgQEAgdm9pZCBDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZQogICAgIEFTU0VS
VChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7CiAKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBl
bGVtZW50KCktPmRvY3VtZW50KCk7Ci0gICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiB3cmFwcGVy
RWxlbWVudCA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoJmRvY3VtZW50KTsKKyAgICBSZWZQdHI8
SFRNTERpdkVsZW1lbnQ+IHdyYXBwZXJFbGVtZW50ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCk7CiAgICAgd3JhcHBlckVsZW1lbnQtPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13
ZWJraXQtY29sb3Itc3dhdGNoLXdyYXBwZXIiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKSk7Ci0gICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBjb2xvclN3YXRjaCA9IEhUTUxE
aXZFbGVtZW50OjpjcmVhdGUoJmRvY3VtZW50KTsKKyAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+
IGNvbG9yU3dhdGNoID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29s
b3JTd2F0Y2gtPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtY29sb3Itc3dhdGNoIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHdyYXBwZXJFbGVtZW50
LT5hcHBlbmRDaGlsZChjb2xvclN3YXRjaC5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04p
OwogICAgIGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZCh3cmFw
cGVyRWxlbWVudC5yZWxlYXNlKCksIEFTU0VSVF9OT19FWENFUFRJT04pOwpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCShyZXZpc2lvbiAxNTU3NzgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSwxNiAr
NDksMTYgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogY2xhc3MgVXBsb2FkQnV0dG9u
RWxlbWVudCA6IHB1YmxpYyBIVE1MSW5wdXRFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxVcGxvYWRCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxVcGxvYWRCdXR0b25FbGVtZW50PiBjcmVhdGVGb3JNdWx0aXBsZShE
b2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVwbG9hZEJ1dHRvbkVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCYpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFVwbG9hZEJ1dHRvbkVsZW1l
bnQ+IGNyZWF0ZUZvck11bHRpcGxlKERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgVXBsb2Fk
QnV0dG9uRWxlbWVudChEb2N1bWVudCopOworICAgIFVwbG9hZEJ1dHRvbkVsZW1lbnQoRG9jdW1l
bnQmKTsKIAogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgp
IGNvbnN0OwogfTsKIAotUGFzc1JlZlB0cjxVcGxvYWRCdXR0b25FbGVtZW50PiBVcGxvYWRCdXR0
b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxVcGxvYWRC
dXR0b25FbGVtZW50PiBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50KQogewogICAgIFJlZlB0cjxVcGxvYWRCdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJl
ZihuZXcgVXBsb2FkQnV0dG9uRWxlbWVudChkb2N1bWVudCkpOwogICAgIGJ1dHRvbi0+c2V0VHlw
ZSgiYnV0dG9uIik7CkBAIC02Niw3ICs2Niw3IEBAIFBhc3NSZWZQdHI8VXBsb2FkQnV0dG9uRWxl
bWVudD4gVXBsb2FkQnUKICAgICByZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsKIH0KIAotUGFzc1Jl
ZlB0cjxVcGxvYWRCdXR0b25FbGVtZW50PiBVcGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGVGb3JN
dWx0aXBsZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPFVwbG9hZEJ1dHRvbkVsZW1l
bnQ+IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZUZvck11bHRpcGxlKERvY3VtZW50JiBkb2N1
bWVudCkKIHsKICAgICBSZWZQdHI8VXBsb2FkQnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRS
ZWYobmV3IFVwbG9hZEJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKICAgICBidXR0b24tPnNldFR5
cGUoImJ1dHRvbiIpOwpAQCAtNzQsNyArNzQsNyBAQCBQYXNzUmVmUHRyPFVwbG9hZEJ1dHRvbkVs
ZW1lbnQ+IFVwbG9hZEJ1CiAgICAgcmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CiB9CiAKLVVwbG9h
ZEJ1dHRvbkVsZW1lbnQ6OlVwbG9hZEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQor
VXBsb2FkQnV0dG9uRWxlbWVudDo6VXBsb2FkQnV0dG9uRWxlbWVudChEb2N1bWVudCYgZG9jdW1l
bnQpCiAgICAgOiBIVE1MSW5wdXRFbGVtZW50KGlucHV0VGFnLCBkb2N1bWVudCwgMCwgZmFsc2Up
CiB7CiB9CkBAIC0zMTQsNyArMzE0LDcgQEAgYm9vbCBGaWxlSW5wdXRUeXBlOjppc0ZpbGVVcGxv
YWQoKSBjb25zdAogdm9pZCBGaWxlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsK
ICAgICBBU1NFUlQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpOwotICAgIGVsZW1lbnQoKS0+dXNl
ckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChlbGVtZW50KCktPm11bHRpcGxlKCkgPyBV
cGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGVGb3JNdWx0aXBsZSgmZWxlbWVudCgpLT5kb2N1bWVu
dCgpKTogVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKCZlbGVtZW50KCktPmRvY3VtZW50KCkp
LCBJR05PUkVfRVhDRVBUSU9OKTsKKyAgICBlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3Qo
KS0+YXBwZW5kQ2hpbGQoZWxlbWVudCgpLT5tdWx0aXBsZSgpID8gVXBsb2FkQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlRm9yTXVsdGlwbGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKTogVXBsb2FkQnV0dG9u
RWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSksIElHTk9SRV9FWENFUFRJT04p
OwogfQogCiB2b2lkIEZpbGVJbnB1dFR5cGU6OmRpc2FibGVkQXR0cmlidXRlQ2hhbmdlZCgpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCRElFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQkRJRWxlbWVudC5oCShyZXZpc2lvbiAxNTU3NzgpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCRElFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDE0ICsyNywxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxCRElFbGVt
ZW50IEZJTkFMIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxIVE1MQkRJRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IERvY3VtZW50KiBkb2N1bWVudCkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MQkRJRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
ICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTEJESUVsZW1lbnQobmFtZSwg
ZG9jdW1lbnQpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgSFRNTEJESUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQotICAgICAgICA6IEhUTUxF
bGVtZW50KG5hbWUsIGRvY3VtZW50KQorICAgIEhUTUxCRElFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKKyAgICAgICAgOiBIVE1MRWxlbWVudChu
YW1lLCAmZG9jdW1lbnQpCiAgICAgewogICAgICAgICAvLyBGSVhNRTogUmVuYW1lIHNldFNlbGZP
ckFuY2VzdG9ySGFzRGlyQXV0b0F0dHJpYnV0ZSB0byByZWZsZWN0IHRoZSBmYWN0IGJkaSBhbHNv
IHVzZXMgdGhpcyBmbGFnLgogICAgICAgICBzZXRTZWxmT3JBbmNlc3Rvckhhc0RpckF1dG9BdHRy
aWJ1dGUodHJ1ZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDE1NTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMzLDE4ICszMywxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLUhUTUxCUkVsZW1lbnQ6OkhUTUxCUkVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQotICAg
IDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCitIVE1MQlJFbGVtZW50OjpIVE1MQlJF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
KyAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsICZkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoaGFz
VGFnTmFtZShiclRhZykpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxCUkVsZW1lbnQ+IEhUTUxCUkVs
ZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxCUkVsZW1l
bnQ+IEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBIVE1MQlJFbGVtZW50KGJyVGFnLCBkb2N1bWVudCkpOwogfQogCi1Q
YXNzUmVmUHRyPEhUTUxCUkVsZW1lbnQ+IEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxC
UkVsZW1lbnQ+IEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1M
QlJFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxCUkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCUkVsZW1lbnQuaAkocmV2aXNpb24gMTU1Nzc4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQlJFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDEzICszMCwxMyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxCUkVsZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRNTEVs
ZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxCUkVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCopOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxCUkVsZW1lbnQ+IGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxIVE1MQlJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxIVE1MQlJFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogCiBwcml2YXRlOgotICAgIEhUTUxCUkVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgSFRNTEJSRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIGNvbGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqKSBP
VkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDE1NTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTMgKzMzLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotaW5saW5lIEhUTUxCYXNlRWxlbWVudDo6
SFRNTEJhc2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBk
b2N1bWVudCkKLSAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQoraW5saW5lIEhU
TUxCYXNlRWxlbWVudDo6SFRNTEJhc2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsICZkb2N1
bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShiYXNlVGFnKSk7CiB9CiAKLVBhc3NSZWZQ
dHI8SFRNTEJhc2VFbGVtZW50PiBIVE1MQmFzZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxCYXNl
RWxlbWVudD4gSFRNTEJhc2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRN
TEJhc2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEJhc2VFbGVtZW50LmgJKHJldmlzaW9uIDE1NTc3OCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEJhc2VFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDEzICsyOSwxMyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxCYXNlRWxlbWVudCBGSU5BTCA6IHB1
YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTEJh
c2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8SFRNTEJhc2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAKICAgICBLVVJMIGhyZWYoKSBjb25zdDsKICAgICB2b2lkIHNl
dEhyZWYoY29uc3QgQXRvbWljU3RyaW5nJik7CiAKIHByaXZhdGU6Ci0gICAgSFRNTEJhc2VFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIEhUTUxCYXNlRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgU3RyaW5n
IHRhcmdldCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBB
dHRyaWJ1dGUmKSBjb25zdCBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJhc2VGb250RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQmFzZUZvbnRFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzc4KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQmFzZUZvbnRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksMTMg
KzI5LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1l
czsKIAotaW5saW5lIEhUTUxCYXNlRm9udEVsZW1lbnQ6OkhUTUxCYXNlRm9udEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQotICAgIDogSFRN
TEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCitpbmxpbmUgSFRNTEJhc2VGb250RWxlbWVudDo6
SFRNTEJhc2VGb250RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYgZG9jdW1lbnQpCisgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCAmZG9jdW1lbnQpCiB7CiAg
ICAgQVNTRVJUKGhhc1RhZ05hbWUoYmFzZWZvbnRUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1M
QmFzZUZvbnRFbGVtZW50PiBIVE1MQmFzZUZvbnRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxIVE1MQmFz
ZUZvbnRFbGVtZW50PiBIVE1MQmFzZUZvbnRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgSFRNTEJhc2VGb250RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUZvbnRFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUZvbnRFbGVtZW50LmgJKHJldmlzaW9uIDE1NTc3
OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VGb250RWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSwxMCArMjksMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBI
VE1MQmFzZUZvbnRFbGVtZW50IEZJTkFMIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MQmFzZUZvbnRFbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTEJh
c2VGb250RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwog
CiBwcml2YXRlOgotICAgIEhUTUxCYXNlRm9udEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Kik7CisgICAgSFRNTEJhc2VGb250RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzc4KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQw
LDE1ICs0MCwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1M
TmFtZXM7CiAKLWlubGluZSBIVE1MQnV0dG9uRWxlbWVudDo6SFRNTEJ1dHRvbkVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBIVE1MRm9ybUVs
ZW1lbnQqIGZvcm0pCi0gICAgOiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50LCBmb3JtKQoraW5saW5lIEhUTUxCdXR0b25FbGVtZW50OjpIVE1MQnV0dG9uRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3Jt
RWxlbWVudCogZm9ybSkKKyAgICA6IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQodGFnTmFtZSwgJmRv
Y3VtZW50LCBmb3JtKQogICAgICwgbV90eXBlKFNVQk1JVCkKICAgICAsIG1faXNBY3RpdmF0ZWRT
dWJtaXQoZmFsc2UpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoYnV0dG9uVGFnKSk7CiB9CiAK
LVBhc3NSZWZQdHI8SFRNTEJ1dHRvbkVsZW1lbnQ+IEhUTUxCdXR0b25FbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBIVE1MRm9y
bUVsZW1lbnQqIGZvcm0pCitQYXNzUmVmUHRyPEhUTUxCdXR0b25FbGVtZW50PiBIVE1MQnV0dG9u
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBk
b2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQogewogICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgSFRNTEJ1dHRvbkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGZvcm0pKTsKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmgJKHJldmlzaW9uIDE1NTc3OCkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxCdXR0
b25FbGVtZW50IEZJTkFMIDogcHVibGljIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxCdXR0b25FbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8SFRNTEJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqKTsKIAogICAgIHZvaWQgc2V0VHlwZShjb25z
dCBBdG9taWNTdHJpbmcmKTsKICAgICAKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIE9WRVJSSURFOwogCiBw
cml2YXRlOgotICAgIEhUTUxCdXR0b25FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CisgICAgSFRNTEJ1dHRvbkVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQq
KTsKIAogICAgIGVudW0gVHlwZSB7IFNVQk1JVCwgUkVTRVQsIEJVVFRPTiB9OwogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzc4
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY5LDggKzY5LDggQEAgc3RhdGljIGNvbnN0IGludCBEZWZhdWx0SGVpZ2h0ID0g
MTUwOwogLy8gaW4gZXhjaGFuZ2UgZm9yIGEgc21hbGxlciBtYXhpbXVtIGNhbnZhcyBzaXplLgog
c3RhdGljIGNvbnN0IGZsb2F0IE1heENhbnZhc0FyZWEgPSAzMjc2OCAqIDgxOTI7IC8vIE1heGlt
dW0gY2FudmFzIGFyZWEgaW4gQ1NTIHBpeGVscwogCi1IVE1MQ2FudmFzRWxlbWVudDo6SFRNTENh
bnZhc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3Vt
ZW50KQotICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCitIVE1MQ2FudmFzRWxl
bWVudDo6SFRNTENhbnZhc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50KQog
ICAgICwgbV9zaXplKERlZmF1bHRXaWR0aCwgRGVmYXVsdEhlaWdodCkKICAgICAsIG1fcmVuZGVy
ZXJJc0NhbnZhcyhmYWxzZSkKICAgICAsIG1faWdub3JlUmVzZXQoZmFsc2UpCkBAIC04MywxMiAr
ODMsMTIgQEAgSFRNTENhbnZhc0VsZW1lbnQ6OkhUTUxDYW52YXNFbGVtZW50KGNvbgogICAgIHNl
dEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxD
YW52YXNFbGVtZW50PiBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVu
dCkKK1Bhc3NSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+IEhUTUxDYW52YXNFbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTENh
bnZhc0VsZW1lbnQoY2FudmFzVGFnLCBkb2N1bWVudCkpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxD
YW52YXNFbGVtZW50PiBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8SFRNTENhbnZhc0Vs
ZW1lbnQ+IEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRN
TENhbnZhc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgJKHJldmlzaW9uIDE1NTc3OCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjQsOCAr
NjQsOCBAQCBwdWJsaWM6CiAKIGNsYXNzIEhUTUxDYW52YXNFbGVtZW50IEZJTkFMIDogcHVibGlj
IEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MQ2FudmFz
RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTENh
bnZhc0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MQ2FudmFzRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTENhbnZhc0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAgICB2aXJ0dWFsIH5IVE1MQ2FudmFzRWxlbWVu
dCgpOwogCiAgICAgdm9pZCBhZGRPYnNlcnZlcihDYW52YXNPYnNlcnZlciopOwpAQCAtMTQzLDcg
KzE0Myw3IEBAIHB1YmxpYzoKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IHsg
cmV0dXJuIG1fZGV2aWNlU2NhbGVGYWN0b3I7IH0KIAogcHJpdmF0ZToKLSAgICBIVE1MQ2FudmFz
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBIVE1MQ2FudmFz
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3Ry
aW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVy
KFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTERMaXN0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRExpc3RFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzc4KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRExpc3RFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksMTMgKzI5LDEz
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAot
aW5saW5lIEhUTUxETGlzdEVsZW1lbnQ6OkhUTUxETGlzdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQotICAgIDogSFRNTEVsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpCitpbmxpbmUgSFRNTERMaXN0RWxlbWVudDo6SFRNTERMaXN0RWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAg
OiBIVE1MRWxlbWVudCh0YWdOYW1lLCAmZG9jdW1lbnQpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05h
bWUoZGxUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MRExpc3RFbGVtZW50PiBIVE1MRExpc3RF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRv
Y3VtZW50KQorUGFzc1JlZlB0cjxIVE1MRExpc3RFbGVtZW50PiBIVE1MRExpc3RFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTERMaXN0RWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRExpc3RFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRExpc3RFbGVtZW50LmgJKHJl
dmlzaW9uIDE1NTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERMaXN0RWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMCArMjksMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBIVE1MRExpc3RFbGVtZW50IEZJTkFMIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MRExpc3RFbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRN
TERMaXN0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwog
CiBwcml2YXRlOgotICAgIEhUTUxETGlzdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Kik7CisgICAgSFRNTERMaXN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKIH07CiAKIH0gLy9uYW1lc3BhY2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTERhdGFMaXN0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRGF0YUxpc3RFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzc4KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzks
MTQgKzM5LDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotaW5saW5lIEhUTUxEYXRhTGlz
dEVsZW1lbnQ6OkhUTUxEYXRhTGlzdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQqIGRvY3VtZW50KQotICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpCitpbmxpbmUgSFRNTERhdGFMaXN0RWxlbWVudDo6SFRNTERhdGFMaXN0RWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBIVE1M
RWxlbWVudCh0YWdOYW1lLCAmZG9jdW1lbnQpCiB7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTERhdGFM
aXN0RWxlbWVudD4gSFRNTERhdGFMaXN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8SFRNTERhdGFMaXN0
RWxlbWVudD4gSFRNTERhdGFMaXN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9i
c2VydmUoZG9jdW1lbnQsIEZlYXR1cmVPYnNlcnZlcjo6RGF0YUxpc3RFbGVtZW50KTsKKyAgICBG
ZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoJmRvY3VtZW50LCBGZWF0dXJlT2JzZXJ2ZXI6OkRhdGFM
aXN0RWxlbWVudCk7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MRGF0YUxpc3RFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERhdGFMaXN0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERhdGFMaXN0RWxlbWVudC5oCShyZXZpc2lvbiAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTQgKzQwLDE0
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTERhdGFMaXN0RWxlbWVudCBGSU5B
TCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
SFRNTERhdGFMaXN0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxEYXRhTGlzdEVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIFBhc3NSZWZQdHI8SFRNTENv
bGxlY3Rpb24+IG9wdGlvbnMoKTsKIAogICAgIHZvaWQgb3B0aW9uRWxlbWVudENoaWxkcmVuQ2hh
bmdlZCgpOwogCiBwcml2YXRlOgotICAgIEhUTUxEYXRhTGlzdEVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgSFRNTERhdGFMaXN0RWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAJKHJldmlzaW9u
IDE1NTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDMsMTEgKzQzLDExIEBAIHN0YXRpYyBjb25zdCBBdG9taWNTdHJp
bmcmIHN1bW1hcnlRdWVyeVMKIAogY2xhc3MgRGV0YWlsc0NvbnRlbnRFbGVtZW50IDogcHVibGlj
IEluc2VydGlvblBvaW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEZXRhaWxz
Q29udGVudEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRy
PERldGFpbHNDb250ZW50RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0g
ICAgRGV0YWlsc0NvbnRlbnRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKLSAgICAgICAgOiBJ
bnNlcnRpb25Qb2ludChIVE1MTmFtZXM6OndlYmtpdFNoYWRvd0NvbnRlbnRUYWcsIGRvY3VtZW50
KQorICAgIERldGFpbHNDb250ZW50RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgICAg
IDogSW5zZXJ0aW9uUG9pbnQoSFRNTE5hbWVzOjp3ZWJraXRTaGFkb3dDb250ZW50VGFnLCAmZG9j
dW1lbnQpCiAgICAgewogICAgIH0KIApAQCAtNTksMTQgKzU5LDE0IEBAIHByaXZhdGU6CiAgICAg
fQogfTsKIAotUGFzc1JlZlB0cjxEZXRhaWxzQ29udGVudEVsZW1lbnQ+IERldGFpbHNDb250ZW50
RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8RGV0YWlsc0Nv
bnRlbnRFbGVtZW50PiBEZXRhaWxzQ29udGVudEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9j
dW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZXRhaWxzQ29udGVudEVsZW1lbnQo
ZG9jdW1lbnQpKTsKIH0KIAogY2xhc3MgRGV0YWlsc1N1bW1hcnlFbGVtZW50IDogcHVibGljIElu
c2VydGlvblBvaW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEZXRhaWxzU3Vt
bWFyeUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPERl
dGFpbHNTdW1tYXJ5RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CiAKICAgICBFbGVtZW50KiBm
YWxsYmFja1N1bW1hcnkoKQogICAgIHsKQEAgLTc1LDkgKzc1LDEwIEBAIHB1YmxpYzoKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgRGV0YWlsc1N1bW1hcnlFbGVtZW50KERvY3VtZW50KiBkb2N1bWVu
dCkKLSAgICAgICAgOiBJbnNlcnRpb25Qb2ludChIVE1MTmFtZXM6OndlYmtpdFNoYWRvd0NvbnRl
bnRUYWcsIGRvY3VtZW50KQotICAgIHsgfQorICAgIERldGFpbHNTdW1tYXJ5RWxlbWVudChEb2N1
bWVudCYgZG9jdW1lbnQpCisgICAgICAgIDogSW5zZXJ0aW9uUG9pbnQoSFRNTE5hbWVzOjp3ZWJr
aXRTaGFkb3dDb250ZW50VGFnLCAmZG9jdW1lbnQpCisgICAgeworICAgIH0KIAogICAgIHZpcnR1
YWwgTWF0Y2hUeXBlIG1hdGNoVHlwZUZvcihOb2RlKiBub2RlKSBjb25zdCBPVkVSUklERQogICAg
IHsKQEAgLTg3LDI1ICs4OCwyNSBAQCBwcml2YXRlOgogICAgIH0KIH07CiAKLVBhc3NSZWZQdHI8
RGV0YWlsc1N1bW1hcnlFbGVtZW50PiBEZXRhaWxzU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZShEb2N1
bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPERldGFpbHNTdW1tYXJ5RWxlbWVudD4gRGV0YWls
c1N1bW1hcnlFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIFJlZlB0
cjxIVE1MU3VtbWFyeUVsZW1lbnQ+IHN1bW1hcnkgPSBIVE1MU3VtbWFyeUVsZW1lbnQ6OmNyZWF0
ZShzdW1tYXJ5VGFnLCBkb2N1bWVudCk7Ci0gICAgc3VtbWFyeS0+YXBwZW5kQ2hpbGQoVGV4dDo6
Y3JlYXRlKGRvY3VtZW50LCBkZWZhdWx0RGV0YWlsc1N1bW1hcnlUZXh0KCkpLCBBU1NFUlRfTk9f
RVhDRVBUSU9OKTsKKyAgICBSZWZQdHI8SFRNTFN1bW1hcnlFbGVtZW50PiBzdW1tYXJ5ID0gSFRN
TFN1bW1hcnlFbGVtZW50OjpjcmVhdGUoc3VtbWFyeVRhZywgJmRvY3VtZW50KTsKKyAgICBzdW1t
YXJ5LT5hcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUoJmRvY3VtZW50LCBkZWZhdWx0RGV0YWlsc1N1
bW1hcnlUZXh0KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAogICAgIFJlZlB0cjxEZXRhaWxz
U3VtbWFyeUVsZW1lbnQ+IGRldGFpbHNTdW1tYXJ5ID0gYWRvcHRSZWYobmV3IERldGFpbHNTdW1t
YXJ5RWxlbWVudChkb2N1bWVudCkpOwogICAgIGRldGFpbHNTdW1tYXJ5LT5hcHBlbmRDaGlsZChz
dW1tYXJ5KTsKICAgICByZXR1cm4gZGV0YWlsc1N1bW1hcnkucmVsZWFzZSgpOwogfQogCi1QYXNz
UmVmUHRyPEhUTUxEZXRhaWxzRWxlbWVudD4gSFRNTERldGFpbHNFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0
cjxIVE1MRGV0YWlsc0VsZW1lbnQ+IEhUTUxEZXRhaWxzRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBSZWZQdHI8
SFRNTERldGFpbHNFbGVtZW50PiBkZXRhaWxzID0gYWRvcHRSZWYobmV3IEhUTUxEZXRhaWxzRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogICAgIGRldGFpbHMtPmVuc3VyZVVzZXJBZ2VudFNo
YWRvd1Jvb3QoKTsKICAgICByZXR1cm4gZGV0YWlscy5yZWxlYXNlKCk7CiB9CiAKLUhUTUxEZXRh
aWxzRWxlbWVudDo6SFRNTERldGFpbHNFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KQorSFRNTERldGFpbHNFbGVtZW50OjpIVE1MRGV0YWlsc0VsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQo
dGFnTmFtZSwgJmRvY3VtZW50KQogICAgICwgbV9pc09wZW4oZmFsc2UpCiB7CiAgICAgQVNTRVJU
KGhhc1RhZ05hbWUoZGV0YWlsc1RhZykpOwpAQCAtMTE4LDggKzExOSw4IEBAIFJlbmRlck9iamVj
dCogSFRNTERldGFpbHNFbGVtZW50OjpjcmVhdGUKIAogdm9pZCBIVE1MRGV0YWlsc0VsZW1lbnQ6
OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCogcm9vdCkKIHsKLSAgICByb290
LT5hcHBlbmRDaGlsZChEZXRhaWxzU3VtbWFyeUVsZW1lbnQ6OmNyZWF0ZSgmZG9jdW1lbnQoKSks
IEFTU0VSVF9OT19FWENFUFRJT04sIEF0dGFjaExhemlseSk7Ci0gICAgcm9vdC0+YXBwZW5kQ2hp
bGQoRGV0YWlsc0NvbnRlbnRFbGVtZW50OjpjcmVhdGUoJmRvY3VtZW50KCkpLCBBU1NFUlRfTk9f
RVhDRVBUSU9OLCBBdHRhY2hMYXppbHkpOworICAgIHJvb3QtPmFwcGVuZENoaWxkKERldGFpbHNT
dW1tYXJ5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCBB
dHRhY2hMYXppbHkpOworICAgIHJvb3QtPmFwcGVuZENoaWxkKERldGFpbHNDb250ZW50RWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KCkpLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCBBdHRhY2hMYXppbHkp
OwogfQogCiBFbGVtZW50KiBIVE1MRGV0YWlsc0VsZW1lbnQ6OmZpbmRNYWluU3VtbWFyeSgpIGNv
bnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgJKHJldmlz
aW9uIDE1NTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI3LDEzICsyNywxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEhUTUxEZXRhaWxzRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTERldGFpbHNFbGVtZW50PiBjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxIVE1MRGV0YWlsc0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpOwogICAgIHZvaWQgdG9nZ2xlT3Bl
bigpOwogCiAgICAgRWxlbWVudCogZmluZE1haW5TdW1tYXJ5KCkgY29uc3Q7CiAKIHByaXZhdGU6
Ci0gICAgSFRNTERldGFpbHNFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OworICAgIEhUTUxEZXRhaWxzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
KTsKIAogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSosIFJlbmRlclN0eWxlKik7CiAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVu
ZGVyZXIoY29uc3QgTm9kZSopIGNvbnN0IE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTc3OCkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSwxMyArMjksMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3Bh
Y2UgSFRNTE5hbWVzOwogCi1pbmxpbmUgSFRNTERpcmVjdG9yeUVsZW1lbnQ6OkhUTUxEaXJlY3Rv
cnlFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKLSAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQoraW5saW5lIEhUTUxEaXJl
Y3RvcnlFbGVtZW50OjpIVE1MRGlyZWN0b3J5RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCAm
ZG9jdW1lbnQpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoZGlyVGFnKSk7CiB9CiAKLVBhc3NS
ZWZQdHI8SFRNTERpcmVjdG9yeUVsZW1lbnQ+IEhUTUxEaXJlY3RvcnlFbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1Jl
ZlB0cjxIVE1MRGlyZWN0b3J5RWxlbWVudD4gSFRNTERpcmVjdG9yeUVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MRGlyZWN0b3J5RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlyZWN0b3J5RWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpcmVjdG9yeUVsZW1lbnQu
aAkocmV2aXNpb24gMTU1Nzc4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGlyZWN0b3J5
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMCArMjksMTAgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBIVE1MRGlyZWN0b3J5RWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1M
RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTERpcmVjdG9yeUVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxEaXJlY3RvcnlFbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKLSAgICBIVE1M
RGlyZWN0b3J5RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBI
VE1MRGlyZWN0b3J5RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIH07
CiAKIH0gLy9uYW1lc3BhY2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTggKzMyLDE4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotSFRNTERpdkVsZW1lbnQ6OkhU
TUxEaXZFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCkKLSAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQorSFRNTERpdkVsZW1l
bnQ6OkhUTUxEaXZFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKKyAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsICZkb2N1bWVudCkKIHsKICAg
ICBBU1NFUlQoaGFzVGFnTmFtZShkaXZUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MRGl2RWxl
bWVudD4gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVm
UHRyPEhUTUxEaXZFbGVtZW50PiBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1
bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxEaXZFbGVtZW50KGRpdlRhZywg
ZG9jdW1lbnQpKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MRGl2RWxlbWVudD4gSFRNTERpdkVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1l
bnQpCitQYXNzUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxEaXZFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGl2RWxlbWVudC5oCShyZXZpc2lvbiAxNTU3Nzgp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEaXZFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDExICsyOSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxEaXZF
bGVtZW50IDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxIVE1MRGl2RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8SFRNTERpdkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MRGl2RWxlbWVudD4gY3JlYXRlKERvY3Vt
ZW50Jik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogcHJvdGVjdGVkOgotICAgIEhUTUxEaXZF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIEhUTUxEaXZFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgogICAgIHZp
cnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikg
Y29uc3QgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkocmV2
aXNpb24gMTU1Nzc4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQyNSw3ICs0MjUsNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IEhUTUxFbGVtZW50CiAgICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAgICBpZiAoYyA9
PSAnXHInIHx8IGMgPT0gJ1xuJykgewotICAgICAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxk
KEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZSgmZG9jdW1lbnQoKSksIGVjKTsKKyAgICAgICAgICAgIGZy
YWdtZW50LT5hcHBlbmRDaGlsZChIVE1MQlJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSksIGVj
KTsKICAgICAgICAgICAgIGlmIChlYykKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAg
ICAgICAgIC8vIE1ha2Ugc3VyZSBcclxuIGRvZXNuJ3QgcmVzdWx0IGluIHR3byBsaW5lIGJyZWFr
cy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAkocmV2aXNp
b24gMTU1Nzc4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDQsMTMgKzQ0LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotaW5saW5lIEhUTUxFbWJlZEVsZW1lbnQ6OkhU
TUxFbWJlZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRv
Y3VtZW50LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKLSAgICA6IEhUTUxQbHVnSW5JbWFnZUVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQsIGNyZWF0ZWRCeVBhcnNlciwgU2hvdWxkUHJlZmVyUGx1Z0lu
c0ZvckltYWdlcykKK2lubGluZSBIVE1MRW1iZWRFbGVtZW50OjpIVE1MRW1iZWRFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgYm9vbCBjcmVh
dGVkQnlQYXJzZXIpCisgICAgOiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KHRhZ05hbWUsICZkb2N1
bWVudCwgY3JlYXRlZEJ5UGFyc2VyLCBTaG91bGRQcmVmZXJQbHVnSW5zRm9ySW1hZ2VzKQogewog
ICAgIEFTU0VSVChoYXNUYWdOYW1lKGVtYmVkVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTEVt
YmVkRWxlbWVudD4gSFRNTEVtYmVkRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCitQYXNz
UmVmUHRyPEhUTUxFbWJlZEVsZW1lbnQ+IEhUTUxFbWJlZEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgY3JlYXRlZEJ5
UGFyc2VyKQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTEVtYmVkRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCwgY3JlYXRlZEJ5UGFyc2VyKSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbWJlZEVsZW1lbnQuaAkocmV2aXNpb24gMTU1Nzc4KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDEwICsyOSwx
MCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxFbWJlZEVsZW1lbnQgRklOQUwg
OiBwdWJsaWMgSFRNTFBsdWdJbkltYWdlRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8SFRNTEVtYmVkRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCosIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxI
VE1MRW1iZWRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jiwg
Ym9vbCBjcmVhdGVkQnlQYXJzZXIpOwogCiBwcml2YXRlOgotICAgIEhUTUxFbWJlZEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwor
ICAgIEhUTUxFbWJlZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9v
bCBjcmVhdGVkQnlQYXJzZXIpOwogCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYp
IGNvbnN0IE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNl
dEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGaWVsZFNldEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxNCArMzcsMTQgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1pbmxp
bmUgSFRNTEZpZWxkU2V0RWxlbWVudDo6SFRNTEZpZWxkU2V0RWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9y
bSkKLSAgICA6IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGZvcm0p
CitpbmxpbmUgSFRNTEZpZWxkU2V0RWxlbWVudDo6SFRNTEZpZWxkU2V0RWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVu
dCogZm9ybSkKKyAgICA6IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50
LCBmb3JtKQogICAgICwgbV9kb2N1bWVudFZlcnNpb24oMCkKIHsKICAgICBBU1NFUlQoaGFzVGFn
TmFtZShmaWVsZHNldFRhZykpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxGaWVsZFNldEVsZW1lbnQ+
IEhUTUxGaWVsZFNldEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKK1Bhc3NSZWZQdHI8
SFRNTEZpZWxkU2V0RWxlbWVudD4gSFRNTEZpZWxkU2V0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50
KiBmb3JtKQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTEZpZWxkU2V0RWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRmllbGRTZXRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRmllbGRTZXRFbGVtZW50LmgJKHJldmlzaW9uIDE1NTc3OCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3
IEBAIGNsYXNzIEhUTUxDb2xsZWN0aW9uOwogCiBjbGFzcyBIVE1MRmllbGRTZXRFbGVtZW50IEZJ
TkFMIDogcHVibGljIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEhUTUxGaWVsZFNldEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxIVE1MRmllbGRTZXRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50JiwgSFRNTEZvcm1FbGVtZW50Kik7CiAKICAgICBjb25zdCBIVE1MTGVnZW5kRWxlbWVudCog
bGVnZW5kKCkgY29uc3Q7CiAgICAgUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gZWxlbWVudHMo
KTsKQEAgLTQ1LDcgKzQ1LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxl
ZEF0dHJpYnV0ZUNoYW5nZWQoKSBPVkVSUklERTsKIAogcHJpdmF0ZToKLSAgICBIVE1MRmllbGRT
ZXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVu
dCopOworICAgIEhUTUxGaWVsZFNldEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50JiwgSFRNTEZvcm1FbGVtZW50Kik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNFbnVtZXJhdGFi
bGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRm9j
dXMoKSBjb25zdCBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvbnRF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb250RWxl
bWVudC5jcHAJKHJldmlzaW9uIDE1NTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZv
bnRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsMTMgKzQwLDEzIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotSFRNTEZvbnRFbGVt
ZW50OjpIVE1MRm9udEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQqIGRvY3VtZW50KQotICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCitIVE1M
Rm9udEVsZW1lbnQ6OkhUTUxGb250RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCAmZG9jdW1l
bnQpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoZm9udFRhZykpOwogfQogCi1QYXNzUmVmUHRy
PEhUTUxGb250RWxlbWVudD4gSFRNTEZvbnRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxIVE1MRm9udEVs
ZW1lbnQ+IEhUTUxGb250RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxG
b250RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRm9udEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb250RWxlbWVudC5oCShyZXZpc2lvbiAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb250RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMiArMzAsMTIgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MRm9udEVsZW1lbnQgRklOQUwgOiBwdWJs
aWMgSFRNTEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxGb250
RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEhUTUxGb250RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCYpOwogICAgIAogICAgIHN0YXRpYyBib29sIGNzc1ZhbHVlRnJvbUZvbnRT
aXplTnVtYmVyKGNvbnN0IFN0cmluZyYsIENTU1ZhbHVlSUQmKTsKIAogcHJpdmF0ZToKLSAgICBI
VE1MRm9udEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgSFRN
TEZvbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmly
dHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBj
b25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yUHJlc2VudGF0
aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBN
dXRhYmxlU3R5bGVQcm9wZXJ0eVNldCopIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1FbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzc4KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSw4ICs1NSw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAot
SFRNTEZvcm1FbGVtZW50OjpIVE1MRm9ybUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQotICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpCitIVE1MRm9ybUVsZW1lbnQ6OkhUTUxGb3JtRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBIVE1MRWxlbWVudCh0YWdO
YW1lLCAmZG9jdW1lbnQpCiAgICAgLCBtX2Fzc29jaWF0ZWRFbGVtZW50c0JlZm9yZUluZGV4KDAp
CiAgICAgLCBtX2Fzc29jaWF0ZWRFbGVtZW50c0FmdGVySW5kZXgoMCkKICAgICAsIG1fd2FzVXNl
clN1Ym1pdHRlZChmYWxzZSkKQEAgLTY4LDEyICs2OCwxMiBAQCBIVE1MRm9ybUVsZW1lbnQ6OkhU
TUxGb3JtRWxlbWVudChjb25zdCBRCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoZm9ybVRhZykpOwog
fQogCi1QYXNzUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4gSFRNTEZvcm1FbGVtZW50OjpjcmVhdGUo
RG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+IEhUTUxGb3Jt
RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEhUTUxGb3JtRWxlbWVudChmb3JtVGFnLCBkb2N1bWVudCkpOwogfQogCi1QYXNzUmVm
UHRyPEhUTUxGb3JtRWxlbWVudD4gSFRNTEZvcm1FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxIVE1MRm9y
bUVsZW1lbnQ+IEhUTUxGb3JtRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhU
TUxGb3JtRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtRWxlbWVudC5oCShyZXZpc2lvbiAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw4ICs0Miw4IEBA
IGNsYXNzIFRleHRFbmNvZGluZzsKIAogY2xhc3MgSFRNTEZvcm1FbGVtZW50IEZJTkFMIDogcHVi
bGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MRm9y
bUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxG
b3JtRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiAgICAgdmlydHVhbCB+SFRNTEZvcm1FbGVtZW50KCk7CiAK
ICAgICBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBlbGVtZW50cygpOwpAQCAtMTA5LDcgKzEw
OSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSFRNTEZvcm1FbGVtZW50KiBmaW5kQ2xvc2VzdEZv
cm1BbmNlc3Rvcihjb25zdCBFbGVtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgSFRNTEZvcm1FbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIEhUTUxGb3JtRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBy
ZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJik7CiAgICAgdmlydHVhbCBJbnNlcnRp
b25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhDb250YWluZXJOb2RlKikgT1ZFUlJJ
REU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5jcHAJKHJldmlz
aW9uIDE1NTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM0LDggKzM0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1
c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1pbmxpbmUgSFRNTEZyYW1lRWxlbWVudDo6SFRN
TEZyYW1lRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9j
dW1lbnQpCi0gICAgOiBIVE1MRnJhbWVFbGVtZW50QmFzZSh0YWdOYW1lLCBkb2N1bWVudCkKK2lu
bGluZSBIVE1MRnJhbWVFbGVtZW50OjpIVE1MRnJhbWVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEhUTUxGcmFtZUVsZW1lbnRC
YXNlKHRhZ05hbWUsICZkb2N1bWVudCkKICAgICAsIG1fZnJhbWVCb3JkZXIodHJ1ZSkKICAgICAs
IG1fZnJhbWVCb3JkZXJTZXQoZmFsc2UpCiB7CkBAIC00Myw3ICs0Myw3IEBAIGlubGluZSBIVE1M
RnJhbWVFbGVtZW50OjpIVE1MRnJhbWVFbGVtZW4KICAgICBzZXRIYXNDdXN0b21TdHlsZVJlc29s
dmVDYWxsYmFja3MoKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MRnJhbWVFbGVtZW50PiBIVE1MRnJh
bWVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQq
IGRvY3VtZW50KQorUGFzc1JlZlB0cjxIVE1MRnJhbWVFbGVtZW50PiBIVE1MRnJhbWVFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50
KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTEZyYW1lRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmgJ
KHJldmlzaW9uIDE1NTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxNCArMzAsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBIVE1MRnJhbWVFbGVtZW50IEZJTkFMIDogcHVibGljIEhUTUxGcmFtZUVsZW1l
bnRCYXNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MRnJhbWVFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8SFRNTEZyYW1lRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwogCiAgICAgYm9vbCBoYXNGcmFtZUJvcmRlcigpIGNvbnN0IHsgcmV0dXJuIG1f
ZnJhbWVCb3JkZXI7IH0KIAogICAgIGJvb2wgbm9SZXNpemUoKSBjb25zdDsKIAogcHJpdmF0ZToK
LSAgICBIVE1MRnJhbWVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwor
ICAgIEhUTUxGcmFtZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgT1ZFUlJJREU7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcAkocmV2aXNpb24g
MTU1Nzc4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDQsOCArNDQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLUhUTUxGcmFtZVNldEVsZW1lbnQ6OkhUTUxGcmFt
ZVNldEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3Vt
ZW50KQotICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCitIVE1MRnJhbWVTZXRF
bGVtZW50OjpIVE1MRnJhbWVTZXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsICZkb2N1bWVu
dCkKICAgICAsIG1fdG90YWxSb3dzKDEpCiAgICAgLCBtX3RvdGFsQ29scygxKQogICAgICwgbV9i
b3JkZXIoNikKQEAgLTU5LDcgKzU5LDcgQEAgSFRNTEZyYW1lU2V0RWxlbWVudDo6SFRNTEZyYW1l
U2V0RWxlbWVudAogICAgIHNldEhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpOwogfQog
Ci1QYXNzUmVmUHRyPEhUTUxGcmFtZVNldEVsZW1lbnQ+IEhUTUxGcmFtZVNldEVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQ
YXNzUmVmUHRyPEhUTUxGcmFtZVNldEVsZW1lbnQ+IEhUTUxGcmFtZVNldEVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MRnJhbWVTZXRFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQu
aAkocmV2aXNpb24gMTU1Nzc4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBIVE1MRnJhbWVTZXRFbGVtZW50IEZJTkFMIDogcHVibGljIEhUTUxFbGVt
ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MRnJhbWVTZXRFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8SFRNTEZyYW1lU2V0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwogCiAgICAgYm9vbCBoYXNGcmFtZUJvcmRlcigpIGNvbnN0IHsgcmV0dXJu
IG1fZnJhbWVib3JkZXI7IH0KICAgICBib29sIG5vUmVzaXplKCkgY29uc3QgeyByZXR1cm4gbV9u
b3Jlc2l6ZTsgfQpAQCAtNjcsNyArNjcsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToK
LSAgICBIVE1MRnJhbWVTZXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OworICAgIEhUTUxGcmFtZVNldEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1By
ZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgT1ZFUlJJREU7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIUkVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhSRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTc3
OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhSRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM0LDE4ICszNCwxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7CiAKLUhUTUxIUkVsZW1lbnQ6OkhUTUxIUkVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQotICAgIDogSFRNTEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpCitIVE1MSFJFbGVtZW50OjpIVE1MSFJFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IEhUTUxF
bGVtZW50KHRhZ05hbWUsICZkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFtZShoclRh
ZykpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxIUkVsZW1lbnQ+IEhUTUxIUkVsZW1lbnQ6OmNyZWF0
ZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxIUkVsZW1lbnQ+IEhUTUxIUkVs
ZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBIVE1MSFJFbGVtZW50KGhyVGFnLCBkb2N1bWVudCkpOwogfQogCi1QYXNzUmVmUHRyPEhU
TUxIUkVsZW1lbnQ+IEhUTUxIUkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxIUkVsZW1lbnQ+IEhU
TUxIUkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MSFJFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIUkVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIUkVsZW1lbnQu
aAkocmV2aXNpb24gMTU1Nzc4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSFJFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDEzICsyOSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEhUTUxIUkVsZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxIUkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVu
dCopOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxIUkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MSFJF
bGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MSFJF
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2
aXJ0dWFsIGJvb2wgY2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdCB7IHJldHVybiBoYXND
aGlsZE5vZGVzKCk7IH0KIAogcHJpdmF0ZToKLSAgICBIVE1MSFJFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIEhUTUxIUkVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwg
dm9pZCBjb2xsZWN0U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0KikgT1ZF
UlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIZWFkRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSGVhZEVsZW1lbnQuY3BwCShyZXZp
c2lvbiAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIZWFkRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDE4ICszMSwxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLUhUTUxIZWFkRWxlbWVudDo6SFRNTEhlYWRF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkK
LSAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQorSFRNTEhlYWRFbGVtZW50OjpI
VE1MSGVhZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRv
Y3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50KQogewogICAgIEFT
U0VSVChoYXNUYWdOYW1lKGhlYWRUYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MSGVhZEVsZW1l
bnQ+IEhUTUxIZWFkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQ
dHI8SFRNTEhlYWRFbGVtZW50PiBIVE1MSGVhZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9j
dW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MSGVhZEVsZW1lbnQoaGVhZFRh
ZywgZG9jdW1lbnQpKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MSGVhZEVsZW1lbnQ+IEhUTUxIZWFk
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBk
b2N1bWVudCkKK1Bhc3NSZWZQdHI8SFRNTEhlYWRFbGVtZW50PiBIVE1MSGVhZEVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7
CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MSGVhZEVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEhlYWRFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSGVhZEVsZW1lbnQuaAkocmV2aXNp
b24gMTU1Nzc4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSGVhZEVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzAsMTEgKzMwLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgSFRNTEhlYWRFbGVtZW50IEZJTkFMIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MSGVhZEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCop
OwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxIZWFkRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxIZWFk
RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTEhl
YWRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHBy
aXZhdGU6Ci0gICAgSFRNTEhlYWRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCopOworICAgIEhUTUxIZWFkRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
KTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxI
ZWFkaW5nRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SGVhZGluZ0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxIZWFkaW5nRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1LDEyICsyNSwx
MiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWlubGluZSBIVE1MSGVhZGluZ0VsZW1lbnQ6
OkhUTUxIZWFkaW5nRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCogZG9jdW1lbnQpCi0gICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKK2lubGlu
ZSBIVE1MSGVhZGluZ0VsZW1lbnQ6OkhUTUxIZWFkaW5nRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBIVE1MRWxlbWVudCh0YWdO
YW1lLCAmZG9jdW1lbnQpCiB7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTEhlYWRpbmdFbGVtZW50PiBI
VE1MSGVhZGluZ0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxIZWFkaW5nRWxlbWVudD4gSFRNTEhl
YWRpbmdFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTEhlYWRpbmdFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxIZWFkaW5nRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEhlYWRpbmdFbGVtZW50LmgJKHJldmlzaW9uIDE1NTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEhlYWRpbmdFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDEwICsyOSwxMCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxIZWFkaW5nRWxlbWVudCBGSU5BTCA6
IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRN
TEhlYWRpbmdFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTEhlYWRpbmdFbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgSFRNTEhlYWRpbmdF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIEhUTUxIZWFkaW5n
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5j
cHAJKHJldmlzaW9uIDE1NTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTggKzM2LDE4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotSFRNTEh0bWxFbGVtZW50OjpI
VE1MSHRtbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRv
Y3VtZW50KQotICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCitIVE1MSHRtbEVs
ZW1lbnQ6OkhUTUxIdG1sRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQpCisgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCAmZG9jdW1lbnQpCiB7
CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoaHRtbFRhZykpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxI
dG1sRWxlbWVudD4gSFRNTEh0bWxFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQor
UGFzc1JlZlB0cjxIVE1MSHRtbEVsZW1lbnQ+IEhUTUxIdG1sRWxlbWVudDo6Y3JlYXRlKERvY3Vt
ZW50JiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxIdG1sRWxlbWVu
dChodG1sVGFnLCBkb2N1bWVudCkpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxIdG1sRWxlbWVudD4g
SFRNTEh0bWxFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQqIGRvY3VtZW50KQorUGFzc1JlZlB0cjxIVE1MSHRtbEVsZW1lbnQ+IEhUTUxIdG1sRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1
bWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxIdG1sRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5o
CShyZXZpc2lvbiAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMyArMzAsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBIVE1MSHRtbEVsZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxIdG1sRWxlbWVudD4gY3JlYXRlKERv
Y3VtZW50Kik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTEh0bWxFbGVtZW50PiBjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
SFRNTEh0bWxFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxIVE1MSHRtbEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQm
KTsKIAogICAgIHZvaWQgaW5zZXJ0ZWRCeVBhcnNlcigpOwogCiBwcml2YXRlOgotICAgIEhUTUxI
dG1sRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBIVE1MSHRt
bEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJREU7CiB9
OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAJKHJldmlz
aW9uIDE1NTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNywxNCArMzcsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1pbmxpbmUgSFRNTElGcmFtZUVsZW1lbnQ6
OkhUTUxJRnJhbWVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
KiBkb2N1bWVudCkKLSAgICA6IEhUTUxGcmFtZUVsZW1lbnRCYXNlKHRhZ05hbWUsIGRvY3VtZW50
KQoraW5saW5lIEhUTUxJRnJhbWVFbGVtZW50OjpIVE1MSUZyYW1lRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBIVE1MRnJhbWVF
bGVtZW50QmFzZSh0YWdOYW1lLCAmZG9jdW1lbnQpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUo
aWZyYW1lVGFnKSk7CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9
CiAKLVBhc3NSZWZQdHI8SFRNTElGcmFtZUVsZW1lbnQ+IEhUTUxJRnJhbWVFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFz
c1JlZlB0cjxIVE1MSUZyYW1lRWxlbWVudD4gSFRNTElGcmFtZUVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBIVE1MSUZyYW1lRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwog
fQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaAkocmV2aXNpb24g
MTU1Nzc4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCwxMiArMzAsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBIVE1MSUZyYW1lRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1MRnJhbWVFbGVtZW50QmFzZSB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTElGcmFtZUVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxIVE1MSUZyYW1lRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogCiAgICAgYm9vbCBzaG91bGREaXNwbGF5U2VhbWxlc3NseSgpIGNvbnN0OwogCiBwcml2
YXRlOgotICAgIEhUTUxJRnJhbWVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCopOworICAgIEhUTUxJRnJhbWVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQ
cmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURF
OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCShyZXZpc2lv
biAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00NCw4ICs0NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNp
bmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotSFRNTEltYWdlRWxlbWVudDo6SFRNTEltYWdlRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIEhU
TUxGb3JtRWxlbWVudCogZm9ybSkKLSAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KQorSFRNTEltYWdlRWxlbWVudDo6SFRNTEltYWdlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKKyAg
ICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsICZkb2N1bWVudCkKICAgICAsIG1faW1hZ2VMb2FkZXIo
dGhpcykKICAgICAsIG1fZm9ybShmb3JtKQogICAgICwgbV9jb21wb3NpdGVPcGVyYXRvcihDb21w
b3NpdGVTb3VyY2VPdmVyKQpAQCAtNTYsMTIgKzU2LDEyIEBAIEhUTUxJbWFnZUVsZW1lbnQ6OkhU
TUxJbWFnZUVsZW1lbnQoY29uc3QKICAgICAgICAgZm9ybS0+cmVnaXN0ZXJJbWdFbGVtZW50KHRo
aXMpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+IEhUTUxJbWFnZUVsZW1lbnQ6
OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+
IEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBIVE1MSW1hZ2VFbGVtZW50KGltZ1RhZywgZG9jdW1lbnQpKTsKIH0K
IAotUGFzc1JlZlB0cjxIVE1MSW1hZ2VFbGVtZW50PiBIVE1MSW1hZ2VFbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBIVE1MRm9y
bUVsZW1lbnQqIGZvcm0pCitQYXNzUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+IEhUTUxJbWFnZUVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9j
dW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEhUTUxJbWFnZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGZvcm0pKTsKIH0KQEAgLTc0LDcg
Kzc0LDcgQEAgSFRNTEltYWdlRWxlbWVudDo6fkhUTUxJbWFnZUVsZW1lbnQoKQogCiBQYXNzUmVm
UHRyPEhUTUxJbWFnZUVsZW1lbnQ+IEhUTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZUZvckpTQ29uc3Ry
dWN0b3IoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBpbnQqIG9wdGlvbmFsV2lkdGgsIGNvbnN0
IGludCogb3B0aW9uYWxIZWlnaHQpCiB7Ci0gICAgUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+IGlt
YWdlID0gYWRvcHRSZWYobmV3IEhUTUxJbWFnZUVsZW1lbnQoaW1nVGFnLCBkb2N1bWVudCkpOwor
ICAgIFJlZlB0cjxIVE1MSW1hZ2VFbGVtZW50PiBpbWFnZSA9IGFkb3B0UmVmKG5ldyBIVE1MSW1h
Z2VFbGVtZW50KGltZ1RhZywgKmRvY3VtZW50KSk7CiAgICAgaWYgKG9wdGlvbmFsV2lkdGgpCiAg
ICAgICAgIGltYWdlLT5zZXRXaWR0aCgqb3B0aW9uYWxXaWR0aCk7CiAgICAgaWYgKG9wdGlvbmFs
SGVpZ2h0KQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgJKHJldmlz
aW9uIDE1NTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNiw4ICszNiwxMCBAQCBjbGFzcyBIVE1MRm9ybUVsZW1lbnQ7CiBj
bGFzcyBIVE1MSW1hZ2VFbGVtZW50IDogcHVibGljIEhUTUxFbGVtZW50LCBwdWJsaWMgRm9ybU5h
bWVkSXRlbSB7CiAgICAgZnJpZW5kIGNsYXNzIEhUTUxGb3JtRWxlbWVudDsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MSW1hZ2VFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MSW1hZ2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8SFRNTEltYWdlRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Jik7CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8SFRNTEltYWdlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCopOworCisgICAgLy8gRklYTUU6IEZpeCB0aGUg
YmluZGluZHMgdG8gcGFzcyBhIERvY3VtZW50Ji4KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1M
SW1hZ2VFbGVtZW50PiBjcmVhdGVGb3JKU0NvbnN0cnVjdG9yKERvY3VtZW50KiwgY29uc3QgaW50
KiBvcHRpb25hbFdpZHRoLCBjb25zdCBpbnQqIG9wdGlvbmFsSGVpZ2h0KTsKIAogICAgIHZpcnR1
YWwgfkhUTUxJbWFnZUVsZW1lbnQoKTsKQEAgLTgwLDcgKzgyLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbWFnZVNvdXJjZVVSTCgpIGNvbnN0IE9WRVJSSURF
OwogCiBwcm90ZWN0ZWQ6Ci0gICAgSFRNTEltYWdlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqID0gMCk7CisgICAgSFRNTEltYWdlRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1MRm9ybUVsZW1lbnQqID0gMCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERv
Y3VtZW50KSBPVkVSUklERTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTAsOCArMTEwLDggQEAgY29uc3Qg
aW50IEhUTUxJbnB1dEVsZW1lbnQ6Om1heGltdW1MZW5ndAogY29uc3QgaW50IGRlZmF1bHRTaXpl
ID0gMjA7CiBjb25zdCBpbnQgbWF4U2F2ZWRSZXN1bHRzID0gMjU2OwogCi1IVE1MSW5wdXRFbGVt
ZW50OjpIVE1MSW5wdXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50KiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtLCBib29sIGNyZWF0ZWRCeVBhcnNl
cikKLSAgICA6IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBm
b3JtKQorSFRNTElucHV0RWxlbWVudDo6SFRNTElucHV0RWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSwg
Ym9vbCBjcmVhdGVkQnlQYXJzZXIpCisgICAgOiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCh0
YWdOYW1lLCAmZG9jdW1lbnQsIGZvcm0pCiAgICAgLCBtX3NpemUoZGVmYXVsdFNpemUpCiAgICAg
LCBtX21heExlbmd0aChtYXhpbXVtTGVuZ3RoKQogICAgICwgbV9tYXhSZXN1bHRzKC0xKQpAQCAt
MTM5LDcgKzEzOSw3IEBAIEhUTUxJbnB1dEVsZW1lbnQ6OkhUTUxJbnB1dEVsZW1lbnQoY29uc3QK
ICAgICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKIH0KIAotUGFzc1JlZlB0
cjxIVE1MSW5wdXRFbGVtZW50PiBIVE1MSW5wdXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZv
cm0sIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQorUGFzc1JlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBI
VE1MSW5wdXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQmIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0sIGJvb2wgY3JlYXRlZEJ5UGFy
c2VyKQogewogICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBpbnB1dEVsZW1lbnQgPSBhZG9w
dFJlZihuZXcgSFRNTElucHV0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSwgY3JlYXRl
ZEJ5UGFyc2VyKSk7CiAgICAgaW5wdXRFbGVtZW50LT5lbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290
KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAkocmV2aXNpb24g
MTU1Nzc4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRl
cnM7CiAKIGNsYXNzIEhUTUxJbnB1dEVsZW1lbnQgOiBwdWJsaWMgSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxJbnB1dEVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1l
bnQqLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTElu
cHV0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxG
b3JtRWxlbWVudCosIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKICAgICB2aXJ0dWFsIH5IVE1MSW5w
dXRFbGVtZW50KCk7CiAKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHdlYmtp
dHNwZWVjaGNoYW5nZSk7CkBAIC0zMDYsNyArMzA2LDcgQEAgcHVibGljOgogI2VuZGlmCiAKIHBy
b3RlY3RlZDoKLSAgICBIVE1MSW5wdXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCosIEhUTUxGb3JtRWxlbWVudCosIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKKyAgICBIVE1M
SW5wdXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxl
bWVudCosIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0
RXZlbnRIYW5kbGVyKEV2ZW50Kik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtl
eWdlbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtl
eWdlbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxLZXlnZW5FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsMTQgKzQ0LDE0IEBA
IHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIGNsYXNzIEtleWdlblNlbGVjdEVsZW1lbnQg
RklOQUwgOiBwdWJsaWMgSFRNTFNlbGVjdEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEtleWdlblNlbGVjdEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQp
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8S2V5Z2VuU2VsZWN0RWxlbWVudD4gY3JlYXRlKERvY3Vt
ZW50JiBkb2N1bWVudCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgS2V5Z2Vu
U2VsZWN0RWxlbWVudChkb2N1bWVudCkpOwogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIEtleWdl
blNlbGVjdEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQotICAgICAgICA6IEhUTUxTZWxlY3RF
bGVtZW50KHNlbGVjdFRhZywgZG9jdW1lbnQsIDApCisgICAgS2V5Z2VuU2VsZWN0RWxlbWVudChE
b2N1bWVudCYgZG9jdW1lbnQpCisgICAgICAgIDogSFRNTFNlbGVjdEVsZW1lbnQoc2VsZWN0VGFn
LCAmZG9jdW1lbnQsIDApCiAgICAgewogICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgcHNldWRvSWQsICgiLXdlYmtpdC1rZXlnZW4tc2VsZWN0IiwgQXRvbWljU3RyaW5n
OjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBzZXRQc2V1ZG8ocHNldWRvSWQpOwpA
QCAtNjAsMTIgKzYwLDEyIEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdmlydHVhbCBQYXNz
UmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4o
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZSgmZG9jdW1lbnQoKSk7CisgICAgICAgIHJl
dHVybiBjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgfQogfTsKIAotaW5saW5lIEhUTUxLZXlnZW5F
bGVtZW50OjpIVE1MS2V5Z2VuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKLSAgICA6IEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnRXaXRoU3RhdGUodGFnTmFtZSwgZG9jdW1lbnQsIGZvcm0pCitpbmxpbmUg
SFRNTEtleWdlbkVsZW1lbnQ6OkhUTUxLZXlnZW5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQorICAg
IDogSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSh0YWdOYW1lLCAmZG9jdW1lbnQsIGZv
cm0pCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoa2V5Z2VuVGFnKSk7CiAKQEAgLTc1LDE1ICs3
NSwxNSBAQCBpbmxpbmUgSFRNTEtleWdlbkVsZW1lbnQ6OkhUTUxLZXlnZW5FbGVtCiAKICAgICBS
ZWZQdHI8SFRNTFNlbGVjdEVsZW1lbnQ+IHNlbGVjdCA9IEtleWdlblNlbGVjdEVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrZXlzLnNpemUoKTsg
KytpKSB7Ci0gICAgICAgIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gb3B0aW9uID0gSFRNTE9w
dGlvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgICAgIFJlZlB0cjxIVE1MT3B0aW9u
RWxlbWVudD4gb3B0aW9uID0gSFRNTE9wdGlvbkVsZW1lbnQ6OmNyZWF0ZSgmZG9jdW1lbnQpOwog
ICAgICAgICBzZWxlY3QtPmFwcGVuZENoaWxkKG9wdGlvbiwgSUdOT1JFX0VYQ0VQVElPTik7Ci0g
ICAgICAgIG9wdGlvbi0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50LCBrZXlzW2ld
KSwgSUdOT1JFX0VYQ0VQVElPTik7CisgICAgICAgIG9wdGlvbi0+YXBwZW5kQ2hpbGQoVGV4dDo6
Y3JlYXRlKCZkb2N1bWVudCwga2V5c1tpXSksIElHTk9SRV9FWENFUFRJT04pOwogICAgIH0KIAog
ICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKS5hcHBlbmRDaGlsZChzZWxlY3QsIElHTk9S
RV9FWENFUFRJT04pOwogfQogCi1QYXNzUmVmUHRyPEhUTUxLZXlnZW5FbGVtZW50PiBIVE1MS2V5
Z2VuRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
KiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQorUGFzc1JlZlB0cjxIVE1MS2V5Z2Vu
RWxlbWVudD4gSFRNTEtleWdlbkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKIHsKICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxLZXlnZW5FbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
LCBmb3JtKSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5o
CShyZXZpc2lvbiAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDEyICszMiwxMiBAQCBjbGFzcyBIVE1MU2VsZWN0
RWxlbWVudDsKIAogY2xhc3MgSFRNTEtleWdlbkVsZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRNTEZv
cm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8SFRNTEtleWdlbkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MS2V5Z2Vu
RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3Jt
RWxlbWVudCopOwogCiAgICAgdmlydHVhbCBib29sIHdpbGxWYWxpZGF0ZSgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAKIHByaXZhdGU6Ci0gICAgSFRNTEtleWdlbkVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CisgICAgSFRNTEtleWdl
bkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50
Kik7CiAKICAgICB2aXJ0dWFsIGJvb2wgYXJlQXV0aG9yU2hhZG93c0FsbG93ZWQoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBmYWxzZTsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxMSUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJ
RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TExJRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDE5ICszNCwxOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLUhUTUxMSUVsZW1l
bnQ6OkhUTUxMSUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQq
IGRvY3VtZW50KQotICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCitIVE1MTElF
bGVtZW50OjpIVE1MTElFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50JiBkb2N1bWVudCkKKyAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsICZkb2N1bWVudCkKIHsK
ICAgICBBU1NFUlQoaGFzVGFnTmFtZShsaVRhZykpOwogICAgIHNldEhhc0N1c3RvbVN0eWxlUmVz
b2x2ZUNhbGxiYWNrcygpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxMSUVsZW1lbnQ+IEhUTUxMSUVs
ZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxMSUVsZW1l
bnQ+IEhUTUxMSUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBIVE1MTElFbGVtZW50KGxpVGFnLCBkb2N1bWVudCkpOwogfQogCi1Q
YXNzUmVmUHRyPEhUTUxMSUVsZW1lbnQ+IEhUTUxMSUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxM
SUVsZW1lbnQ+IEhUTUxMSUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1M
TElFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMSUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxMSUVsZW1lbnQuaAkocmV2aXNpb24gMTU1Nzc4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTElFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDExICsyOSwxMSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxMSUVsZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRNTEVs
ZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxMSUVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCopOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxMSUVsZW1lbnQ+IGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxIVE1MTElFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxIVE1MTElFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CiAKIHByaXZhdGU6Ci0gICAgSFRNTExJRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQqKTsKKyAgICBIVE1MTElFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwogCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9taWNTdHJpbmcmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wg
aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJS
SURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwCShyZXZp
c2lvbiAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00NiwxMyArNDYsMTMgQEAgc3RhdGljIExhYmVsYWJsZUVsZW1l
bnQqIG5vZGVBc1N1cHBvcnRlZAogICAgIHJldHVybiBsYWJlbGFibGVFbGVtZW50OwogfQogCi1p
bmxpbmUgSFRNTExhYmVsRWxlbWVudDo6SFRNTExhYmVsRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBIVE1MRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkKK2lubGluZSBIVE1MTGFiZWxFbGVtZW50OjpIVE1MTGFiZWxFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6
IEhUTUxFbGVtZW50KHRhZ05hbWUsICZkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoaGFzVGFnTmFt
ZShsYWJlbFRhZykpOwogfQogCi1QYXNzUmVmUHRyPEhUTUxMYWJlbEVsZW1lbnQ+IEhUTUxMYWJl
bEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCog
ZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhUTUxMYWJlbEVsZW1lbnQ+IEhUTUxMYWJlbEVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQp
CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MTGFiZWxFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaAko
cmV2aXNpb24gMTU1Nzc4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBIVE1MTGFiZWxFbGVtZW50IEZJTkFMIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MTGFiZWxFbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRN
TExhYmVsRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwog
CiAgICAgTGFiZWxhYmxlRWxlbWVudCogY29udHJvbCgpOwogICAgIEhUTUxGb3JtRWxlbWVudCog
Zm9ybSgpIGNvbnN0OwpAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29s
IHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREU7CiAKIHByaXZhdGU6Ci0g
ICAgSFRNTExhYmVsRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAg
ICBIVE1MTGFiZWxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAg
ICAgdmlydHVhbCBib29sIGlzRm9jdXNhYmxlKCkgY29uc3QgT1ZFUlJJREU7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3Nzgp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzUsMTMgKzM1LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7CiAKIAotaW5saW5lIEhUTUxMZWdlbmRFbGVtZW50OjpIVE1MTGVnZW5k
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQp
Ci0gICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKK2lubGluZSBIVE1MTGVnZW5k
RWxlbWVudDo6SFRNTExlZ2VuZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50
KQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKGxlZ2VuZFRhZykpOwogfQogCi1QYXNzUmVmUHRy
PEhUTUxMZWdlbmRFbGVtZW50PiBIVE1MTGVnZW5kRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8SFRNTExl
Z2VuZEVsZW1lbnQ+IEhUTUxMZWdlbmRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgSFRNTExlZ2VuZEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMZWdlbmRFbGVtZW50LmgJKHJldmlzaW9uIDE1NTc3OCkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExlZ2VuZEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzIsMTAgKzMyLDEwIEBAIGNsYXNzIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ7CiAKIGNsYXNzIEhU
TUxMZWdlbmRFbGVtZW50IEZJTkFMIDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MTGVnZW5kRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxMZWdlbmRF
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZh
dGU6Ci0gICAgSFRNTExlZ2VuZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Kik7CisgICAgSFRNTExlZ2VuZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Jik7CiAKICAgICAvLyBDb250cm9sIGluIHRoZSBsZWdlbmQncyBmaWVsZHNldCB0aGF0IGdldHMg
Zm9jdXMgYW5kIGFjY2VzcyBrZXkuCiAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudCogYXNzb2Np
YXRlZENvbnRyb2woKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5j
cHAJKHJldmlzaW9uIDE1NTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQsOCArNjQsOCBAQCBzdGF0aWMgTGlua0V2ZW50
U2VuZGVyJiBsaW5rTG9hZEV2ZW50U2VuCiAgICAgcmV0dXJuIHNoYXJlZExvYWRFdmVudFNlbmRl
cjsKIH0KIAotaW5saW5lIEhUTUxMaW5rRWxlbWVudDo6SFRNTExpbmtFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQ
YXJzZXIpCi0gICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKK2lubGluZSBIVE1M
TGlua0VsZW1lbnQ6OkhUTUxMaW5rRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQorICAgIDogSFRNTEVs
ZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50KQogICAgICwgbV9saW5rTG9hZGVyKHRoaXMpCiAgICAg
LCBtX3NpemVzKERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKSkKICAgICAsIG1fZGlzYWJs
ZWRTdGF0ZShVbnNldCkKQEAgLTc5LDcgKzc5LDcgQEAgaW5saW5lIEhUTUxMaW5rRWxlbWVudDo6
SFRNTExpbmtFbGVtZW50KAogICAgIEFTU0VSVChoYXNUYWdOYW1lKGxpbmtUYWcpKTsKIH0KIAot
UGFzc1JlZlB0cjxIVE1MTGlua0VsZW1lbnQ+IEhUTUxMaW5rRWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBjcmVhdGVk
QnlQYXJzZXIpCitQYXNzUmVmUHRyPEhUTUxMaW5rRWxlbWVudD4gSFRNTExpbmtFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50LCBi
b29sIGNyZWF0ZWRCeVBhcnNlcikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxMaW5r
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgY3JlYXRlZEJ5UGFyc2VyKSk7CiB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgJKHJldmlzaW9uIDE1NTc3OCkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0
LDcgKzQ0LDcgQEAgdHlwZWRlZiBFdmVudFNlbmRlcjxIVE1MTGlua0VsZW1lbnQ+IExpbgogCiBj
bGFzcyBIVE1MTGlua0VsZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRNTEVsZW1lbnQsIHB1YmxpYyBD
YWNoZWRTdHlsZVNoZWV0Q2xpZW50LCBwdWJsaWMgTGlua0xvYWRlckNsaWVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTExpbmtFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50KiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOworICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEhUTUxMaW5rRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKICAgICB2aXJ0dWFsIH5IVE1MTGlu
a0VsZW1lbnQoKTsKIAogICAgIEtVUkwgaHJlZigpIGNvbnN0OwpAQCAtOTgsNiArOTgsOCBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUm
KSBjb25zdCBPVkVSUklERTsKIAogcHJpdmF0ZToKKyAgICBIVE1MTGlua0VsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOworCiAgICAg
dmlydHVhbCB2b2lkIGFkZFN1YnJlc291cmNlQXR0cmlidXRlVVJMcyhMaXN0SGFzaFNldDxLVVJM
PiYpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIGZpbmlzaFBhcnNpbmdDaGlsZHJlbigpOwpA
QCAtMTEyLDkgKzExNCw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJlbW92ZVBlbmRpbmdTaGVl
dChSZW1vdmVQZW5kaW5nU2hlZXROb3RpZmljYXRpb25UeXBlID0gUmVtb3ZlUGVuZGluZ1NoZWV0
Tm90aWZ5SW1tZWRpYXRlbHkpOwogCi1wcml2YXRlOgotICAgIEhUTUxMaW5rRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7Ci0KICAg
ICBMaW5rTG9hZGVyIG1fbGlua0xvYWRlcjsKICAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRDU1NTdHlsZVNoZWV0PiBtX2NhY2hlZFNoZWV0OwogICAgIFJlZlB0cjxDU1NTdHlsZVNoZWV0
PiBtX3NoZWV0OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTW9kRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTW9kRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDE1NTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1vZEVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMiArMjksMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1pbmxpbmUgSFRNTE1vZEVsZW1lbnQ6OkhU
TUxNb2RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCkKLSAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQoraW5saW5lIEhUTUxN
b2RFbGVtZW50OjpIVE1MTW9kRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCAmZG9jdW1lbnQp
CiB7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTE1vZEVsZW1lbnQ+IEhUTUxNb2RFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorUGFz
c1JlZlB0cjxIVE1MTW9kRWxlbWVudD4gSFRNTE1vZEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBIVE1MTW9kRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTW9kRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1vZEVsZW1lbnQuaAkocmV2aXNpb24gMTU1Nzc4KQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTW9kRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwx
MCArMzAsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MTW9kRWxlbWVudCBG
SU5BTCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8SFRNTE1vZEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQq
KTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MTW9kRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiBwcml2YXRlOgotICAgIEhUTUxNb2RFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIEhUTUxNb2RFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBib29sIGlzVVJM
QXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IE9WRVJSSURFOwogfTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3NzgpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzMsMTIgKzMzLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKIAotaW5saW5lIEhUTUxQcmVFbGVtZW50OjpIVE1MUHJlRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBIVE1MRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkKK2lubGluZSBIVE1MUHJlRWxlbWVudDo6SFRNTFByZUVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQor
ICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50KQogewogfQogCi1QYXNzUmVmUHRy
PEhUTUxQcmVFbGVtZW50PiBIVE1MUHJlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK1Bhc3NSZWZQdHI8SFRNTFByZUVsZW1l
bnQ+IEhUTUxQcmVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTFByZUVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFByZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
cmVFbGVtZW50LmgJKHJldmlzaW9uIDE1NTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFByZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksMTAgKzI5LDEwIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTFByZUVsZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRNTEVs
ZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxQcmVFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8SFRNTFByZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKIAogcHJpdmF0ZToKLSAgICBIVE1MUHJlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqKTsKKyAgICBIVE1MUHJlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNv
bGxlY3RTdHlsZUZvclByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbWljU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydHlTZXQqKSBPVkVSUklERTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUXVvdGVFbGVtZW50LmNwcAkocmV2aXNpb24g
MTU1Nzc4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUXVvdGVFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzEsMTMgKzMxLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNp
bmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotaW5saW5lIEhUTUxRdW90ZUVsZW1lbnQ6OkhUTUxR
dW90ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3Vt
ZW50KQotICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCitpbmxpbmUgSFRNTFF1
b3RlRWxlbWVudDo6SFRNTFF1b3RlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCAmZG9jdW1l
bnQpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUocVRhZykgfHwgaGFzVGFnTmFtZShibG9ja3F1
b3RlVGFnKSk7CiB9CiAKLVBhc3NSZWZQdHI8SFRNTFF1b3RlRWxlbWVudD4gSFRNTFF1b3RlRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCkKK1Bhc3NSZWZQdHI8SFRNTFF1b3RlRWxlbWVudD4gSFRNTFF1b3RlRWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsK
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxRdW90ZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFF1b3RlRWxlbWVudC5oCShyZXZp
c2lvbiAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzEsMTAgKzMxLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgSFRNTFF1b3RlRWxlbWVudCBGSU5BTCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFF1b3RlRWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxR
dW90ZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAog
cHJpdmF0ZToKLSAgICBIVE1MUXVvdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCopOworICAgIEhUTUxRdW90ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CiAgICAgCiAgICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGlu
c2VydGVkSW50byhDb250YWluZXJOb2RlKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGlz
VVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IE9WRVJSSURFOwpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN1bW1hcnlFbGVtZW50LmNwcAkocmV2aXNpb24gMTU1Nzc4
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3VtbWFyeUVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zOSwxNiArMzksMTYgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAog
Y2xhc3MgU3VtbWFyeUNvbnRlbnRFbGVtZW50IDogcHVibGljIEluc2VydGlvblBvaW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdW1tYXJ5Q29udGVudEVsZW1lbnQ+IGNyZWF0
ZShEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN1bW1hcnlDb250ZW50RWxlbWVu
dD4gY3JlYXRlKERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAgU3VtbWFyeUNvbnRlbnRFbGVt
ZW50KERvY3VtZW50KiBkb2N1bWVudCkKLSAgICAgICAgOiBJbnNlcnRpb25Qb2ludChIVE1MTmFt
ZXM6OndlYmtpdFNoYWRvd0NvbnRlbnRUYWcsIGRvY3VtZW50KQorICAgIFN1bW1hcnlDb250ZW50
RWxlbWVudChEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgICAgIDogSW5zZXJ0aW9uUG9pbnQoSFRN
TE5hbWVzOjp3ZWJraXRTaGFkb3dDb250ZW50VGFnLCAmZG9jdW1lbnQpCiAgICAgewogICAgIH0K
IH07CiAKLVBhc3NSZWZQdHI8U3VtbWFyeUNvbnRlbnRFbGVtZW50PiBTdW1tYXJ5Q29udGVudEVs
ZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPFN1bW1hcnlDb250
ZW50RWxlbWVudD4gU3VtbWFyeUNvbnRlbnRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGRvY3Vt
ZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3VtbWFyeUNvbnRlbnRFbGVtZW50KGRv
Y3VtZW50KSk7CiB9CkBAIC04MSw4ICs4MSw4IEBAIGJvb2wgSFRNTFN1bW1hcnlFbGVtZW50Ojpj
aGlsZFNob3VsZENyZWEKIAogdm9pZCBIVE1MU3VtbWFyeUVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2Vu
dFNoYWRvd1Jvb3QoU2hhZG93Um9vdCogcm9vdCkKIHsKLSAgICByb290LT5hcHBlbmRDaGlsZChE
ZXRhaWxzTWFya2VyQ29udHJvbDo6Y3JlYXRlKCZkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQ
VElPTiwgQXR0YWNoTGF6aWx5KTsKLSAgICByb290LT5hcHBlbmRDaGlsZChTdW1tYXJ5Q29udGVu
dEVsZW1lbnQ6OmNyZWF0ZSgmZG9jdW1lbnQoKSksIEFTU0VSVF9OT19FWENFUFRJT04sIEF0dGFj
aExhemlseSk7CisgICAgcm9vdC0+YXBwZW5kQ2hpbGQoRGV0YWlsc01hcmtlckNvbnRyb2w6OmNy
ZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTiwgQXR0YWNoTGF6aWx5KTsKKyAg
ICByb290LT5hcHBlbmRDaGlsZChTdW1tYXJ5Q29udGVudEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCgpKSwgQVNTRVJUX05PX0VYQ0VQVElPTiwgQXR0YWNoTGF6aWx5KTsKIH0KIAogSFRNTERldGFp
bHNFbGVtZW50KiBIVE1MU3VtbWFyeUVsZW1lbnQ6OmRldGFpbHNFbGVtZW50KCkgY29uc3QKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuY3Bw
CShyZXZpc2lvbiAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRp
b25FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTMgKzMzLDEzIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotaW5saW5lIEhUTUxU
YWJsZUNhcHRpb25FbGVtZW50OjpIVE1MVGFibGVDYXB0aW9uRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBIVE1MRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkKK2lubGluZSBIVE1MVGFibGVDYXB0aW9uRWxlbWVudDo6SFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQm
IGRvY3VtZW50KQorICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50KQogewogICAg
IEFTU0VSVChoYXNUYWdOYW1lKGNhcHRpb25UYWcpKTsKIH0KIAotUGFzc1JlZlB0cjxIVE1MVGFi
bGVDYXB0aW9uRWxlbWVudD4gSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCitQYXNzUmVmUHRyPEhU
TUxUYWJsZUNhcHRpb25FbGVtZW50PiBIVE1MVGFibGVDYXB0aW9uRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxUYWJsZUNhcHRpb25FbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRpb25FbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0aW9u
RWxlbWVudC5oCShyZXZpc2lvbiAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
YWJsZUNhcHRpb25FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDEwICszMiwxMCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxUYWJsZUNhcHRpb25FbGVtZW50IEZJTkFM
IDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxI
VE1MVGFibGVDYXB0aW9uRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxUYWJsZUNhcHRpb25FbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKIHByaXZhdGU6Ci0gICAg
SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7
CisgICAgSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjb2xsZWN0
U3R5bGVGb3JQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21pY1N0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnR5U2V0KikgT1ZFUlJJREU7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAJKHJldmlzaW9u
IDE1NTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM2LDEzICszNiwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLWlubGluZSBIVE1MVGFibGVDb2xFbGVtZW50
OjpIVE1MVGFibGVDb2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50KiBkb2N1bWVudCkKLSAgICA6IEhUTUxUYWJsZVBhcnRFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KQoraW5saW5lIEhUTUxUYWJsZUNvbEVsZW1lbnQ6OkhUTUxUYWJsZUNvbEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogSFRN
TFRhYmxlUGFydEVsZW1lbnQodGFnTmFtZSwgJmRvY3VtZW50KQogICAgICwgbV9zcGFuKDEpCiB7
CiB9CiAKLVBhc3NSZWZQdHI8SFRNTFRhYmxlQ29sRWxlbWVudD4gSFRNTFRhYmxlQ29sRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKK1Bhc3NSZWZQdHI8SFRNTFRhYmxlQ29sRWxlbWVudD4gSFRNTFRhYmxlQ29sRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bWVudCkK
IHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxUYWJsZUNvbEVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxl
bWVudC5oCShyZXZpc2lvbiAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZUNvbEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxUYWJsZUNvbEVsZW1lbnQgRklOQUwgOiBwdWJsaWMgSFRN
TFRhYmxlUGFydEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxU
YWJsZUNvbEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxUYWJsZUNvbEVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwogCiAgICAgaW50IHNw
YW4oKSBjb25zdCB7IHJldHVybiBtX3NwYW47IH0KICAgICB2b2lkIHNldFNwYW4oaW50KTsKQEAg
LTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAgIFN0cmluZyB3aWR0aCgpIGNvbnN0OwogCiBwcml2
YXRlOgotICAgIEhUTUxUYWJsZUNvbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQqKTsKKyAgICBIVE1MVGFibGVDb2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgYm9vbCBpc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJikgY29uc3QgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
RWxlbWVudC5jcHAJKHJldmlzaW9uIDE1NTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NCw3ICsxNjQsNyBAQCBQYXNz
UmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MVGFibGVFbGVtZW50CiB7CiAgICAgaWYgKEhUTUxUYWJs
ZUNhcHRpb25FbGVtZW50KiBleGlzdGluZ0NhcHRpb24gPSBjYXB0aW9uKCkpCiAgICAgICAgIHJl
dHVybiBleGlzdGluZ0NhcHRpb247Ci0gICAgUmVmUHRyPEhUTUxUYWJsZUNhcHRpb25FbGVtZW50
PiBjYXB0aW9uID0gSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ6OmNyZWF0ZShjYXB0aW9uVGFnLCAm
ZG9jdW1lbnQoKSk7CisgICAgUmVmUHRyPEhUTUxUYWJsZUNhcHRpb25FbGVtZW50PiBjYXB0aW9u
ID0gSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ6OmNyZWF0ZShjYXB0aW9uVGFnLCBkb2N1bWVudCgp
KTsKICAgICBzZXRDYXB0aW9uKGNhcHRpb24sIElHTk9SRV9FWENFUFRJT04pOwogICAgIHJldHVy
biBjYXB0aW9uLnJlbGVhc2UoKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
Z05hbWVzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhZ05hbWVz
LmluCShyZXZpc2lvbiAxNTU3ODApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWdOYW1l
cy5pbgkod29ya2luZyBjb3B5KQpAQCAtMTMsNzMgKzEzLDczIEBAIGFydGljbGUgaW50ZXJmYWNl
TmFtZT1IVE1MRWxlbWVudAogYXNpZGUgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogYXVkaW8g
d3JhcHBlck9ubHlJZk1lZGlhSXNBdmFpbGFibGUsIGNvbmRpdGlvbmFsPVZJREVPLCBjb25zdHJ1
Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyLCBnZW5lcmF0ZVR5cGVIZWxwZXJzLCBjb25zdHJ1Y3Rv
clRha2VzRG9jdW1lbnRSZWZlcmVuY2UKIGIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotYmFz
ZSBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1iYXNlZm9udCBpbnRlcmZhY2VOYW1lPUhUTUxCYXNlRm9u
dEVsZW1lbnQKLWJkaSBpbnRlcmZhY2VOYW1lPUhUTUxCRElFbGVtZW50LCBKU0ludGVyZmFjZU5h
bWU9SFRNTEVsZW1lbnQKK2Jhc2UgZ2VuZXJhdGVUeXBlSGVscGVycywgY29uc3RydWN0b3JUYWtl
c0RvY3VtZW50UmVmZXJlbmNlCitiYXNlZm9udCBpbnRlcmZhY2VOYW1lPUhUTUxCYXNlRm9udEVs
ZW1lbnQsIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5jZQorYmRpIGludGVyZmFjZU5h
bWU9SFRNTEJESUVsZW1lbnQsIEpTSW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudCwgY29uc3RydWN0
b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNlCiBiZG8gaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAog
Ymdzb3VuZCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBiaWcgaW50ZXJmYWNlTmFtZT1IVE1M
RWxlbWVudAotYmxvY2txdW90ZSBpbnRlcmZhY2VOYW1lPUhUTUxRdW90ZUVsZW1lbnQKK2Jsb2Nr
cXVvdGUgaW50ZXJmYWNlTmFtZT1IVE1MUXVvdGVFbGVtZW50LCBjb25zdHJ1Y3RvclRha2VzRG9j
dW1lbnRSZWZlcmVuY2UKIGJvZHkgY29uc3RydWN0b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNlCi1i
ciBpbnRlcmZhY2VOYW1lPUhUTUxCUkVsZW1lbnQKLWJ1dHRvbiBjb25zdHJ1Y3Rvck5lZWRzRm9y
bUVsZW1lbnQKLWNhbnZhcyBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1jYXB0aW9uIGludGVyZmFjZU5h
bWU9SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQKK2JyIGludGVyZmFjZU5hbWU9SFRNTEJSRWxlbWVu
dCwgY29uc3RydWN0b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNlCitidXR0b24gY29uc3RydWN0b3JO
ZWVkc0Zvcm1FbGVtZW50LCBjb25zdHJ1Y3RvclRha2VzRG9jdW1lbnRSZWZlcmVuY2UKK2NhbnZh
cyBnZW5lcmF0ZVR5cGVIZWxwZXJzLCBjb25zdHJ1Y3RvclRha2VzRG9jdW1lbnRSZWZlcmVuY2UK
K2NhcHRpb24gaW50ZXJmYWNlTmFtZT1IVE1MVGFibGVDYXB0aW9uRWxlbWVudCwgY29uc3RydWN0
b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNlCiBjZW50ZXIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVu
dAogY2l0ZSBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBjb2RlIGludGVyZmFjZU5hbWU9SFRN
TEVsZW1lbnQKLWNvbCBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZUNvbEVsZW1lbnQKLWNvbGdyb3Vw
IGludGVyZmFjZU5hbWU9SFRNTFRhYmxlQ29sRWxlbWVudAorY29sIGludGVyZmFjZU5hbWU9SFRN
TFRhYmxlQ29sRWxlbWVudCwgY29uc3RydWN0b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNlCitjb2xn
cm91cCBpbnRlcmZhY2VOYW1lPUhUTUxUYWJsZUNvbEVsZW1lbnQsIGNvbnN0cnVjdG9yVGFrZXNE
b2N1bWVudFJlZmVyZW5jZQogY29tbWFuZCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CiBjb250
ZW50IGludGVyZmFjZU5hbWU9SFRNTENvbnRlbnRFbGVtZW50LCBjb25kaXRpb25hbD1TSEFET1df
RE9NLCBydW50aW1lQ29uZGl0aW9uYWw9c2hhZG93RE9NLCBnZW5lcmF0ZVR5cGVIZWxwZXJzCiB3
ZWJraXRTaGFkb3dDb250ZW50IGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQsIG5vQ29uc3RydWN0
b3IKLWRhdGFsaXN0IGludGVyZmFjZU5hbWU9SFRNTERhdGFMaXN0RWxlbWVudCwgY29uZGl0aW9u
YWw9REFUQUxJU1RfRUxFTUVOVAorZGF0YWxpc3QgaW50ZXJmYWNlTmFtZT1IVE1MRGF0YUxpc3RF
bGVtZW50LCBjb25kaXRpb25hbD1EQVRBTElTVF9FTEVNRU5ULCBjb25zdHJ1Y3RvclRha2VzRG9j
dW1lbnRSZWZlcmVuY2UKIGRkIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLWRlbCBpbnRlcmZh
Y2VOYW1lPUhUTUxNb2RFbGVtZW50Ci1kZXRhaWxzIGNvbmRpdGlvbmFsPURFVEFJTFNfRUxFTUVO
VAorZGVsIGludGVyZmFjZU5hbWU9SFRNTE1vZEVsZW1lbnQsIGNvbnN0cnVjdG9yVGFrZXNEb2N1
bWVudFJlZmVyZW5jZQorZGV0YWlscyBjb25kaXRpb25hbD1ERVRBSUxTX0VMRU1FTlQsIGNvbnN0
cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5jZQogZGZuIGludGVyZmFjZU5hbWU9SFRNTEVsZW1l
bnQKLWRpciBpbnRlcmZhY2VOYW1lPUhUTUxEaXJlY3RvcnlFbGVtZW50Ci1kaXYKLWRsIGludGVy
ZmFjZU5hbWU9SFRNTERMaXN0RWxlbWVudAorZGlyIGludGVyZmFjZU5hbWU9SFRNTERpcmVjdG9y
eUVsZW1lbnQsIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5jZQorZGl2IGNvbnN0cnVj
dG9yVGFrZXNEb2N1bWVudFJlZmVyZW5jZQorZGwgaW50ZXJmYWNlTmFtZT1IVE1MRExpc3RFbGVt
ZW50LCBjb25zdHJ1Y3RvclRha2VzRG9jdW1lbnRSZWZlcmVuY2UKIGR0IGludGVyZmFjZU5hbWU9
SFRNTEVsZW1lbnQKIGVtIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLWVtYmVkIGNvbnN0cnVj
dG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMKLWZpZWxkc2V0IGlu
dGVyZmFjZU5hbWU9SFRNTEZpZWxkU2V0RWxlbWVudCwgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVt
ZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCitlbWJlZCBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5
UGFyc2VyLCBnZW5lcmF0ZVR5cGVIZWxwZXJzLCBjb25zdHJ1Y3RvclRha2VzRG9jdW1lbnRSZWZl
cmVuY2UKK2ZpZWxkc2V0IGludGVyZmFjZU5hbWU9SFRNTEZpZWxkU2V0RWxlbWVudCwgY29uc3Ry
dWN0b3JOZWVkc0Zvcm1FbGVtZW50LCBnZW5lcmF0ZVR5cGVIZWxwZXJzLCBjb25zdHJ1Y3RvclRh
a2VzRG9jdW1lbnRSZWZlcmVuY2UKIGZpZ2NhcHRpb24gaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVu
dAogZmlndXJlIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLWZvbnQKK2ZvbnQgY29uc3RydWN0
b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNlCiBmb290ZXIgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVu
dAotZm9ybSBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1mcmFtZSBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1m
cmFtZXNldCBpbnRlcmZhY2VOYW1lPUhUTUxGcmFtZVNldEVsZW1lbnQsIGdlbmVyYXRlVHlwZUhl
bHBlcnMKLWgxIGludGVyZmFjZU5hbWU9SFRNTEhlYWRpbmdFbGVtZW50Ci1oMiBpbnRlcmZhY2VO
YW1lPUhUTUxIZWFkaW5nRWxlbWVudAotaDMgaW50ZXJmYWNlTmFtZT1IVE1MSGVhZGluZ0VsZW1l
bnQKLWg0IGludGVyZmFjZU5hbWU9SFRNTEhlYWRpbmdFbGVtZW50Ci1oNSBpbnRlcmZhY2VOYW1l
PUhUTUxIZWFkaW5nRWxlbWVudAotaDYgaW50ZXJmYWNlTmFtZT1IVE1MSGVhZGluZ0VsZW1lbnQK
LWhlYWQKK2Zvcm0gZ2VuZXJhdGVUeXBlSGVscGVycywgY29uc3RydWN0b3JUYWtlc0RvY3VtZW50
UmVmZXJlbmNlCitmcmFtZSBnZW5lcmF0ZVR5cGVIZWxwZXJzLCBjb25zdHJ1Y3RvclRha2VzRG9j
dW1lbnRSZWZlcmVuY2UKK2ZyYW1lc2V0IGludGVyZmFjZU5hbWU9SFRNTEZyYW1lU2V0RWxlbWVu
dCwgZ2VuZXJhdGVUeXBlSGVscGVycywgY29uc3RydWN0b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNl
CitoMSBpbnRlcmZhY2VOYW1lPUhUTUxIZWFkaW5nRWxlbWVudCwgY29uc3RydWN0b3JUYWtlc0Rv
Y3VtZW50UmVmZXJlbmNlCitoMiBpbnRlcmZhY2VOYW1lPUhUTUxIZWFkaW5nRWxlbWVudCwgY29u
c3RydWN0b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNlCitoMyBpbnRlcmZhY2VOYW1lPUhUTUxIZWFk
aW5nRWxlbWVudCwgY29uc3RydWN0b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNlCitoNCBpbnRlcmZh
Y2VOYW1lPUhUTUxIZWFkaW5nRWxlbWVudCwgY29uc3RydWN0b3JUYWtlc0RvY3VtZW50UmVmZXJl
bmNlCitoNSBpbnRlcmZhY2VOYW1lPUhUTUxIZWFkaW5nRWxlbWVudCwgY29uc3RydWN0b3JUYWtl
c0RvY3VtZW50UmVmZXJlbmNlCitoNiBpbnRlcmZhY2VOYW1lPUhUTUxIZWFkaW5nRWxlbWVudCwg
Y29uc3RydWN0b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNlCitoZWFkIGNvbnN0cnVjdG9yVGFrZXNE
b2N1bWVudFJlZmVyZW5jZQogaGVhZGVyIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIGhncm91
cCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1ociBpbnRlcmZhY2VOYW1lPUhUTUxIUkVsZW1l
bnQKLWh0bWwKK2hyIGludGVyZmFjZU5hbWU9SFRNTEhSRWxlbWVudCwgY29uc3RydWN0b3JUYWtl
c0RvY3VtZW50UmVmZXJlbmNlCitodG1sIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5j
ZQogaSBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1pZnJhbWUgaW50ZXJmYWNlTmFtZT1IVE1M
SUZyYW1lRWxlbWVudCwgZ2VuZXJhdGVUeXBlSGVscGVycworaWZyYW1lIGludGVyZmFjZU5hbWU9
SFRNTElGcmFtZUVsZW1lbnQsIGdlbmVyYXRlVHlwZUhlbHBlcnMsIGNvbnN0cnVjdG9yVGFrZXNE
b2N1bWVudFJlZmVyZW5jZQogaW1hZ2UgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAotaW1nIGlu
dGVyZmFjZU5hbWU9SFRNTEltYWdlRWxlbWVudCwgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50
LCBnZW5lcmF0ZVR5cGVIZWxwZXJzCi1pbnB1dCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQs
IGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGdlbmVyYXRlVHlwZUhlbHBlcnMKLWlu
cyBpbnRlcmZhY2VOYW1lPUhUTUxNb2RFbGVtZW50CitpbWcgaW50ZXJmYWNlTmFtZT1IVE1MSW1h
Z2VFbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnQsIGdlbmVyYXRlVHlwZUhlbHBl
cnMsIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5jZQoraW5wdXQgY29uc3RydWN0b3JO
ZWVkc0Zvcm1FbGVtZW50LCBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyLCBnZW5lcmF0
ZVR5cGVIZWxwZXJzLCBjb25zdHJ1Y3RvclRha2VzRG9jdW1lbnRSZWZlcmVuY2UKK2lucyBpbnRl
cmZhY2VOYW1lPUhUTUxNb2RFbGVtZW50LCBjb25zdHJ1Y3RvclRha2VzRG9jdW1lbnRSZWZlcmVu
Y2UKIGlzaW5kZXggaW50ZXJmYWNlTmFtZT1IVE1MVW5rbm93bkVsZW1lbnQKIGtiZCBpbnRlcmZh
Y2VOYW1lPUhUTUxFbGVtZW50Ci1rZXlnZW4gY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50Ci1s
YWJlbCBnZW5lcmF0ZVR5cGVIZWxwZXJzCitrZXlnZW4gY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVt
ZW50LCBjb25zdHJ1Y3RvclRha2VzRG9jdW1lbnRSZWZlcmVuY2UKK2xhYmVsIGdlbmVyYXRlVHlw
ZUhlbHBlcnMsIGNvbnN0cnVjdG9yVGFrZXNEb2N1bWVudFJlZmVyZW5jZQogbGF5ZXIgaW50ZXJm
YWNlTmFtZT1IVE1MRWxlbWVudAotbGVnZW5kIGdlbmVyYXRlVHlwZUhlbHBlcnMKLWxpIGludGVy
ZmFjZU5hbWU9SFRNTExJRWxlbWVudAotbGluayBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFy
c2VyCi1saXN0aW5nIGludGVyZmFjZU5hbWU9SFRNTFByZUVsZW1lbnQKK2xlZ2VuZCBnZW5lcmF0
ZVR5cGVIZWxwZXJzLCBjb25zdHJ1Y3RvclRha2VzRG9jdW1lbnRSZWZlcmVuY2UKK2xpIGludGVy
ZmFjZU5hbWU9SFRNTExJRWxlbWVudCwgY29uc3RydWN0b3JUYWtlc0RvY3VtZW50UmVmZXJlbmNl
CitsaW5rIGNvbnN0cnVjdG9yTmVlZHNDcmVhdGVkQnlQYXJzZXIsIGNvbnN0cnVjdG9yVGFrZXNE
b2N1bWVudFJlZmVyZW5jZQorbGlzdGluZyBpbnRlcmZhY2VOYW1lPUhUTUxQcmVFbGVtZW50LCBj
b25zdHJ1Y3RvclRha2VzRG9jdW1lbnRSZWZlcmVuY2UKIG1haW4gaW50ZXJmYWNlTmFtZT1IVE1M
RWxlbWVudAotbWFwIGdlbmVyYXRlVHlwZUhlbHBlcnMKK21hcCBnZW5lcmF0ZVR5cGVIZWxwZXJz
LCAKIG1hcmsgaW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudAogbWFycXVlZQogbWVudQpAQCAtOTgs
OSArOTgsOSBAQCBvdXRwdXQgY29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50CiBwIGludGVyZmFj
ZU5hbWU9SFRNTFBhcmFncmFwaEVsZW1lbnQKIHBhcmFtIGdlbmVyYXRlVHlwZUhlbHBlcnMKIHBs
YWludGV4dCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50Ci1wcmUKK3ByZSBjb25zdHJ1Y3RvclRh
a2VzRG9jdW1lbnRSZWZlcmVuY2UKIHByb2dyZXNzIGludGVyZmFjZU5hbWU9SFRNTFByb2dyZXNz
RWxlbWVudCwgY29uZGl0aW9uYWw9UFJPR1JFU1NfRUxFTUVOVCwgZ2VuZXJhdGVUeXBlSGVscGVy
cwotcSBpbnRlcmZhY2VOYW1lPUhUTUxRdW90ZUVsZW1lbnQKK3EgaW50ZXJmYWNlTmFtZT1IVE1M
UXVvdGVFbGVtZW50LCBjb25zdHJ1Y3RvclRha2VzRG9jdW1lbnRSZWZlcmVuY2UKIHJwIGludGVy
ZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHJ0IGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHJ1Ynkg
aW50ZXJmYWNlTmFtZT1IVE1MRWxlbWVudApAQCAtMTM1LDUgKzEzNSw1IEBAIHVsIGludGVyZmFj
ZU5hbWU9SFRNTFVMaXN0RWxlbWVudAogdmFyIGludGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKIHZp
ZGVvIHdyYXBwZXJPbmx5SWZNZWRpYUlzQXZhaWxhYmxlLCBjb25kaXRpb25hbD1WSURFTywgY29u
c3RydWN0b3JOZWVkc0NyZWF0ZWRCeVBhcnNlciwgZ2VuZXJhdGVUeXBlSGVscGVycwogd2JyIGlu
dGVyZmFjZU5hbWU9SFRNTEVsZW1lbnQKLXhtcCBpbnRlcmZhY2VOYW1lPUhUTUxQcmVFbGVtZW50
Cit4bXAgaW50ZXJmYWNlTmFtZT1IVE1MUHJlRWxlbWVudCwgY29uc3RydWN0b3JUYWtlc0RvY3Vt
ZW50UmVmZXJlbmNlCiBub3NjcmlwdCBpbnRlcmZhY2VOYW1lPUhUTUxFbGVtZW50CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1
NTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTUzNyw3ICs1MzcsNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6
OnVwZGF0ZVBsYWNlaG9sCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKCFtX3BsYWNl
aG9sZGVyKSB7Ci0gICAgICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gcGxhY2Vob2xkZXIgPSBI
VE1MRGl2RWxlbWVudDo6Y3JlYXRlKCZkb2N1bWVudCgpKTsKKyAgICAgICAgUmVmUHRyPEhUTUxE
aXZFbGVtZW50PiBwbGFjZWhvbGRlciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQo
KSk7CiAgICAgICAgIG1fcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlci5nZXQoKTsKICAgICAgICAg
bV9wbGFjZWhvbGRlci0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC1pbnB1dC1wbGFj
ZWhvbGRlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAg
dXNlckFnZW50U2hhZG93Um9vdCgpLT5pbnNlcnRCZWZvcmUobV9wbGFjZWhvbGRlciwgaW5uZXJU
ZXh0RWxlbWVudCgpLT5uZXh0U2libGluZygpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3Nzgp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTExLDcgKzUxMSw3IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQ6OnNldElubmUKICAgICAgICAgaW5uZXJUZXh0RWxlbWVudCgpLT5zZXRJbm5lclRl
eHQodmFsdWUsIEFTU0VSVF9OT19FWENFUFRJT04pOwogCiAgICAgICAgIGlmICh2YWx1ZS5lbmRz
V2l0aCgnXG4nKSB8fCB2YWx1ZS5lbmRzV2l0aCgnXHInKSkKLSAgICAgICAgICAgIGlubmVyVGV4
dEVsZW1lbnQoKS0+YXBwZW5kQ2hpbGQoSFRNTEJSRWxlbWVudDo6Y3JlYXRlKCZkb2N1bWVudCgp
KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgICAgICAgICBpbm5lclRleHRFbGVtZW50KCkt
PmFwcGVuZENoaWxkKEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKSwgQVNTRVJUX05P
X0VYQ0VQVElPTik7CiAgICAgfQogCiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5k
ZXJlcih0cnVlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZXdTb3VyY2VEb2N1
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlld1NvdXJj
ZURvY3VtZW50LmNwcAkocmV2aXNpb24gMTU1NzgwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVmlld1NvdXJjZURvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzAsMTMgKzcwLDEz
IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRQYXJzZXI+IEhUTUxWaWV3U291cmMKIAogdm9pZCBIVE1M
Vmlld1NvdXJjZURvY3VtZW50OjpjcmVhdGVDb250YWluaW5nVGFibGUoKQogewotICAgIFJlZlB0
cjxIVE1MSHRtbEVsZW1lbnQ+IGh0bWwgPSBIVE1MSHRtbEVsZW1lbnQ6OmNyZWF0ZSh0aGlzKTsK
KyAgICBSZWZQdHI8SFRNTEh0bWxFbGVtZW50PiBodG1sID0gSFRNTEh0bWxFbGVtZW50OjpjcmVh
dGUoKnRoaXMpOwogICAgIHBhcnNlckFwcGVuZENoaWxkKGh0bWwpOwogICAgIFJlZlB0cjxIVE1M
Qm9keUVsZW1lbnQ+IGJvZHkgPSBIVE1MQm9keUVsZW1lbnQ6OmNyZWF0ZSgqdGhpcyk7CiAgICAg
aHRtbC0+cGFyc2VyQXBwZW5kQ2hpbGQoYm9keSk7CiAgICAgLy8gQ3JlYXRlIGEgbGluZSBndXR0
ZXIgZGl2IHRoYXQgY2FuIGJlIHVzZWQgdG8gbWFrZSBzdXJlIHRoZSBndXR0ZXIgZXh0ZW5kcyBk
b3duIHRoZSBoZWlnaHQgb2YgdGhlIHdob2xlCiAgICAgLy8gZG9jdW1lbnQuCi0gICAgUmVmUHRy
PEhUTUxEaXZFbGVtZW50PiBkaXYgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKHRoaXMpOworICAg
IFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gZGl2ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZSgqdGhp
cyk7CiAgICAgZGl2LT5zZXRBdHRyaWJ1dGUoY2xhc3NBdHRyLCAid2Via2l0LWxpbmUtZ3V0dGVy
LWJhY2tkcm9wIik7CiAgICAgYm9keS0+cGFyc2VyQXBwZW5kQ2hpbGQoZGl2KTsKIApAQCAtMjI1
LDcgKzIyNSw3IEBAIHZvaWQgSFRNTFZpZXdTb3VyY2VEb2N1bWVudDo6YWRkTGluZShjb24KIHZv
aWQgSFRNTFZpZXdTb3VyY2VEb2N1bWVudDo6ZmluaXNoTGluZSgpCiB7CiAgICAgaWYgKCFtX2N1
cnJlbnQtPmhhc0NoaWxkTm9kZXMoKSkgewotICAgICAgICBSZWZQdHI8SFRNTEJSRWxlbWVudD4g
YnIgPSBIVE1MQlJFbGVtZW50OjpjcmVhdGUodGhpcyk7CisgICAgICAgIFJlZlB0cjxIVE1MQlJF
bGVtZW50PiBiciA9IEhUTUxCUkVsZW1lbnQ6OmNyZWF0ZSgqdGhpcyk7CiAgICAgICAgIG1fY3Vy
cmVudC0+cGFyc2VyQXBwZW5kQ2hpbGQoYnIpOwogICAgICAgICBTdHlsZTo6YXR0YWNoUmVuZGVy
VHJlZSgqYnIpOwogICAgIH0KQEAgLTI4MCw3ICsyODAsNyBAQCBpbnQgSFRNTFZpZXdTb3VyY2VE
b2N1bWVudDo6YWRkUmFuZ2UoY29uCiAKIFBhc3NSZWZQdHI8RWxlbWVudD4gSFRNTFZpZXdTb3Vy
Y2VEb2N1bWVudDo6YWRkQmFzZShjb25zdCBBdG9taWNTdHJpbmcmIGhyZWYpCiB7Ci0gICAgUmVm
UHRyPEhUTUxCYXNlRWxlbWVudD4gYmFzZSA9IEhUTUxCYXNlRWxlbWVudDo6Y3JlYXRlKGJhc2VU
YWcsIHRoaXMpOworICAgIFJlZlB0cjxIVE1MQmFzZUVsZW1lbnQ+IGJhc2UgPSBIVE1MQmFzZUVs
ZW1lbnQ6OmNyZWF0ZShiYXNlVGFnLCAqdGhpcyk7CiAgICAgYmFzZS0+c2V0QXR0cmlidXRlKGhy
ZWZBdHRyLCBocmVmKTsKICAgICBtX2N1cnJlbnQtPnBhcnNlckFwcGVuZENoaWxkKGJhc2UpOwog
ICAgIFN0eWxlOjphdHRhY2hSZW5kZXJUcmVlKCpiYXNlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9JbWFnZURvY3VtZW50LmNwcAkocmV2aXNpb24gMTU1Nzc4KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9JbWFnZURvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTksMTIgKzk5LDEyIEBA
IHByaXZhdGU6CiAKIGNsYXNzIEltYWdlRG9jdW1lbnRFbGVtZW50IEZJTkFMIDogcHVibGljIEhU
TUxJbWFnZUVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEltYWdlRG9j
dW1lbnRFbGVtZW50PiBjcmVhdGUoSW1hZ2VEb2N1bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEltYWdlRG9jdW1lbnRFbGVtZW50PiBjcmVhdGUoSW1hZ2VEb2N1bWVudCYpOwogCiBwcml2
YXRlOgotICAgIEltYWdlRG9jdW1lbnRFbGVtZW50KEltYWdlRG9jdW1lbnQqIGRvY3VtZW50KQor
ICAgIEltYWdlRG9jdW1lbnRFbGVtZW50KEltYWdlRG9jdW1lbnQmIGRvY3VtZW50KQogICAgICAg
ICA6IEhUTUxJbWFnZUVsZW1lbnQoaW1nVGFnLCBkb2N1bWVudCkKLSAgICAgICAgLCBtX2ltYWdl
RG9jdW1lbnQoZG9jdW1lbnQpCisgICAgICAgICwgbV9pbWFnZURvY3VtZW50KCZkb2N1bWVudCkK
ICAgICB7CiAgICAgfQogCkBAIC0xMTQsNyArMTE0LDcgQEAgcHJpdmF0ZToKICAgICBJbWFnZURv
Y3VtZW50KiBtX2ltYWdlRG9jdW1lbnQ7CiB9OwogCi1pbmxpbmUgUGFzc1JlZlB0cjxJbWFnZURv
Y3VtZW50RWxlbWVudD4gSW1hZ2VEb2N1bWVudEVsZW1lbnQ6OmNyZWF0ZShJbWFnZURvY3VtZW50
KiBkb2N1bWVudCkKK2lubGluZSBQYXNzUmVmUHRyPEltYWdlRG9jdW1lbnRFbGVtZW50PiBJbWFn
ZURvY3VtZW50RWxlbWVudDo6Y3JlYXRlKEltYWdlRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAg
IHJldHVybiBhZG9wdFJlZihuZXcgSW1hZ2VEb2N1bWVudEVsZW1lbnQoZG9jdW1lbnQpKTsKIH0K
QEAgLTIwNiw3ICsyMDYsNyBAQCB2b2lkIEltYWdlRG9jdW1lbnQ6OmNyZWF0ZURvY3VtZW50U3Ry
dWN0CiAgICAgCiAgICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJvZHksIElHTk9SRV9FWENF
UFRJT04pOwogICAgIAotICAgIFJlZlB0cjxJbWFnZURvY3VtZW50RWxlbWVudD4gaW1hZ2VFbGVt
ZW50ID0gSW1hZ2VEb2N1bWVudEVsZW1lbnQ6OmNyZWF0ZSh0aGlzKTsKKyAgICBSZWZQdHI8SW1h
Z2VEb2N1bWVudEVsZW1lbnQ+IGltYWdlRWxlbWVudCA9IEltYWdlRG9jdW1lbnRFbGVtZW50Ojpj
cmVhdGUoKnRoaXMpOwogICAgIAogICAgIGltYWdlRWxlbWVudC0+c2V0QXR0cmlidXRlKHN0eWxl
QXR0ciwgIi13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUiKTsgICAgICAgIAogICAgIGltYWdlRWxl
bWVudC0+c2V0TG9hZE1hbnVhbGx5KHRydWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9S
YW5nZUlucHV0VHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9SYW5n
ZUlucHV0VHlwZS5jcHAJKHJldmlzaW9uIDE1NTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
UmFuZ2VJbnB1dFR5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTcsNyArMjU3LDcgQEAgdm9p
ZCBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZQogICAgIEFTU0VSVChlbGVtZW50
KCktPnNoYWRvd1Jvb3QoKSk7CiAKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBlbGVtZW50KCkt
PmRvY3VtZW50KCk7Ci0gICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiB0cmFjayA9IEhUTUxEaXZF
bGVtZW50OjpjcmVhdGUoJmRvY3VtZW50KTsKKyAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHRy
YWNrID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgdHJhY2stPnNldFBz
ZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNrIiwgQXRvbWlj
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIHRyYWNrLT5hcHBlbmRDaGlsZChT
bGlkZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZSgmZG9jdW1lbnQpLCBJR05PUkVfRVhDRVBUSU9OKTsK
ICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGNvbnRhaW5lciA9IFNsaWRlckNvbnRhaW5lckVsZW1l
bnQ6OmNyZWF0ZSgmZG9jdW1lbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0Rmll
bGRJbnB1dFR5cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZp
ZWxkSW5wdXRUeXBlLmNwcAkocmV2aXNpb24gMTU1Nzc4KQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MTcsNyArNDE3LDcg
QEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OnVwZGF0ZVBsYWNlaG9sZAogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIGlmICghbV9wbGFjZWhvbGRlcikgewotICAgICAgICBtX3BsYWNlaG9s
ZGVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZSgmZWxlbWVudCgpLT5kb2N1bWVudCgpKTsKKyAg
ICAgICAgbV9wbGFjZWhvbGRlciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5k
b2N1bWVudCgpKTsKICAgICAgICAgbV9wbGFjZWhvbGRlci0+c2V0UHNldWRvKEF0b21pY1N0cmlu
ZygiLXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJv
bUxpdGVyYWwpKTsKICAgICAgICAgZWxlbWVudCgpLT51c2VyQWdlbnRTaGFkb3dSb290KCktPmlu
c2VydEJlZm9yZShtX3BsYWNlaG9sZGVyLCBtX2NvbnRhaW5lciA/IG1fY29udGFpbmVyLmdldCgp
IDogaW5uZXJUZXh0RWxlbWVudCgpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAkocmV2aXNpb24gMTU1
Nzc4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEzMyw3ICsxMzMsNyBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpzZXRN
ZXNzYWdlRE9NQW5kCiAgICAgICAgIGlmIChpKSB7CiAgICAgICAgICAgICBtX21lc3NhZ2VCb2R5
LT5hcHBlbmRDaGlsZChUZXh0OjpjcmVhdGUoJmRvY3VtZW50LCBsaW5lc1tpXSksIEFTU0VSVF9O
T19FWENFUFRJT04pOwogICAgICAgICAgICAgaWYgKGkgPCBsaW5lcy5zaXplKCkgLSAxKQotICAg
ICAgICAgICAgICAgIG1fbWVzc2FnZUJvZHktPmFwcGVuZENoaWxkKEhUTUxCUkVsZW1lbnQ6OmNy
ZWF0ZSgmZG9jdW1lbnQpLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgICAgICAgICBt
X21lc3NhZ2VCb2R5LT5hcHBlbmRDaGlsZChIVE1MQlJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBtX21l
c3NhZ2VIZWFkaW5nLT5zZXRJbm5lclRleHQobGluZXNbaV0sIEFTU0VSVF9OT19FWENFUFRJT04p
OwogICAgIH0KQEAgLTE3Nyw3ICsxNzcsNyBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpidWls
ZEJ1YmJsZVRyZWUoCiAgICAgU2hhZG93Um9vdCYgc2hhZG93Um9vdCA9IG1fZWxlbWVudC0+ZW5z
dXJlVXNlckFnZW50U2hhZG93Um9vdCgpOwogCiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gbV9l
bGVtZW50LT5kb2N1bWVudCgpOwotICAgIG1fYnViYmxlID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0
ZSgmZG9jdW1lbnQpOworICAgIG1fYnViYmxlID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCk7CiAgICAgbV9idWJibGUtPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtdmFs
aWRhdGlvbi1idWJibGUiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAg
ICAgLy8gTmVlZCB0byBmb3JjZSBwb3NpdGlvbjphYnNvbHV0ZSBiZWNhdXNlIFJlbmRlck1lbnVM
aXN0IGRvZXNuJ3QgYXNzdW1lIGl0CiAgICAgLy8gY29udGFpbnMgbm9uLWFic29sdXRlIG9yIG5v
bi1maXhlZCByZW5kZXJlcnMgYXMgY2hpbGRyZW4uCkBAIC0xODYsMjQgKzE4NiwyNCBAQCB2b2lk
IFZhbGlkYXRpb25NZXNzYWdlOjpidWlsZEJ1YmJsZVRyZWUoCiAgICAgZG9jdW1lbnQudXBkYXRl
TGF5b3V0KCk7CiAgICAgYWRqdXN0QnViYmxlUG9zaXRpb24obV9lbGVtZW50LT5ib3VuZGluZ0Jv
eCgpLCBtX2J1YmJsZS5nZXQoKSk7CiAKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IGNsaXBw
ZXIgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKCZkb2N1bWVudCk7CisgICAgUmVmUHRyPEhUTUxE
aXZFbGVtZW50PiBjbGlwcGVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAg
ICAgY2xpcHBlci0+c2V0UHNldWRvKEF0b21pY1N0cmluZygiLXdlYmtpdC12YWxpZGF0aW9uLWJ1
YmJsZS1hcnJvdy1jbGlwcGVyIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gYnViYmxlQXJyb3cgPSBIVE1MRGl2RWxlbWVu
dDo6Y3JlYXRlKCZkb2N1bWVudCk7CisgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBidWJibGVB
cnJvdyA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGJ1YmJsZUFycm93
LT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWFycm93
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIGNsaXBwZXItPmFw
cGVuZENoaWxkKGJ1YmJsZUFycm93LnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAg
ICAgbV9idWJibGUtPmFwcGVuZENoaWxkKGNsaXBwZXIucmVsZWFzZSgpLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKIAotICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gbWVzc2FnZSA9IEhUTUxEaXZFbGVt
ZW50OjpjcmVhdGUoJmRvY3VtZW50KTsKKyAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IG1lc3NhZ2Ug
PSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBtZXNzYWdlLT5zZXRQc2V1
ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLW1lc3NhZ2UiLCBBdG9t
aWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgUmVmUHRyPEhUTUxFbGVtZW50
PiBpY29uID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZSgmZG9jdW1lbnQpOworICAgIFJlZlB0cjxI
VE1MRWxlbWVudD4gaWNvbiA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAg
IGljb24tPnNldFBzZXVkbyhBdG9taWNTdHJpbmcoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUt
aWNvbiIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBtZXNzYWdl
LT5hcHBlbmRDaGlsZChpY29uLnJlbGVhc2UoKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0gICAg
UmVmUHRyPEhUTUxFbGVtZW50PiB0ZXh0QmxvY2sgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKCZk
b2N1bWVudCk7CisgICAgUmVmUHRyPEhUTUxFbGVtZW50PiB0ZXh0QmxvY2sgPSBIVE1MRGl2RWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICB0ZXh0QmxvY2stPnNldFBzZXVkbyhBdG9taWNT
dHJpbmcoIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtdGV4dC1ibG9jayIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBtX21lc3NhZ2VIZWFkaW5nID0gSFRNTERp
dkVsZW1lbnQ6OmNyZWF0ZSgmZG9jdW1lbnQpOworICAgIG1fbWVzc2FnZUhlYWRpbmcgPSBIVE1M
RGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBtX21lc3NhZ2VIZWFkaW5nLT5zZXRQ
c2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWhlYWRpbmciLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgdGV4dEJsb2NrLT5hcHBl
bmRDaGlsZChtX21lc3NhZ2VIZWFkaW5nLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKLSAgICBtX21l
c3NhZ2VCb2R5ID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZSgmZG9jdW1lbnQpOworICAgIG1fbWVz
c2FnZUJvZHkgPSBIVE1MRGl2RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBtX21lc3Nh
Z2VCb2R5LT5zZXRQc2V1ZG8oQXRvbWljU3RyaW5nKCItd2Via2l0LXZhbGlkYXRpb24tYnViYmxl
LWJvZHkiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgdGV4dEJs
b2NrLT5hcHBlbmRDaGlsZChtX21lc3NhZ2VCb2R5LCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKICAg
ICBtZXNzYWdlLT5hcHBlbmRDaGlsZCh0ZXh0QmxvY2sucmVsZWFzZSgpLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rp
b25TaXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
Q29uc3RydWN0aW9uU2l0ZS5jcHAJKHJldmlzaW9uIDE1NTc3OCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjA3LDcgKzIwNyw3IEBAIHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6OmRpc3BhdGNoRG9jdW0K
IAogdm9pZCBIVE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0SFRNTEh0bWxTdGFydFRhZ0JlZm9y
ZUhUTUwoQXRvbWljSFRNTFRva2VuKiB0b2tlbikKIHsKLSAgICBSZWZQdHI8SFRNTEh0bWxFbGVt
ZW50PiBlbGVtZW50ID0gSFRNTEh0bWxFbGVtZW50OjpjcmVhdGUobV9kb2N1bWVudCk7CisgICAg
UmVmUHRyPEhUTUxIdG1sRWxlbWVudD4gZWxlbWVudCA9IEhUTUxIdG1sRWxlbWVudDo6Y3JlYXRl
KCptX2RvY3VtZW50KTsKICAgICBzZXRBdHRyaWJ1dGVzKGVsZW1lbnQuZ2V0KCksIHRva2VuLCBt
X3BhcnNlckNvbnRlbnRQb2xpY3kpOwogICAgIGF0dGFjaExhdGVyKG1fYXR0YWNobWVudFJvb3Qs
IGVsZW1lbnQpOwogICAgIG1fb3BlbkVsZW1lbnRzLnB1c2hIVE1MSHRtbEVsZW1lbnQoSFRNTFN0
YWNrSXRlbTo6Y3JlYXRlKGVsZW1lbnQsIHRva2VuKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwCShyZXZpc2lvbiAx
NTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJv
bC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1EZXRhaWxzTWFya2VyQ29udHJvbDo6
RGV0YWlsc01hcmtlckNvbnRyb2woRG9jdW1lbnQqIGRvY3VtZW50KSAKK0RldGFpbHNNYXJrZXJD
b250cm9sOjpEZXRhaWxzTWFya2VyQ29udHJvbChEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBI
VE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQogewogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGV0YWlsc01hcmtlckNvbnRyb2wuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJvbC5oCShyZXZpc2lvbiAx
NTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EZXRhaWxzTWFya2VyQ29udHJv
bC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCwxMCArNDAsMTEgQEAgY2xhc3MgSFRNTFN1bW1hcnlF
bGVtZW50OwogCiBjbGFzcyBEZXRhaWxzTWFya2VyQ29udHJvbCBGSU5BTCA6IHB1YmxpYyBIVE1M
RGl2RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgRGV0YWlsc01hcmtlckNvbnRyb2woRG9jdW1lbnQq
KTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEZXRhaWxzTWFya2VyQ29udHJvbD4gY3JlYXRlKERv
Y3VtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RGV0YWlsc01hcmtlckNvbnRyb2w+IGNy
ZWF0ZShEb2N1bWVudCYpOwogCiBwcml2YXRlOgorICAgIERldGFpbHNNYXJrZXJDb250cm9sKERv
Y3VtZW50Jik7CisKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVu
ZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IFJlbmRlclN0eWxlJik7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcm
IHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CkBAIC01MSw3ICs1Miw3IEBAIHByaXZhdGU6CiAgICAg
SFRNTFN1bW1hcnlFbGVtZW50KiBzdW1tYXJ5RWxlbWVudCgpOwogfTsKIAotaW5saW5lIFBhc3NS
ZWZQdHI8RGV0YWlsc01hcmtlckNvbnRyb2w+IERldGFpbHNNYXJrZXJDb250cm9sOjpjcmVhdGUo
RG9jdW1lbnQqIGRvY3VtZW50KQoraW5saW5lIFBhc3NSZWZQdHI8RGV0YWlsc01hcmtlckNvbnRy
b2w+IERldGFpbHNNYXJrZXJDb250cm9sOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KQogewog
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGV0YWlsc01hcmtlckNvbnRyb2woZG9jdW1lbnQpKTsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRU
eXBlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sRWxlbWVudFR5cGVzLmNwcAkocmV2aXNpb24gMTU1Nzc4KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudFR5cGVzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTEyLDcgKzExMiw3IEBAIHZvaWQgTWVkaWFDb250cm9sRWxlbWVudDo6c2V0RGlzcGxh
eVR5cGUKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogTWVkaWFDb250cm9sRGl2
RWxlbWVudDo6TWVkaWFDb250cm9sRGl2RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIE1lZGlh
Q29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBlKQotICAgIDogSFRNTERpdkVsZW1lbnQoZGl2
VGFnLCBkb2N1bWVudCkKKyAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgKmRvY3VtZW50KQog
ICAgICwgTWVkaWFDb250cm9sRWxlbWVudChkaXNwbGF5VHlwZSwgdGhpcykKIHsKIH0KQEAgLTEy
MCw3ICsxMjAsNyBAQCBNZWRpYUNvbnRyb2xEaXZFbGVtZW50OjpNZWRpYUNvbnRyb2xEaXZFCiAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIE1lZGlhQ29udHJvbElucHV0RWxlbWVu
dDo6TWVkaWFDb250cm9sSW5wdXRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgTWVkaWFDb250
cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUpCi0gICAgOiBIVE1MSW5wdXRFbGVtZW50KGlucHV0
VGFnLCBkb2N1bWVudCwgMCwgZmFsc2UpCisgICAgOiBIVE1MSW5wdXRFbGVtZW50KGlucHV0VGFn
LCAqZG9jdW1lbnQsIDAsIGZhbHNlKQogICAgICwgTWVkaWFDb250cm9sRWxlbWVudChkaXNwbGF5
VHlwZSwgdGhpcykKIHsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbHMuY3BwCShyZXZpc2lvbiAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBNZWRpYUNvbnRyb2xzOjpNZWRpYUNvbnRyb2xzKERv
Y3VtZW50KiBkb2N1bWVudCkKLSAgICA6IEhUTUxEaXZFbGVtZW50KEhUTUxOYW1lczo6ZGl2VGFn
LCBkb2N1bWVudCkKKyAgICA6IEhUTUxEaXZFbGVtZW50KEhUTUxOYW1lczo6ZGl2VGFnLCAqZG9j
dW1lbnQpCiAgICAgLCBtX21lZGlhQ29udHJvbGxlcigwKQogICAgICwgbV9wYW5lbCgwKQogI2lm
IEVOQUJMRShWSURFT19UUkFDSykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbHNBcHBsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sc0FwcGxlLmNwcAkocmV2aXNpb24gMTU1Nzc4KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0FwcGxlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTc2LDcgKzE3Niw3IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sc0FwcGxlPiBNZWRp
YUNvbnQKICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbkJ1dHRvbi5yZWxlYXNlKCks
IGVjLCBBdHRhY2hMYXppbHkpOwogCiAgICAgLy8gVGhlIG11dGUgYnV0dG9uIGFuZCB0aGUgc2xp
ZGVyIGVsZW1lbnQgc2hvdWxkIGJlIGluIHRoZSBzYW1lIGRpdi4KLSAgICBSZWZQdHI8SFRNTERp
dkVsZW1lbnQ+IHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOworICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gcGFuZWxWb2x1bWVD
b250cm9sQ29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZSgqZG9jdW1lbnQpOwogCiAg
ICAgaWYgKGRvY3VtZW50LT5wYWdlKCktPnRoZW1lKCktPnVzZXNNZWRpYUNvbnRyb2xWb2x1bWVT
bGlkZXIoKSkgewogICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFp
bmVyRWxlbWVudD4gdm9sdW1lU2xpZGVyQ29udGFpbmVyID0gTWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNwcAkocmV2aXNpb24g
MTU1Nzc4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBNZXRlclNoYWRvd0VsZW1lbnQ6Ok1ldGVy
U2hhZG93RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpIAotICAgIDogSFRNTERpdkVsZW1lbnQo
SFRNTE5hbWVzOjpkaXZUYWcsIGRvY3VtZW50KQorICAgIDogSFRNTERpdkVsZW1lbnQoSFRNTE5h
bWVzOjpkaXZUYWcsICpkb2N1bWVudCkKIHsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwCShyZXZpc2lvbiAx
NTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIFByb2dyZXNzU2hhZG93RWxlbWVudDo6
UHJvZ3Jlc3NTaGFkb3dFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IEhUTUxEaXZF
bGVtZW50KEhUTUxOYW1lczo6ZGl2VGFnLCBkb2N1bWVudCkKKyAgICA6IEhUTUxEaXZFbGVtZW50
KEhUTUxOYW1lczo6ZGl2VGFnLCAqZG9jdW1lbnQpCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAkocmV2aXNpb24g
MTU1Nzc4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA3LDcgKzIwNyw3IEBAIHZvaWQgUmVuZGVyU2xpZGVy
Q29udGFpbmVyOjpsYXlvdXQoKQogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IAogU2xpZGVyVGh1bWJFbGVtZW50OjpTbGlkZXJUaHVtYkVsZW1lbnQoRG9jdW1lbnQqIGRvY3Vt
ZW50KQotICAgIDogSFRNTERpdkVsZW1lbnQoSFRNTE5hbWVzOjpkaXZUYWcsIGRvY3VtZW50KQor
ICAgIDogSFRNTERpdkVsZW1lbnQoSFRNTE5hbWVzOjpkaXZUYWcsICpkb2N1bWVudCkKICAgICAs
IG1faW5EcmFnTW9kZShmYWxzZSkKIHsKICAgICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxs
YmFja3MoKTsKQEAgLTQ0NSw3ICs0NDUsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFNsaWRlclRo
dW1iRWxlbWVudDo6CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBpbmxp
bmUgU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6U2xpZGVyQ29udGFpbmVyRWxlbWVudChEb2N1bWVu
dCogZG9jdW1lbnQpCi0gICAgOiBIVE1MRGl2RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgZG9j
dW1lbnQpCisgICAgOiBIVE1MRGl2RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgKmRvY3VtZW50
KQogewogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1
dHRvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAog
aW5saW5lIFNwaW5CdXR0b25FbGVtZW50OjpTcGluQnV0dG9uRWxlbWVudChEb2N1bWVudCogZG9j
dW1lbnQsIFNwaW5CdXR0b25Pd25lciYgc3BpbkJ1dHRvbk93bmVyKQotICAgIDogSFRNTERpdkVs
ZW1lbnQoZGl2VGFnLCBkb2N1bWVudCkKKyAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgKmRv
Y3VtZW50KQogICAgICwgbV9zcGluQnV0dG9uT3duZXIoJnNwaW5CdXR0b25Pd25lcikKICAgICAs
IG1fY2FwdHVyaW5nKGZhbHNlKQogICAgICwgbV91cERvd25TdGF0ZShJbmRldGVybWluYXRlKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJv
bElubmVyRWxlbWVudHMuY3BwCShyZXZpc2lvbiAxNTU3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBIVE1M
TmFtZXM7CiAKIFRleHRDb250cm9sSW5uZXJDb250YWluZXI6OlRleHRDb250cm9sSW5uZXJDb250
YWluZXIoRG9jdW1lbnQqIGRvY3VtZW50KQotICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCBk
b2N1bWVudCkKKyAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgKmRvY3VtZW50KQogewogfQog
CkBAIC02NCw3ICs2NCw3IEBAIFJlbmRlck9iamVjdCogVGV4dENvbnRyb2xJbm5lckNvbnRhaW5l
cjoKIH0KIAogVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OlRleHRDb250cm9sSW5uZXJFbGVtZW50
KERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgZG9jdW1l
bnQpCisgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsICpkb2N1bWVudCkKIHsKICAgICBzZXRI
YXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKIH0KQEAgLTgzLDcgKzgzLDcgQEAgUGFz
c1JlZlB0cjxSZW5kZXJTdHlsZT4gVGV4dENvbnRyb2xJbm5lcgogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiAKIGlubGluZSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OlRleHRD
b250cm9sSW5uZXJUZXh0RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBIVE1MRGl2
RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQorICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCAq
ZG9jdW1lbnQpCiB7CiAgICAgc2V0SGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJhY2tzKCk7CiB9
CkBAIC0xMjYsNyArMTI2LDcgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gVGV4dENvbnRyb2xJ
bm5lcgogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBpbmxpbmUgU2VhcmNoRmll
bGRSZXN1bHRzQnV0dG9uRWxlbWVudDo6U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uRWxlbWVudChE
b2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50
KQorICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCAqZG9jdW1lbnQpCiB7CiB9CiAKQEAgLTE4
MCw3ICsxODAsNyBAQCBib29sIFNlYXJjaEZpZWxkUmVzdWx0c0J1dHRvbkVsZW1lbnQ6OndpCiAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIGlubGluZSBTZWFyY2hGaWVsZENhbmNl
bEJ1dHRvbkVsZW1lbnQ6OlNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudChEb2N1bWVudCog
ZG9jdW1lbnQpCi0gICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQorICAgIDog
SFRNTERpdkVsZW1lbnQoZGl2VGFnLCAqZG9jdW1lbnQpCiAgICAgLCBtX2NhcHR1cmluZyhmYWxz
ZSkKIHsKICAgICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKQEAgLTI1OSw3
ICsyNTksNyBAQCBib29sIFNlYXJjaEZpZWxkQ2FuY2VsQnV0dG9uRWxlbWVudDo6d2lsCiAjaWYg
RU5BQkxFKElOUFVUX1NQRUVDSCkKIAogaW5saW5lIElucHV0RmllbGRTcGVlY2hCdXR0b25FbGVt
ZW50OjpJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCi0g
ICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQorICAgIDogSFRNTERpdkVsZW1l
bnQoZGl2VGFnLCAqZG9jdW1lbnQpCiAgICAgLCBtX2NhcHR1cmluZyhmYWxzZSkKICAgICAsIG1f
c3RhdGUoSWRsZSkKICAgICAsIG1fbGlzdGVuZXJJZCgwKQo=
</data>
<flag name="review"
          id="233784"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>