<?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>67689</bug_id>
          
          <creation_ts>2011-09-06 18:06:05 -0700</creation_ts>
          <short_desc>Remove JSObjectWithGlobalObject</short_desc>
          <delta_ts>2011-11-19 01:35:42 -0800</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="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>dongseong.hwang</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>463030</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-06 18:06:05 -0700</bug_when>
    <thetext>Remove JSObjectWithGlobalObject</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463031</commentid>
    <comment_count>1</comment_count>
      <attachid>106528</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-06 18:09:06 -0700</bug_when>
    <thetext>Created attachment 106528
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463032</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-06 18:11:00 -0700</bug_when>
    <thetext>Attachment 106528 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSCallbackConstr...&quot; exit_code: 1

Source/JavaScriptCore/runtime/MathObject.h:28:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/JavaScriptCore/runtime/RegExpObject.h:29:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 2 in 46 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>463035</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-09-06 18:18:24 -0700</bug_when>
    <thetext>r=me too, but you&apos;re going to need to update the windows project file, .def file, and other project files, I assume.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463044</commentid>
    <comment_count>4</comment_count>
      <attachid>106530</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-06 18:29:35 -0700</bug_when>
    <thetext>Created attachment 106530
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463047</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-06 18:36:52 -0700</bug_when>
    <thetext>Attachment 106530 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSCallbackConstr...&quot; exit_code: 1

Source/JavaScriptCore/runtime/MathObject.h:28:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/JavaScriptCore/runtime/RegExpObject.h:29:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 2 in 46 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>463131</commentid>
    <comment_count>6</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-06 21:27:47 -0700</bug_when>
    <thetext>Really, the qt bot is 20 builds behind?  is it modeling itself after the mac-ews?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463448</commentid>
    <comment_count>7</comment_count>
      <attachid>106599</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-07 10:51:45 -0700</bug_when>
    <thetext>Created attachment 106599
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463453</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-07 10:54:54 -0700</bug_when>
    <thetext>Attachment 106599 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSCallbackConstr...&quot; exit_code: 1

Source/JavaScriptCore/runtime/MathObject.h:28:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/JavaScriptCore/runtime/RegExpObject.h:29:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 2 in 46 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>463475</commentid>
    <comment_count>9</comment_count>
      <attachid>106599</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-09-07 11:18:48 -0700</bug_when>
    <thetext>Comment on attachment 106599
Patch

r=me, assuming it builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463479</commentid>
    <comment_count>10</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-07 11:22:22 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 106599 [details])
&gt; r=me, assuming it builds
I&apos;m not making significant changes, just pounding this through the EWS bots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463509</commentid>
    <comment_count>11</comment_count>
      <attachid>106611</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-07 11:42:10 -0700</bug_when>
    <thetext>Created attachment 106611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463523</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-07 11:46:34 -0700</bug_when>
    <thetext>Attachment 106611 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSCallbackConstr...&quot; exit_code: 1

Source/JavaScriptCore/runtime/MathObject.h:28:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/JavaScriptCore/runtime/RegExpObject.h:29:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 2 in 47 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>463582</commentid>
    <comment_count>13</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-07 12:39:53 -0700</bug_when>
    <thetext>Committed r94701: &lt;http://trac.webkit.org/changeset/94701&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463837</commentid>
    <comment_count>14</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-09-07 19:40:19 -0700</bug_when>
    <thetext>Binding tests started to failing after this patch:
http://build.webkit.org/builders/SnowLeopard%20Intel%20Debug%20%28Tests%29/builds/2043

output:
http://build.webkit.org/builders/SnowLeopard%20Intel%20Debug%20%28Tests%29/builds/2043/steps/bindings-generation-tests/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506365</commentid>
    <comment_count>15</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2011-11-19 01:35:42 -0800</bug_when>
    <thetext>There is Source/WebCore/ForwardingHeaders/runtime/JSObjectWithGlobalObject.h, yet.
That file should be removed, right?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106528</attachid>
            <date>2011-09-06 18:09:06 -0700</date>
            <delta_ts>2011-09-06 18:29:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67689-20110906180905.patch</filename>
            <type>text/plain</type>
            <size>80883</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ2MDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcAppbmRleCA5NTA0YWQ4MGQ4NTNmM2M2NTVm
ODQyOGQ3ZDE2YTY1ZmVjYjgzMDc3Li4xZjcyNzAxYzdmZWJiMjE3NDk4ODlkNDExNDg5OThkZWNm
YWRiYmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuY3BwCkBAIC0zNiwxMCArMzYsMTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAK
LWNvbnN0IENsYXNzSW5mbyBKU0NhbGxiYWNrQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkNhbGxi
YWNrQ29uc3RydWN0b3IiLCAmSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpzX2luZm8sIDAsIDAg
fTsKK2NvbnN0IENsYXNzSW5mbyBKU0NhbGxiYWNrQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkNh
bGxiYWNrQ29uc3RydWN0b3IiLCAmSlNOb25GaW5hbE9iamVjdDo6c19pbmZvLCAwLCAwIH07CiAK
IEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6SlNDYWxsYmFja0NvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0NsYXNzUmVmIGpzQ2xh
c3MsIEpTT2JqZWN0Q2FsbEFzQ29uc3RydWN0b3JDYWxsYmFjayBjYWxsYmFjaykKLSAgICA6IEpT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKKyAgICA6IEpT
Tm9uRmluYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKICAg
ICAsIG1fY2xhc3MoanNDbGFzcykKICAgICAsIG1fY2FsbGJhY2soY2FsbGJhY2spCiB7CkBAIC00
OCw3ICs0OCw3IEBAIEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6SlNDYWxsYmFja0NvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjCiAKIHZvaWQgSlNDYWxsYmFja0Nv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0NsYXNzUmVmIGpzQ2xhc3MpCiB7Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19p
bmZvKSk7CiAgICAgaWYgKG1fY2xhc3MpCiAgICAgICAgIEpTQ2xhc3NSZXRhaW4oanNDbGFzcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1
Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3Iu
aAppbmRleCA1OWE1YzQ0MzAzOGQ3NjUzY2Y4NTMyMGQ4NzVmZGU5YzI5ZDQ3OGYwLi5lNTEyN2Ex
YWQzYmUyNjQ3MWFlMzdmYjdhMjJiOTUyODNmNjg3OTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmgKQEAgLTI3LDEzICsyNywxMyBA
QAogI2RlZmluZSBKU0NhbGxiYWNrQ29uc3RydWN0b3JfaAogCiAjaW5jbHVkZSAiSlNPYmplY3RS
ZWYuaCIKLSNpbmNsdWRlIDxydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oPgorI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIEpT
Q2FsbGJhY2tDb25zdHJ1Y3RvciA6IHB1YmxpYyBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Qgewor
Y2xhc3MgSlNDYWxsYmFja0NvbnN0cnVjdG9yIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qgewog
cHVibGljOgotICAgIHR5cGVkZWYgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IEJhc2U7CisgICAg
dHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAKICAgICBzdGF0aWMgSlNDYWxsYmFja0Nv
bnN0cnVjdG9yKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNDbGFzc1JlZiBjbGFzc1JlZiwgSlNPYmpl
Y3RDYWxsQXNDb25zdHJ1Y3RvckNhbGxiYWNrIGNhbGxiYWNrKSAKICAgICB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmNwcAppbmRleCA2YTc0NjJhOTA0
MGY4Y2ExZDdmYjI0YWI5NTlmZDYwMDM1ODdjYjY0Li42M2I5MTA1NTBjNmUwZWEyNWMyOWI3YjNk
MmIyMWIwNmNjZTdhZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdC5jcHAKQEAgLTMyLDExICszMiwxMSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
QVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdD4pOworQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU0NhbGxiYWNrT2JqZWN0
PEpTTm9uRmluYWxPYmplY3Q+KTsKIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNDYWxsYmFj
a09iamVjdDxKU0dsb2JhbE9iamVjdD4pOwogCiAvLyBEZWZpbmUgdGhlIHR3byB0eXBlcyBvZiBK
U0NhbGxiYWNrT2JqZWN0cyB3ZSBzdXBwb3J0LgotdGVtcGxhdGUgPD4gY29uc3QgQ2xhc3NJbmZv
IEpTQ2FsbGJhY2tPYmplY3Q8SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Pjo6c19pbmZvID0geyAi
Q2FsbGJhY2tPYmplY3QiLCAmSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpzX2luZm8sIDAsIDAg
fTsKK3RlbXBsYXRlIDw+IGNvbnN0IENsYXNzSW5mbyBKU0NhbGxiYWNrT2JqZWN0PEpTTm9uRmlu
YWxPYmplY3Q+OjpzX2luZm8gPSB7ICJDYWxsYmFja09iamVjdCIsICZKU05vbkZpbmFsT2JqZWN0
OjpzX2luZm8sIDAsIDAgfTsKIHRlbXBsYXRlIDw+IGNvbnN0IENsYXNzSW5mbyBKU0NhbGxiYWNr
T2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvID0geyAiQ2FsbGJhY2tHbG9iYWxPYmplY3Qi
LCAmSlNHbG9iYWxPYmplY3Q6OnNfaW5mbywgMCwgMCB9OwogCiB2b2lkIEpTQ2FsbGJhY2tPYmpl
Y3REYXRhOjpmaW5hbGl6ZShIYW5kbGU8VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAppbmRleCAzOTNm
MTNmYzQ3ZmIxNWJmNTJlODJhOTc4OGY0MDFjM2JlNzdiNDA0Li4xMjZmZTVmNWJlYjExNTVmZDUz
YmY0NTI1MzIxZTY5YjQyZTU1MDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3QuaApAQCAtMTE3LDE0ICsxMTcsMTQgQEAgc3RydWN0IEpTQ2FsbGJhY2tP
YmplY3REYXRhIDogV2Vha0hhbmRsZU93bmVyIHsKIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+CiBj
bGFzcyBKU0NhbGxiYWNrT2JqZWN0IDogcHVibGljIFBhcmVudCB7CiBwcm90ZWN0ZWQ6Ci0gICAg
SlNDYWxsYmFja09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSos
IEpTQ2xhc3NSZWYsIHZvaWQqIGRhdGEpOworICAgIEpTQ2FsbGJhY2tPYmplY3QoRXhlY1N0YXRl
KiwgU3RydWN0dXJlKiwgSlNDbGFzc1JlZiwgdm9pZCogZGF0YSk7CiAgICAgSlNDYWxsYmFja09i
amVjdChKU0dsb2JhbERhdGEmLCBKU0NsYXNzUmVmLCBTdHJ1Y3R1cmUqKTsKICAgICAvLyBXZSdk
IGxpa2UgdG8gdXNlIHRoZSBwbGFjZW1lbnQgdmVyc2lvbiBvZiBvcGVyYXRvciBuZXcgZGVmaW5l
ZCBpbiBKU0NlbGwsIGJ1dCAKICAgICAvLyB3ZSBjYW4ndCBiZWNhdXNlIFBhcmVudCBpcyBhIHRl
bXBsYXRlIGFyZ3VtZW50LCBzbyB3ZSBqdXN0IGR1cGxpY2F0ZSB0aGUgc2FtZSAKICAgICAvLyBm
dW5jdGlvbmFsaXR5IGhlcmUuCiAgICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCwgdm9pZCog
cHRyKSB7IHJldHVybiBwdHI7IH0KIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRl
KiwgSlNHbG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSop
OwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oKTsKIAogcHVibGljOgpAQCAtMTMyLDcgKzEzMiw4
IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0NhbGxiYWNrT2JqZWN0KiBjcmVhdGUoRXhlY1N0
YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgSlNDbGFzc1JlZiBjbGFzc1JlZiwgdm9pZCogZGF0YSkKICAgICB7Ci0gICAgICAgIEpT
Q2FsbGJhY2tPYmplY3QqIGNhbGxiYWNrT2JqZWN0ID0gbmV3IChhbGxvY2F0ZUNlbGw8SlNDYWxs
YmFja09iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIEpTQ2FsbGJhY2tPYmplY3QoZXhlYywgZ2xvYmFs
T2JqZWN0LCBzdHJ1Y3R1cmUsIGNsYXNzUmVmLCBkYXRhKTsKKyAgICAgICAgQVNTRVJUKCFzdHJ1
Y3R1cmUtPmdsb2JhbE9iamVjdCgpIHx8IHN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCkgPT0gZ2xv
YmFsT2JqZWN0KTsKKyAgICAgICAgSlNDYWxsYmFja09iamVjdCogY2FsbGJhY2tPYmplY3QgPSBu
ZXcgKGFsbG9jYXRlQ2VsbDxKU0NhbGxiYWNrT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgSlNDYWxs
YmFja09iamVjdChleGVjLCBzdHJ1Y3R1cmUsIGNsYXNzUmVmLCBkYXRhKTsKICAgICAgICAgcmV0
dXJuIGNhbGxiYWNrT2JqZWN0OwogICAgIH0KICAgICBzdGF0aWMgSlNDYWxsYmFja09iamVjdCog
Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDbGFzc1JlZiBjbGFzc1JlZiwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oCmluZGV4IGMzMTIzYmRmNjdlOGQzZjcyMDRhNjcx
ODcyMmMwMzRmYTFhZmI4MDQuLmY2MjdjM2JmYjgwYzZlYWI2NWIzMDJjMTA3MzA5NWFiYjAxYjZm
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVj
dEZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09i
amVjdEZ1bmN0aW9ucy5oCkBAIC01MCwxMSArNTAsMTEgQEAgaW5saW5lIEpTQ2FsbGJhY2tPYmpl
Y3Q8UGFyZW50PiogSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+Ojphc0NhbGxiYWNrT2JqZWN0KEpT
VmEKIH0KIAogdGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KLUpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50
Pjo6SlNDYWxsYmFja09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0NsYXNzUmVmIGpzQ2xhc3MsIHZvaWQq
IGRhdGEpCi0gICAgOiBQYXJlbnQoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCitKU0NhbGxiYWNr
T2JqZWN0PFBhcmVudD46OkpTQ2FsbGJhY2tPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgSlNDbGFzc1JlZiBqc0NsYXNzLCB2b2lkKiBkYXRhKQorICAgIDogUGFy
ZW50KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogICAgICwgbV9jYWxsYmFja09iamVj
dERhdGEoYWRvcHRQdHIobmV3IEpTQ2FsbGJhY2tPYmplY3REYXRhKGRhdGEsIGpzQ2xhc3MpKSkK
IHsKLSAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QpOworICAgIGZpbmlzaENy
ZWF0aW9uKGV4ZWMpOwogfQogCiAvLyBHbG9iYWwgb2JqZWN0IGNvbnN0cnVjdG9yLgpAQCAtNjgs
OSArNjgsOSBAQCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OkpTQ2FsbGJhY2tPYmplY3QoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0NsYXNzUmVmCiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBQ
YXJlbnQ+Ci12b2lkIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6ZmluaXNoQ3JlYXRpb24oRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQordm9pZCBKU0NhbGxi
YWNrT2JqZWN0PFBhcmVudD46OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFs
T2JqZWN0KTsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOwog
ICAgIEFTU0VSVChQYXJlbnQ6OmluaGVyaXRzKCZzX2luZm8pKTsKICAgICBpbml0KGV4ZWMpOwog
fQpAQCAtNTc0LDcgKzU3NCw3IEBAIEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+Ojpz
dGF0aWNGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUKICAgICAgICAgICAg
IGlmIChTdGF0aWNGdW5jdGlvbkVudHJ5KiBlbnRyeSA9IHN0YXRpY0Z1bmN0aW9ucy0+Z2V0KHBy
b3BlcnR5TmFtZS5pbXBsKCkpKSB7CiAgICAgICAgICAgICAgICAgaWYgKEpTT2JqZWN0Q2FsbEFz
RnVuY3Rpb25DYWxsYmFjayBjYWxsQXNGdW5jdGlvbiA9IGVudHJ5LT5jYWxsQXNGdW5jdGlvbikg
ewogICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgSlNPYmplY3QqIG8g
PSBKU0NhbGxiYWNrRnVuY3Rpb246OmNyZWF0ZShleGVjLCBhc0dsb2JhbE9iamVjdCh0aGlzT2Jq
LT5nZXRBbm9ueW1vdXNWYWx1ZSgwKSksIGNhbGxBc0Z1bmN0aW9uLCBwcm9wZXJ0eU5hbWUpOwor
ICAgICAgICAgICAgICAgICAgICBKU09iamVjdCogbyA9IEpTQ2FsbGJhY2tGdW5jdGlvbjo6Y3Jl
YXRlKGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9iamVjdCgpLCBjYWxsQXNGdW5jdGlvbiwgcHJvcGVy
dHlOYW1lKTsKICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+cHV0RGlyZWN0KGV4ZWMtPmds
b2JhbERhdGEoKSwgcHJvcGVydHlOYW1lLCBvLCBlbnRyeS0+YXR0cmlidXRlcyk7CiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBvOwogICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCmluZGV4IGM3MWFkODljOWYwYzg0ZTUzOGQ2NGE1ODRk
ZjgxMmNhOTQ3MTlkYmIuLjE0YTk2MzkwZTlkZTdjYmQxZTUzY2VlN2I4NTViMGY4YmY1MThkMjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcApAQCAtMjUxLDcgKzI1
MSw3IEBAIEpTT2JqZWN0KiBPcGFxdWVKU0NsYXNzOjpwcm90b3R5cGUoRXhlY1N0YXRlKiBleGVj
KQogCiAgICAgaWYgKCFqc0NsYXNzRGF0YS5jYWNoZWRQcm90b3R5cGUpIHsKICAgICAgICAgLy8g
UmVjdXJzaXZlLCBidXQgc2hvdWxkIGJlIGdvb2QgZW5vdWdoIGZvciBvdXIgcHVycG9zZXMKLSAg
ICAgICAganNDbGFzc0RhdGEuY2FjaGVkUHJvdG90eXBlLnNldChleGVjLT5nbG9iYWxEYXRhKCks
IEpTQ2FsbGJhY2tPYmplY3Q8SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Pjo6Y3JlYXRlKGV4ZWMs
IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
LT5jYWxsYmFja09iamVjdFN0cnVjdHVyZSgpLCBwcm90b3R5cGVDbGFzcywgJmpzQ2xhc3NEYXRh
KSwgMCk7IC8vIHNldCBqc0NsYXNzRGF0YSBhcyB0aGUgb2JqZWN0J3MgcHJpdmF0ZSBkYXRhLCBz
byBpdCBjYW4gY2xlYXIgb3VyIHJlZmVyZW5jZSBvbiBkZXN0cnVjdGlvbgorICAgICAgICBqc0Ns
YXNzRGF0YS5jYWNoZWRQcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgSlNDYWxsYmFj
a09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pjo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5jYWxsYmFja09iamVjdFN0
cnVjdHVyZSgpLCBwcm90b3R5cGVDbGFzcywgJmpzQ2xhc3NEYXRhKSwgMCk7IC8vIHNldCBqc0Ns
YXNzRGF0YSBhcyB0aGUgb2JqZWN0J3MgcHJpdmF0ZSBkYXRhLCBzbyBpdCBjYW4gY2xlYXIgb3Vy
IHJlZmVyZW5jZSBvbiBkZXN0cnVjdGlvbgogICAgICAgICBpZiAocGFyZW50Q2xhc3MpIHsKICAg
ICAgICAgICAgIGlmIChKU09iamVjdCogcHJvdG90eXBlID0gcGFyZW50Q2xhc3MtPnByb3RvdHlw
ZShleGVjKSkKICAgICAgICAgICAgICAgICBqc0NsYXNzRGF0YS5jYWNoZWRQcm90b3R5cGUtPnNl
dFByb3RvdHlwZShleGVjLT5nbG9iYWxEYXRhKCksIHByb3RvdHlwZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCmluZGV4IDllZmU2NGZkZTQ0MDQ3OWE3NzFjMDAw
NTQ4NTIxZjYzMTkxYjI2NTcuLmNmMDMxZjcwZTNiMmM4NzQ0YjAwMDA1NTNhMGEyYjYxYTU5ZjJh
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCkBAIC04MSw3
ICs4MSw3IEBAIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZShKU0NvbnRleHRSZWYgY3R4LCBKU0Ns
YXNzUmVmIGpzQ2xhc3MsIHZvaWQqIGRhdGEpCiAgICAgaWYgKCFqc0NsYXNzKQogICAgICAgICBy
ZXR1cm4gdG9SZWYoY29uc3RydWN0RW1wdHlPYmplY3QoZXhlYykpOwogCi0gICAgSlNDYWxsYmFj
a09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+KiBvYmplY3QgPSBKU0NhbGxiYWNrT2Jq
ZWN0PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdD46OmNyZWF0ZShleGVjLCBleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Y2FsbGJhY2tPYmpl
Y3RTdHJ1Y3R1cmUoKSwganNDbGFzcywgZGF0YSk7CisgICAgSlNDYWxsYmFja09iamVjdDxKU05v
bkZpbmFsT2JqZWN0Piogb2JqZWN0ID0gSlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0
Pjo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpLT5jYWxsYmFja09iamVjdFN0cnVjdHVyZSgpLCBqc0NsYXNzLCBkYXRh
KTsKICAgICBpZiAoSlNPYmplY3QqIHByb3RvdHlwZSA9IGpzQ2xhc3MtPnByb3RvdHlwZShleGVj
KSkKICAgICAgICAgb2JqZWN0LT5zZXRQcm90b3R5cGUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm90
b3R5cGUpOwogCkBAIC0zNDIsOCArMzQyLDggQEAgdm9pZCogSlNPYmplY3RHZXRQcml2YXRlKEpT
T2JqZWN0UmVmIG9iamVjdCkKICAgICAKICAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKCZKU0Nh
bGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvKSkKICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5n
ZXRQcml2YXRlKCk7Ci0gICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cygmSlNDYWxsYmFja09iamVj
dDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+OjpzX2luZm8pKQotICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+Kj4oanNP
YmplY3QpLT5nZXRQcml2YXRlKCk7CisgICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cygmSlNDYWxs
YmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pjo6c19pbmZvKSkKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD4qPihqc09iamVjdCkt
PmdldFByaXZhdGUoKTsKICAgICAKICAgICByZXR1cm4gMDsKIH0KQEAgLTM1Niw4ICszNTYsOCBA
QCBib29sIEpTT2JqZWN0U2V0UHJpdmF0ZShKU09iamVjdFJlZiBvYmplY3QsIHZvaWQqIGRhdGEp
CiAgICAgICAgIHN0YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+Kj4o
anNPYmplY3QpLT5zZXRQcml2YXRlKGRhdGEpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
Ci0gICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cygmSlNDYWxsYmFja09iamVjdDxKU09iamVjdFdp
dGhHbG9iYWxPYmplY3Q+OjpzX2luZm8pKSB7Ci0gICAgICAgIHN0YXRpY19jYXN0PEpTQ2FsbGJh
Y2tPYmplY3Q8SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Pio+KGpzT2JqZWN0KS0+c2V0UHJpdmF0
ZShkYXRhKTsKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpT
Tm9uRmluYWxPYmplY3Q+OjpzX2luZm8pKSB7CisgICAgICAgIHN0YXRpY19jYXN0PEpTQ2FsbGJh
Y2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD4qPihqc09iamVjdCktPnNldFByaXZhdGUoZGF0YSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAgICAgCkBAIC0zNzMsOCArMzczLDgg
QEAgSlNWYWx1ZVJlZiBKU09iamVjdEdldFByaXZhdGVQcm9wZXJ0eShKU0NvbnRleHRSZWYgY3R4
LCBKU09iamVjdFJlZiBvYmplY3QsIEpTU3QKICAgICBJZGVudGlmaWVyIG5hbWUocHJvcGVydHlO
YW1lLT5pZGVudGlmaWVyKCZleGVjLT5nbG9iYWxEYXRhKCkpKTsKICAgICBpZiAoanNPYmplY3Qt
PmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvKSkKICAg
ICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVj
dD4qPihqc09iamVjdCktPmdldFByaXZhdGVQcm9wZXJ0eShuYW1lKTsKLSAgICBlbHNlIGlmIChq
c09iamVjdC0+aW5oZXJpdHMoJkpTQ2FsbGJhY2tPYmplY3Q8SlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0Pjo6c19pbmZvKSkKLSAgICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09i
amVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5nZXRQcml2YXRlUHJv
cGVydHkobmFtZSk7CisgICAgZWxzZSBpZiAoanNPYmplY3QtPmluaGVyaXRzKCZKU0NhbGxiYWNr
T2JqZWN0PEpTTm9uRmluYWxPYmplY3Q+OjpzX2luZm8pKQorICAgICAgICByZXN1bHQgPSBzdGF0
aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTTm9uRmluYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5n
ZXRQcml2YXRlUHJvcGVydHkobmFtZSk7CiAgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHJlc3VsdCk7
CiB9CiAKQEAgLTM4OSw4ICszODksOCBAQCBib29sIEpTT2JqZWN0U2V0UHJpdmF0ZVByb3BlcnR5
KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZQogICAgICAg
ICBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pio+KGpzT2JqZWN0
KS0+c2V0UHJpdmF0ZVByb3BlcnR5KGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFtZSwganNWYWx1ZSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBpZiAoanNPYmplY3QtPmluaGVyaXRz
KCZKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdD46OnNfaW5mbykpIHsK
LSAgICAgICAgc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxP
YmplY3Q+Kj4oanNPYmplY3QpLT5zZXRQcml2YXRlUHJvcGVydHkoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBuYW1lLCBqc1ZhbHVlKTsKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKCZKU0NhbGxiYWNr
T2JqZWN0PEpTTm9uRmluYWxPYmplY3Q+OjpzX2luZm8pKSB7CisgICAgICAgIHN0YXRpY19jYXN0
PEpTQ2FsbGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD4qPihqc09iamVjdCktPnNldFByaXZh
dGVQcm9wZXJ0eShleGVjLT5nbG9iYWxEYXRhKCksIG5hbWUsIGpzVmFsdWUpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDA2LDggKzQwNiw4IEBA
IGJvb2wgSlNPYmplY3REZWxldGVQcml2YXRlUHJvcGVydHkoSlNDb250ZXh0UmVmIGN0eCwgSlNP
YmplY3RSZWYgb2JqZWN0LCBKU1N0cmluCiAgICAgICAgIHN0YXRpY19jYXN0PEpTQ2FsbGJhY2tP
YmplY3Q8SlNHbG9iYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5kZWxldGVQcml2YXRlUHJvcGVydHko
bmFtZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBpZiAoanNPYmplY3QtPmlu
aGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdD46OnNfaW5m
bykpIHsKLSAgICAgICAgc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU09iamVjdFdpdGhH
bG9iYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5kZWxldGVQcml2YXRlUHJvcGVydHkobmFtZSk7Cisg
ICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cygmSlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2Jq
ZWN0Pjo6c19pbmZvKSkgeworICAgICAgICBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpT
Tm9uRmluYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5kZWxldGVQcml2YXRlUHJvcGVydHkobmFtZSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcAppbmRleCAxOGJiZDkxZTZhNGY4ODJlZTM3
MmI1YmUzMjE4ZjU0YzlhODEyZDE1Li44MDNjY2Q5MWZlOGNjNjE2NDhhODg4ZTg3ZDUzOGVjZGVk
Y2VlNDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKQEAgLTEz
MSw4ICsxMzEsOCBAQCBib29sIEpTVmFsdWVJc09iamVjdE9mQ2xhc3MoSlNDb250ZXh0UmVmIGN0
eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNDbGFzc1JlZiBqc0NsYQogICAgIGlmIChKU09iamVjdCog
byA9IGpzVmFsdWUuZ2V0T2JqZWN0KCkpIHsKICAgICAgICAgaWYgKG8tPmluaGVyaXRzKCZKU0Nh
bGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvKSkKICAgICAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pio+KG8pLT5pbmhl
cml0cyhqc0NsYXNzKTsKLSAgICAgICAgaWYgKG8tPmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0
PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdD46OnNfaW5mbykpCi0gICAgICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+Kj4o
byktPmluaGVyaXRzKGpzQ2xhc3MpOworICAgICAgICBpZiAoby0+aW5oZXJpdHMoJkpTQ2FsbGJh
Y2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD46OnNfaW5mbykpCisgICAgICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pio+KG8pLT5pbmhl
cml0cyhqc0NsYXNzKTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAK
aW5kZXggMTM5MDBjZjgzMjdiNGYwMjZlMjAzZjRhMTJjYjU4NDY0YzIwM2ExNC4uNDI5MmE2MGJk
OTg0YzEwMThhOTYxODBkOTk4YzFjZGI0NTdjYjU3YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTV2Vha09iamVjdE1hcFJlZlByaXZhdGUuY3BwCkBAIC01Nyw3
ICs1Nyw3IEBAIHZvaWQgSlNXZWFrT2JqZWN0TWFwU2V0KEpTQ29udGV4dFJlZiBjdHgsIEpTV2Vh
a09iamVjdE1hcFJlZiBtYXAsIHZvaWQqIGtleSwgSlNPCiAgICAgSlNPYmplY3QqIG9iaiA9IHRv
SlMob2JqZWN0KTsKICAgICBpZiAoIW9iaikKICAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVChv
YmotPmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvKSB8
fCBvYmotPmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dD46OnNfaW5mbykpOworICAgIEFTU0VSVChvYmotPmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0
PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvKSB8fCBvYmotPmluaGVyaXRzKCZKU0NhbGxiYWNrT2Jq
ZWN0PEpTTm9uRmluYWxPYmplY3Q+OjpzX2luZm8pKTsKICAgICBtYXAtPm1hcCgpLnNldChleGVj
LT5nbG9iYWxEYXRhKCksIGtleSwgb2JqKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5k
ZXggNDFiNDliZWNhZDE0Y2JhZjJjMDg3MWZhZjhlZjJjOWM4NTM1ZTBkMS4uNTg1OGZkZmVmOGM1
ZmM0OTFkMjcyMTQ3ZWEzYTQ0Mzc5NWFiMjIwOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsOTEgQEAKKzIwMTEtMDktMDYgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNv
bT4KKworICAgICAgICBSZW1vdmUgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzY4OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBKU09iamVjdFdpdGhH
bG9iYWxPYmplY3QsIGFuZCB1cGRhdGUgY29kZSB0byBzdG9wIHVzaW5nIGFub255bW91cworICAg
ICAgICBzdG9yYWdlIHRvIGFjY2VzcyB0aGUgZ2xvYmFsIG9iamVjdCB0aGF0IGEgSlNPYmplY3Qg
Y29tZXMgZnJvbS4gIExhcmdlbHkKKyAgICAgICAgbWVjaGFuaWNhbCBjaGFuZ2UgdG8gcmVtb3Zl
IHRoZSB1c2Ugb2YgYW5vbnltb3VzIHN0b3JhZ2UgYW5kIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dC4KKworICAgICAgICAqIEFQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAo
SlNDOjpKU0NhbGxiYWNrQ29uc3RydWN0b3I6OkpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcik6CisgICAg
ICAgIChKU0M6OkpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAg
ICAqIEFQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFj
a09iamVjdC5jcHA6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoKKyAgICAgICAg
KEpTQzo6SlNDYWxsYmFja09iamVjdDo6Y3JlYXRlKToKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFj
a09iamVjdEZ1bmN0aW9ucy5oOgorICAgICAgICAoSlNDOjo6OkpTQ2FsbGJhY2tPYmplY3QpOgor
ICAgICAgICAoSlNDOjo6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6OjpzdGF0aWNG
dW5jdGlvbkdldHRlcik6CisgICAgICAgICogQVBJL0pTQ2xhc3NSZWYuY3BwOgorICAgICAgICAo
T3BhcXVlSlNDbGFzczo6cHJvdG90eXBlKToKKyAgICAgICAgKiBBUEkvSlNPYmplY3RSZWYuY3Bw
OgorICAgICAgICAoSlNPYmplY3RNYWtlKToKKyAgICAgICAgKEpTT2JqZWN0R2V0UHJpdmF0ZSk6
CisgICAgICAgIChKU09iamVjdFNldFByaXZhdGUpOgorICAgICAgICAoSlNPYmplY3RHZXRQcml2
YXRlUHJvcGVydHkpOgorICAgICAgICAoSlNPYmplY3RTZXRQcml2YXRlUHJvcGVydHkpOgorICAg
ICAgICAoSlNPYmplY3REZWxldGVQcml2YXRlUHJvcGVydHkpOgorICAgICAgICAqIEFQSS9KU1Zh
bHVlUmVmLmNwcDoKKyAgICAgICAgKEpTVmFsdWVJc09iamVjdE9mQ2xhc3MpOgorICAgICAgICAq
IEFQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcDoKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS5leHA6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKiBkZmcvREZH
UmVwYXRjaC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6ZGZnUmVwYXRjaEdldE1ldGhvZEZhc3Qp
OgorICAgICAgICAoSlNDOjpERkc6OnRyeUNhY2hlR2V0TWV0aG9kKToKKyAgICAgICAgKiBqaXQv
SklULmg6CisgICAgICAgICogaml0L0pJVElubGluZU1ldGhvZHMuaDoKKyAgICAgICAgKEpTQzo6
SklUOjplbWl0QWxsb2NhdGVKU0Z1bmN0aW9uKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlB
Y2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnBhdGNoTWV0aG9kQ2FsbFByb3RvKToKKyAg
ICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjpERUZJTkVfU1RVQl9GVU5D
VElPTik6CisgICAgICAgICogcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBy
dW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0
aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6SW50ZXJuYWxGdW5jdGlvbjo6
ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTRnVuY3Rp
b246OkpTRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpmaW5pc2hDcmVhdGlv
bik6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmg6CisgICAgICAgIChKU0M6OkpTRnVu
Y3Rpb246OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVy
ZSk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6
OkpTR2xvYmFsT2JqZWN0OjpyZXNldCk6CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0LmNw
cDoKKyAgICAgICAgKEpTQzo6SlNPTk9iamVjdDo6SlNPTk9iamVjdCk6CisgICAgICAgIChKU0M6
OkpTT05PYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmpl
Y3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT2Jq
ZWN0OjpnbG9iYWxPYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFs
T2JqZWN0LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0V2l0aEdsb2Jh
bE9iamVjdC5oOiBSZW1vdmVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNWYWx1ZS5jcHA6CisgICAg
ICAgIChKU0M6OkpTVmFsdWU6OmlzVmFsaWRDYWxsZWUpOgorICAgICAgICAqIHJ1bnRpbWUvTG9v
a3VwLmNwcDoKKyAgICAgICAgKEpTQzo6c2V0VXBTdGF0aWNGdW5jdGlvblNsb3QpOgorICAgICAg
ICAqIHJ1bnRpbWUvTG9va3VwLmg6CisgICAgICAgICogcnVudGltZS9NYXRoT2JqZWN0LmNwcDoK
KyAgICAgICAgKEpTQzo6TWF0aE9iamVjdDo6TWF0aE9iamVjdCk6CisgICAgICAgIChKU0M6Ok1h
dGhPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL01hdGhPYmplY3Qu
aDoKKyAgICAgICAgKiBydW50aW1lL051bWJlclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVu
dGltZS9SZWdFeHBPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OlJlZ0V4
cE9iamVjdCk6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgor
ICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9TdHJ1
Y3R1cmUuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OlN0cnVjdHVyZSk6CisgICAgICAg
ICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpjcmVhdGUp
OgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6Omdsb2JhbE9iamVjdCk6CisKIDIwMTEtMDktMDUg
IE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBbiBvYmplY3QncyBz
dHJ1Y3R1cmUgc2hvdWxkIHJlZmVyZW5jZSB0aGUgZ2xvYmFsIG9iamVjdCByZXNwb25zaWJsZSBm
b3IgaXRzIGNyZWF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cApp
bmRleCA1NjhlNDBmMDIzNjgyZjc0MmU0NjA2MmJhMzhjZDUwNGVhYjQ5NTY0Li5iMDk1YjhhYTkx
ZDJjZTBlZGNjMjFhMDM5MTFlY2EzYmU4MzRkYmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5leHAKQEAgLTEwOSw4ICsxMDksNyBAQCBfX1pOM0pTQzEwSWRlbnRpZmll
cjNhZGRFUE5TXzlFeGVjU3RhdGVFUEtjCiBfX1pOM0pTQzEwSWRlbnRpZmllcjRmcm9tRVBOU185
RXhlY1N0YXRlRWkKIF9fWk4zSlNDMTBJZGVudGlmaWVyNGZyb21FUE5TXzlFeGVjU3RhdGVFagog
X19aTjNKU0MxMElkZW50aWZpZXI4dG9VSW50MzJFUktOU183VVN0cmluZ0VSYgotX19aTjNKU0Mx
MEpTRnVuY3Rpb24xNGZpbmlzaENyZWF0aW9uRVBOU185RXhlY1N0YXRlRVBOU18xNEpTR2xvYmFs
T2JqZWN0RVBOU18xOEZ1bmN0aW9uRXhlY3V0YWJsZUVQTlNfMTRTY29wZUNoYWluTm9kZUUKLV9f
Wk4zSlNDMTBKU0Z1bmN0aW9uMTRmaW5pc2hDcmVhdGlvbkVQTlNfOUV4ZWNTdGF0ZUVQTlNfMTRK
U0dsb2JhbE9iamVjdEVpUktOU18xMElkZW50aWZpZXJFUE5TXzE0RXhlY3V0YWJsZUJhc2VFCitf
X1pOM0pTQzEwSlNGdW5jdGlvbjE0ZmluaXNoQ3JlYXRpb25FUE5TXzlFeGVjU3RhdGVFaVJLTlNf
MTBJZGVudGlmaWVyRVBOU18xNEV4ZWN1dGFibGVCYXNlRQogX19aTjNKU0MxMEpTRnVuY3Rpb240
bmFtZUVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDMTBKU0Z1bmN0aW9uNnNfaW5mb0UKIF9fWk4z
SlNDMTBKU0Z1bmN0aW9uQzFFUE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RFUE5T
XzlTdHJ1Y3R1cmVFCkBAIC0yMTgsOSArMjE3LDYgQEAgX19aTjNKU0MyM0Fic3RyYWN0U2FtcGxp
bmdDb3VudGVyNGR1bXBFdgogX19aTjNKU0MyM29iamVjdFByb3RvRnVuY1RvU3RyaW5nRVBOU185
RXhlY1N0YXRlRQogX19aTjNKU0MyM3NldFVwU3RhdGljRnVuY3Rpb25TbG90RVBOU185RXhlY1N0
YXRlRVBLTlNfOUhhc2hFbnRyeUVQTlNfOEpTT2JqZWN0RVJLTlNfMTBJZGVudGlmaWVyRVJOU18x
MlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDMjREeW5hbWljR2xvYmFsT2JqZWN0U2NvcGVDMUVSTlNf
MTJKU0dsb2JhbERhdGFFUE5TXzE0SlNHbG9iYWxPYmplY3RFCi1fX1pOM0pTQzI0SlNPYmplY3RX
aXRoR2xvYmFsT2JqZWN0MTRmaW5pc2hDcmVhdGlvbkVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzE0
SlNHbG9iYWxPYmplY3RFCi1fX1pOM0pTQzI0SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0QzJFUE5T
XzE0SlNHbG9iYWxPYmplY3RFUE5TXzlTdHJ1Y3R1cmVFCi1fX1pOM0pTQzI0SlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0QzJFUk5TXzEySlNHbG9iYWxEYXRhRVBOU185U3RydWN0dXJlRQogX19aTjNK
U0MyNGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvckVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDMjVl
dmFsdWF0ZUluR2xvYmFsQ2FsbEZyYW1lRVJLTlNfN1VTdHJpbmdFUk5TXzdKU1ZhbHVlRVBOU18x
NEpTR2xvYmFsT2JqZWN0RQogX19aTjNKU0MzNWNyZWF0ZUludGVycnVwdGVkRXhlY3V0aW9uRXhj
ZXB0aW9uRVBOU18xMkpTR2xvYmFsRGF0YUUKQEAgLTM0Myw3ICszMzksNyBAQCBfX1pOM0pTQzlT
dHJ1Y3R1cmUyOGFkZFByb3BlcnR5V2l0aG91dFRyYW5zaXRpb25FUk5TXzEySlNHbG9iYWxEYXRh
RVJLTlNfMTBJZGVudAogX19aTjNKU0M5U3RydWN0dXJlM2dldEVSTlNfMTJKU0dsb2JhbERhdGFF
UE4zV1RGMTBTdHJpbmdJbXBsRVJqUlBOU182SlNDZWxsRQogX19aTjNKU0M5U3RydWN0dXJlNDBh
ZGRQcm9wZXJ0eVRyYW5zaXRpb25Ub0V4aXN0aW5nU3RydWN0dXJlRVBTMF9SS05TXzEwSWRlbnRp
ZmllckVqUE5TXzZKU0NlbGxFUm0KIF9fWk4zSlNDOVN0cnVjdHVyZTZzX2luZm9FCi1fX1pOM0pT
QzlTdHJ1Y3R1cmVDMUVSTlNfMTJKU0dsb2JhbERhdGFFTlNfN0pTVmFsdWVFUktOU184VHlwZUlu
Zm9FalBLTlNfOUNsYXNzSW5mb0UKK19fWk4zSlNDOVN0cnVjdHVyZUMxRVJOU18xMkpTR2xvYmFs
RGF0YUVQTlNfMTRKU0dsb2JhbE9iamVjdEVOU183SlNWYWx1ZUVSS05TXzhUeXBlSW5mb0VqUEtO
U185Q2xhc3NJbmZvRQogX19aTjNKU0M5U3RydWN0dXJlRDFFdgogX19aTjNKU0M5Y29uc3RydWN0
RVBOU185RXhlY1N0YXRlRU5TXzdKU1ZhbHVlRU5TXzEzQ29uc3RydWN0VHlwZUVSS05TXzEzQ29u
c3RydWN0RGF0YUVSS05TXzdBcmdMaXN0RQogX19aTjNKU0NlcUVSS05TXzdVU3RyaW5nRVBLYwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5NTY5N2ZhMWE3YjQ2ZjhkOTVkMGIzZjFi
NTg1NTE4YzE5OTU1NGM3Li45ZGQ0MjhlYWM1YTFkOWUyM2QxMDBiNzNmZWMxOTIzNzg0YmE3ZGIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDE1LDggKzQxNSw2IEBACiAJCUE3
NjZCNDRGMEVFOERDRDEwMDk1MThDQSAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0I0OERCNTBFRTc0Q0ZDMDBE
Q0JEQjYgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NkM1MTc2MTE4Mjc0OEQwMDcxNUIwNSAvKiBKU0lu
dGVyZmFjZUpJVC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTc2QzUxNzQxMTgyNzQ4RDAwNzE1QjA1IC8qIEpTSW50ZXJmYWNlSklULmggKi87IH07CiAJ
CUE3NkY1NEEzMTNCMjhBQUIwMEVGMkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NkY1NEEyMTNCMjhBQUIwMEVG
MkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCAqLzsgfTsKLQkJQTc4M0EwRDExMUEzNkRDQTAwNTYz
RDIwIC8qIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4M0EwRDAxMUEzNkRDQTAwNTYzRDIwIC8qIEpTT2Jq
ZWN0V2l0aEdsb2JhbE9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCUE3ODNBMkFCMTFBNUJFODQwMDU2M0QyMCAvKiBKU09iamVjdFdpdGhH
bG9iYWxPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTc4M0EyQUExMUE1QkU4NDAwNTYzRDIwIC8qIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dC5jcHAgKi87IH07CiAJCUE3ODRBMjYxMTFEMTY2MjIwMDU3NzZBQyAvKiBBU1RCdWlsZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0E3RUU3NDEx
Qjk4QjhEMDA2NUExNEYgLyogQVNUQnVpbGRlci5oICovOyB9OwogCQlBNzg0QTI2MjExRDE2NjIy
MDA1Nzc2QUMgLyogSlNQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTdBN0VFNzUxMUI5OEI4RDAwNjVBMTRGIC8qIEpTUGFyc2VyLmNwcCAq
LzsgfTsKIAkJQTc4NEEyNjMxMUQxNjYyMjAwNTc3NkFDIC8qIEpTUGFyc2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0E3RUU3NjExQjk4QjhEMDA2
NUExNEYgLyogSlNQYXJzZXIuaCAqLzsgfTsKQEAgLTExODEsOCArMTE3OSw2IEBACiAJCUE3NTcw
NkREMTE4QTJCQ0YwMDU3Rjg4RiAvKiBKSVRBcml0aG1ldGljMzJfNjQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSklUQXJpdGhtZXRpYzMyXzY0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc2QzUxNzQxMTgyNzQ4RDAwNzE1QjA1IC8qIEpTSW50
ZXJmYWNlSklULmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSW50ZXJmYWNl
SklULmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NkY1NEEyMTNCMjhBQUIwMEVG
MkJDRSAvKiBKSVRXcml0ZUJhcnJpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSklUV3JpdGVCYXJyaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE3ODNB
MEQwMTFBMzZEQ0EwMDU2M0QyMCAvKiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE3ODNBMkFBMTFBNUJFODQwMDU2M0QyMCAvKiBK
U09iamVjdFdpdGhHbG9iYWxPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTc5MUVGMjYwRjExRTA3OTAwQUUxRjY4IC8qIEpTQnl0ZUFycmF5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQnl0ZUFycmF5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE3OTFFRjI3MEYxMUUwNzkwMEFFMUY2OCAvKiBKU0J5dGVBcnJh
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0J5dGVBcnJheS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3OUVEQjA4MTE1MzFDRDYwMDE5RTkx
MiAvKiBKU09iamVjdFJlZlByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNPYmplY3RSZWZQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
MDM0LDggKzIwMzAsNiBAQAogCQkJCUE3MjcwMDc3MERBQzYwNTYwMEU1NDhENyAvKiBKU05vdEFu
T2JqZWN0LmggKi8sCiAJCQkJQkMyMkEzOTgwRTE2RTE0ODAwQUYyMUM4IC8qIEpTT2JqZWN0LmNw
cCAqLywKIAkJCQlCQzIyQTM5OTBFMTZFMTQ4MDBBRjIxQzggLyogSlNPYmplY3QuaCAqLywKLQkJ
CQlBNzgzQTJBQTExQTVCRTg0MDA1NjNEMjAgLyogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNw
cCAqLywKLQkJCQlBNzgzQTBEMDExQTM2RENBMDA1NjNEMjAgLyogSlNPYmplY3RXaXRoR2xvYmFs
T2JqZWN0LmggKi8sCiAJCQkJQTdGOTkzNUUwRkQ3MzI1MTAwQTBCMkQwIC8qIEpTT05PYmplY3Qu
Y3BwICovLAogCQkJCUE3Rjk5MzVEMEZENzMyNTEwMEEwQjJEMCAvKiBKU09OT2JqZWN0LmggKi8s
CiAJCQkJQTcyN0ZGNjYwREEzMDUzQjAwRTU0OEQ3IC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3Iu
Y3BwICovLApAQCAtMjUxOCw3ICsyNTEyLDYgQEAKIAkJCQlCQzE4QzQyNDBFMTZGNUNEMDBCMzQ0
NjAgLyogSlNPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDI1MEUxNkY1Q0QwMEIz
NDQ2MCAvKiBKU09iamVjdFJlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcyODBBMjgxMTU1N0Uz
MDAwRDU2OTU3IC8qIEpTT2JqZWN0UmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTc4
M0EwRDExMUEzNkRDQTAwNTYzRDIwIC8qIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTdGOTkzNUYwRkQ3MzI1MTAwQTBCMkQwIC8qIEpTT05PYmplY3QuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDODdDREI5MTA3MTJBRDQwMDA2MTRDRiAvKiBKU09OT2JqZWN0
Lmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc4NEEyNjMxMUQxNjYyMjAwNTc3NkFDIC8qIEpT
UGFyc2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTMxNDMsNyArMzEzNiw2IEBACiAJCQkJQTcyNzAw
OTAwREFDNkJCQzAwRTU0OEQ3IC8qIEpTTm90QW5PYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMTQ3RjM5RDQxMDdFQzM3NjAwNDI3QTQ4IC8qIEpTT2JqZWN0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTE0ODJCN0U0MEE0MzA3NjAwMDUxN0NGQyAvKiBKU09iamVjdFJlZi5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQlBNzgzQTJBQjExQTVCRTg0MDA1NjNEMjAgLyogSlNPYmplY3RXaXRoR2xv
YmFsT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3Rjk5MzYwMEZENzMyNTEwMEEwQjJE
MCAvKiBKU09OT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3ODRBMjYyMTFEMTY2MjIw
MDU3NzZBQyAvKiBKU1BhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NUY2RTY5NTBFNUI1
Rjk3MDA5MUU4NjAgLyogSlNQcm9maWxlclByaXZhdGUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKaW5kZXggODA4YTA2YjM3NmZi
ZWI4ZmIwZTA5NDQxOTk1NGJhZWMwMjU4MjNjZS4uNmMwZDZhN2I5Y2E3MjQ4ZDQxNjg4MTI2YTAw
YTkyNmQzYzRhODE3NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NvZGVCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suaApAQCAtMTU2LDcgKzE1Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKSVRXcml0
ZUJhcnJpZXI8U3RydWN0dXJlPiBjYWNoZWRQcm90b3R5cGVTdHJ1Y3R1cmU7CiAgICAgICAgIC8v
IFdlJ2QgbGlrZSB0aGlzIHRvIGFjdHVhbGx5IGJlIEpTRnVuY3Rpb24sIGJ1dCBJbnRlcm5hbEZ1
bmN0aW9uIGFuZCBKU0Z1bmN0aW9uCiAgICAgICAgIC8vIGRvbid0IGhhdmUgYSBjb21tb24gcGFy
ZW50IGNsYXNzIGFuZCB3ZSBhbGxvdyBzcGVjaWFsaXNhdGlvbiBvbiBib3RoCi0gICAgICAgIEpJ
VFdyaXRlQmFycmllcjxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+IGNhY2hlZEZ1bmN0aW9uOwor
ICAgICAgICBKSVRXcml0ZUJhcnJpZXI8SlNPYmplY3Q+IGNhY2hlZEZ1bmN0aW9uOwogICAgICAg
ICBKSVRXcml0ZUJhcnJpZXI8SlNPYmplY3Q+IGNhY2hlZFByb3RvdHlwZTsKICAgICAgICAgYm9v
bCBzZWVuOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1JlcGF0Y2guY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdSZXBhdGNoLmNwcApp
bmRleCA4OTUyZTM3MmE3YjZkOWM3YzMyN2QwMmZhY2U5MzQ5ODM3OWU1Y2NlLi40MWRhZmNhZjQ0
MjY4ZTc5ZmY4YjUwY2U2ZmY2MzNkNTk0YjIxNDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1JlcGF0Y2guY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHUmVwYXRjaC5jcHAKQEAgLTI0NSw3ICsyNDUsNyBAQCB2b2lkIGRmZ1JlcGF0Y2hHZXRC
eUlEKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IElkZW50aWZpZXIm
IHBybwogICAgICAgICBkZmdSZXBhdGNoQ2FsbChleGVjLT5jb2RlQmxvY2soKSwgc3R1YkluZm8u
Y2FsbFJldHVybkxvY2F0aW9uLCBvcGVyYXRpb25HZXRCeUlkKTsKIH0KIAotc3RhdGljIHZvaWQg
ZGZnUmVwYXRjaEdldE1ldGhvZEZhc3QoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBDb2RlQmxv
Y2sqIGNvZGVCbG9jaywgTWV0aG9kQ2FsbExpbmtJbmZvJiBtZXRob2RJbmZvLCBKU09iamVjdFdp
dGhHbG9iYWxPYmplY3QqIGNhbGxlZSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTT2JqZWN0KiBz
bG90QmFzZU9iamVjdCkKK3N0YXRpYyB2b2lkIGRmZ1JlcGF0Y2hHZXRNZXRob2RGYXN0KEpTR2xv
YmFsRGF0YSogZ2xvYmFsRGF0YSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIE1ldGhvZENhbGxMaW5r
SW5mbyYgbWV0aG9kSW5mbywgSlNPYmplY3QqIGNhbGxlZSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEpTT2JqZWN0KiBzbG90QmFzZU9iamVjdCkKIHsKICAgICBTY3JpcHRFeGVjdXRhYmxlKiBvd25l
ciA9IGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCk7CiAgICAgCkBAIC0yNzQsNyArMjc0LDcg
QEAgc3RhdGljIGJvb2wgdHJ5Q2FjaGVHZXRNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IGJhc2VWYWx1ZSwgY29uc3QgSWRlbnRpZmkKICAgICAgICAgJiYgKHNsb3RCYXNlT2JqZWN0ID0g
YXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSktPmdldFByb3BlcnR5U3BlY2lmaWNWYWx1ZShleGVj
LCBwcm9wZXJ0eU5hbWUsIHNwZWNpZmljKQogICAgICAgICAmJiBzcGVjaWZpYykgewogICAgICAg
ICAKLSAgICAgICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KiBjYWxsZWUgPSAoSlNPYmplY3RX
aXRoR2xvYmFsT2JqZWN0KilzcGVjaWZpYzsKKyAgICAgICAgSlNPYmplY3QqIGNhbGxlZSA9IGFz
T2JqZWN0KHNwZWNpZmljKTsKICAgICAgICAgCiAgICAgICAgIC8vIFNpbmNlIHdlJ3JlIGFjY2Vz
c2luZyBhIHByb3RvdHlwZSBpbiBhIGxvb3AsIGl0J3MgYSBnb29kIGJldCB0aGF0IGl0CiAgICAg
ICAgIC8vIHNob3VsZCBub3QgYmUgdHJlYXRlZCBhcyBhIGRpY3Rpb25hcnkuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuaAppbmRleCA4ZTkxOTk2Yjg3YmViNWQ3MmUwZTI4NzI0OGMwZGMxODc5NzM2M2Ri
Li4zNzE5Y2RiYzI1NWMyYWUwOTE4ZTVhN2JlMDQ4YmYyY2Q3MzhiOTViIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmgKQEAgLTIzOSw3ICsyMzksNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAg
ICBzdGF0aWMgdm9pZCBwYXRjaEdldEJ5SWRTZWxmKENvZGVCbG9jayogY29kZWJsb2NrLCBTdHJ1
Y3R1cmVTdHViSW5mbyosIFN0cnVjdHVyZSosIHNpemVfdCBjYWNoZWRPZmZzZXQsIFJldHVybkFk
ZHJlc3NQdHIgcmV0dXJuQWRkcmVzcyk7CiAgICAgICAgIHN0YXRpYyB2b2lkIHBhdGNoUHV0QnlJ
ZFJlcGxhY2UoQ29kZUJsb2NrKiBjb2RlYmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvKiwgU3RydWN0
dXJlKiwgc2l6ZV90IGNhY2hlZE9mZnNldCwgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNz
LCBib29sIGRpcmVjdCk7Ci0gICAgICAgIHN0YXRpYyB2b2lkIHBhdGNoTWV0aG9kQ2FsbFByb3Rv
KEpTR2xvYmFsRGF0YSYsIENvZGVCbG9jayogY29kZWJsb2NrLCBNZXRob2RDYWxsTGlua0luZm8m
LCBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBKU09iamVjdCosIFJldHVy
bkFkZHJlc3NQdHIpOworICAgICAgICBzdGF0aWMgdm9pZCBwYXRjaE1ldGhvZENhbGxQcm90byhK
U0dsb2JhbERhdGEmLCBDb2RlQmxvY2sqIGNvZGVibG9jaywgTWV0aG9kQ2FsbExpbmtJbmZvJiwg
SlNPYmplY3QqLCBTdHJ1Y3R1cmUqLCBKU09iamVjdCosIFJldHVybkFkZHJlc3NQdHIpOwogCiAg
ICAgICAgIHN0YXRpYyB2b2lkIGNvbXBpbGVQYXRjaEdldEFycmF5TGVuZ3RoKEpTR2xvYmFsRGF0
YSogZ2xvYmFsRGF0YSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFJldHVybkFkZHJlc3NQdHIgcmV0
dXJuQWRkcmVzcykKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRJbmxpbmVNZXRob2RzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElu
bGluZU1ldGhvZHMuaAppbmRleCAxMWNiMDBlZWI4NzI3MTc2MWYyOTkwNGY3ZjM1MGJmZjVkMTYx
MTBiLi43N2VkYzJlYzgwM2YyNGJmNWRhYjM5OWZmODJhNTY2YjY3ZGJlNDVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaApAQCAtNDE4LDE0ICs0MTgs
NiBAQCBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRBbGxvY2F0ZUpTRnVuY3Rpb24oRnVuY3Rpb25FeGVj
dXRhYmxlKiBleGVjdXRhYmxlLCBSZWdpc3RlcgogICAgIC8vIHN0b3JlIHRoZSBmdW5jdGlvbidz
IGV4ZWN1dGFibGUgbWVtYmVyCiAgICAgc3RvcmVQdHIoVHJ1c3RlZEltbVB0cihleGVjdXRhYmxl
KSwgQWRkcmVzcyhyZXN1bHQsIEpTRnVuY3Rpb246Om9mZnNldE9mRXhlY3V0YWJsZSgpKSk7CiAK
LSAgICAKLSAgICAvLyBzdG9yZSB0aGUgZnVuY3Rpb24ncyBnbG9iYWwgb2JqZWN0Ci0gICAgaW50
IGdsb2JhbE9iamVjdE9mZnNldCA9IHNpemVvZihKU1ZhbHVlKSAqIEpTRnVuY3Rpb246Okdsb2Jh
bE9iamVjdFNsb3Q7Ci0gICAgc3RvcmVQdHIoVHJ1c3RlZEltbVB0cihtX2NvZGVCbG9jay0+Z2xv
YmFsT2JqZWN0KCkpLCBBZGRyZXNzKHJlZ1QxLCBnbG9iYWxPYmplY3RPZmZzZXQgKyBPQkpFQ1Rf
T0ZGU0VUT0YoSlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9hZCkpKTsKLSNpZiBVU0UoSlNWQUxVRTMy
XzY0KQotICAgIHN0b3JlMzIoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBBZGRyZXNz
KHJlZ1QxLCBnbG9iYWxPYmplY3RPZmZzZXQgKyBPQkpFQ1RfT0ZGU0VUT0YoSlNWYWx1ZSwgdS5h
c0JpdHMudGFnKSkpOwotI2VuZGlmCi0KICAgICAvLyBzdG9yZSB0aGUgZnVuY3Rpb24ncyBuYW1l
CiAgICAgQVNTRVJUKGV4ZWN1dGFibGUtPm5hbWVWYWx1ZSgpKTsKICAgICBpbnQgZnVuY3Rpb25O
YW1lT2Zmc2V0ID0gc2l6ZW9mKEpTVmFsdWUpICogbV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdCgp
LT5mdW5jdGlvbk5hbWVPZmZzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRQcm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXggMTM0ZmFhMTBmZjIyZTJlMjRlZjVhM2E1ZjFlNTU0
OTJmNjQ0YWFkYi4uNjJjZjkyZWY4OWI4NTRiYTY0MWI5YWEzNWFiM2Y3ZWEyMTZjNDM0MCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKQEAg
LTEwNDcsNyArMTA0Nyw3IEBAIHZvaWQgSklUOjp0ZXN0UHJvdG90eXBlKEpTVmFsdWUgcHJvdG90
eXBlLCBKdW1wTGlzdCYgZmFpbHVyZUNhc2VzKQogICAgIGZhaWx1cmVDYXNlcy5hcHBlbmQoYnJh
bmNoUHRyKE5vdEVxdWFsLCBBZGRyZXNzKHJlZ1QzLCBKU0NlbGw6OnN0cnVjdHVyZU9mZnNldCgp
KSwgVHJ1c3RlZEltbVB0cihwcm90b3R5cGUuYXNDZWxsKCktPnN0cnVjdHVyZSgpKSkpOwogfQog
Ci12b2lkIEpJVDo6cGF0Y2hNZXRob2RDYWxsUHJvdG8oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgTWV0aG9kQ2FsbExpbmtJbmZvJiBtZXRob2RDYWxsTGlu
a0luZm8sIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCogY2FsbGVlLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgSlNPYmplY3QqIHByb3RvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpCit2
b2lkIEpJVDo6cGF0Y2hNZXRob2RDYWxsUHJvdG8oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBD
b2RlQmxvY2sqIGNvZGVCbG9jaywgTWV0aG9kQ2FsbExpbmtJbmZvJiBtZXRob2RDYWxsTGlua0lu
Zm8sIEpTT2JqZWN0KiBjYWxsZWUsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU09iamVjdCogcHJv
dG8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcykKIHsKICAgICBSZXBhdGNoQnVmZmVy
IHJlcGF0Y2hCdWZmZXIoY29kZUJsb2NrKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRTdHVicy5jcHAKaW5kZXggYmUxZGMwZjEzY2Q2MDFmMDI1N2IyMGY4NTRlMmVmNGUwNjZjN2Iy
Zi4uZWMyODUyMjJjOTg2OGYyM2Y3OTQzNmFiYjUzNWFhZGUwODE2NDljZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKQEAgLTE1MjYsNyArMTUyNiw3IEBAIERFRklORV9T
VFVCX0ZVTkNUSU9OKEVuY29kZWRKU1ZhbHVlLCBvcF9nZXRfYnlfaWRfbWV0aG9kX2NoZWNrKQog
ICAgICAgICAmJiBzcGVjaWZpYwogICAgICAgICApIHsKIAotICAgICAgICBKU09iamVjdFdpdGhH
bG9iYWxPYmplY3QqIGNhbGxlZSA9IChKU09iamVjdFdpdGhHbG9iYWxPYmplY3QqKXNwZWNpZmlj
OworICAgICAgICBKU09iamVjdCogY2FsbGVlID0gYXNPYmplY3Qoc3BlY2lmaWMpOwogCiAgICAg
ICAgIC8vIFNpbmNlIHdlJ3JlIGFjY2Vzc2luZyBhIHByb3RvdHlwZSBpbiBhIGxvb3AsIGl0J3Mg
YSBnb29kIGJldCB0aGF0IGl0CiAgICAgICAgIC8vIHNob3VsZCBub3QgYmUgdHJlYXRlZCBhcyBh
IGRpY3Rpb25hcnkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90
b3R5cGUuY3BwCmluZGV4IGRkYTI5NDE2Mzg0MWNkZWRjNTRmNzY5NTdkNGFjODRlMzBmYTdlMjEu
LjQwMzQxNWI1YWI4ZTg1NDJjMzNjYTZiMDYzN2E2ZTZkYTcxZTdhZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCkBAIC0yNyw2ICsyNyw3
IEBACiAjaW5jbHVkZSAiRGF0ZUNvbnZlcnNpb24uaCIKICNpbmNsdWRlICJEYXRlSW5zdGFuY2Uu
aCIKICNpbmNsdWRlICJFcnJvci5oIgorI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5j
bHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJKU1N0cmluZ0J1aWxkZXIuaCIKICNpbmNsdWRl
ICJMb29rdXAuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGVybmFsRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJu
YWxGdW5jdGlvbi5jcHAKaW5kZXggMDdjMGY3ZjViZjY1YTNlNzU2YjUxYzI0MDM3Y2FjYzMzYzQy
ZTYyMi4uMTBhYWE2MGVlN2M4ZWMzNGY2ZjQwMzg5MjRkMjgwMzgxYTlmMzBiZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAKQEAg
LTM0LDIyICszNCwyMiBAQCB2b2lkIEludGVybmFsRnVuY3Rpb246OnZ0YWJsZUFuY2hvcigpIHt9
CiAKIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSW50ZXJuYWxGdW5jdGlvbik7CiAKLWNvbnN0
IENsYXNzSW5mbyBJbnRlcm5hbEZ1bmN0aW9uOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZKU09i
amVjdFdpdGhHbG9iYWxPYmplY3Q6OnNfaW5mbywgMCwgMCB9OworY29uc3QgQ2xhc3NJbmZvIElu
dGVybmFsRnVuY3Rpb246OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkpTTm9uRmluYWxPYmplY3Q6
OnNfaW5mbywgMCwgMCB9OwogCiBJbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKFZQ
dHJTdGVhbGluZ0hhY2tUeXBlKQotICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KFZQdHJT
dGVhbGluZ0hhY2spCisgICAgOiBKU05vbkZpbmFsT2JqZWN0KFZQdHJTdGVhbGluZ0hhY2spCiB7
CiB9CiAKLUludGVybmFsRnVuY3Rpb246OkludGVybmFsRnVuY3Rpb24oSlNHbG9iYWxEYXRhKiBn
bG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKLSAgICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9i
amVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKK0ludGVybmFsRnVuY3Rpb246OkludGVybmFs
RnVuY3Rpb24oSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKQorICAgIDogSlNOb25GaW5h
bE9iamVjdCgqZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogewotICAgIGZpbmlzaENyZWF0aW9uKCpn
bG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIG5hbWUpOworICAgIGZpbmlzaENyZWF0aW9uKCpnbG9i
YWxEYXRhLCBuYW1lKTsKIH0KIAotdm9pZCBJbnRlcm5hbEZ1bmN0aW9uOjpmaW5pc2hDcmVhdGlv
bihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IGNvbnN0IElkZW50aWZpZXImIG5hbWUpCit2b2lkIEludGVybmFsRnVuY3Rpb246OmZpbmlzaENy
ZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkK
IHsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QpOwor
ICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIEFTU0VSVChpbmhlcml0
cygmc19pbmZvKSk7CiAgICAgcHV0RGlyZWN0KGdsb2JhbERhdGEsIGdsb2JhbERhdGEucHJvcGVy
dHlOYW1lcy0+bmFtZSwganNTdHJpbmcoJmdsb2JhbERhdGEsIG5hbWUuaXNOdWxsKCkgPyAiIiA6
IG5hbWUudXN0cmluZygpKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlv
bi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCmlu
ZGV4IDc0NjFlNjZjY2I1NDA1YjcwZTNiNzU2YzU1OTBiMTcwMmViNDY4MjkuLmUwNWJiMTM0OTkw
ZTczYmEzYzI1NmM3MjlkYjM4MTU0YmVhYmJkNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKQEAgLTI0LDE2ICsyNCwxNiBAQAogI2lm
bmRlZiBJbnRlcm5hbEZ1bmN0aW9uX2gKICNkZWZpbmUgSW50ZXJuYWxGdW5jdGlvbl9oCiAKLSNp
bmNsdWRlICJKU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaCIKKyNpbmNsdWRlICJKU09iamVjdC5o
IgogI2luY2x1ZGUgIklkZW50aWZpZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFz
cyBGdW5jdGlvblByb3RvdHlwZTsKIAotICAgIGNsYXNzIEludGVybmFsRnVuY3Rpb24gOiBwdWJs
aWMgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IHsKKyAgICBjbGFzcyBJbnRlcm5hbEZ1bmN0aW9u
IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHB1YmxpYzoKLSAgICAgICAgdHlwZWRl
ZiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QgQmFzZTsKKyAgICAgICAgdHlwZWRlZiBKU05vbkZp
bmFsT2JqZWN0IEJhc2U7CiAKICAgICAgICAgc3RhdGljIEpTX0VYUE9SVERBVEEgY29uc3QgQ2xh
c3NJbmZvIHNfaW5mbzsKIApAQCAtNTQsNyArNTQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
ICAgICBJbnRlcm5hbEZ1bmN0aW9uKEpTR2xvYmFsRGF0YSosIEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlKiwgY29uc3QgSWRlbnRpZmllciYpOwogCi0gICAgICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oSlNHbG9iYWxEYXRhJiwgSlNHbG9iYWxPYmplY3QqLCBjb25zdCBJZGVudGlmaWVyJiBuYW1l
KTsKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBjb25zdCBJZGVu
dGlmaWVyJiBuYW1lKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUg
Z2V0Q2FsbERhdGEoQ2FsbERhdGEmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTRnVuY3Rpb24uY3BwCmluZGV4IGRhZjRjYTk1ODI5N2YzMTg3YzdhNmNjY2NmNDM5NjA1
ODBjOGVjZGQuLmRmZTljMjlmMzVmNDYzMGFiYmQ5ZDA3MzUyNDY5MmJhNWE4ZGQ1NDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC02MiwzMSAr
NjIsMzEgQEAgSlNGdW5jdGlvbjo6SlNGdW5jdGlvbihWUHRyU3RlYWxpbmdIYWNrVHlwZSkKIH0K
IAogSlNGdW5jdGlvbjo6SlNGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZShnbG9iYWxP
YmplY3QsIHN0cnVjdHVyZSkKKyAgICA6IEJhc2UoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1
cmUpCiAgICAgLCBtX2V4ZWN1dGFibGUoKQogICAgICwgbV9zY29wZUNoYWluKGV4ZWMtPmdsb2Jh
bERhdGEoKSwgdGhpcywgZ2xvYmFsT2JqZWN0LT5nbG9iYWxTY29wZUNoYWluKCkpCiB7CiB9CiAK
IEpTRnVuY3Rpb246OkpTRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBGdW5jdGlvbkV4ZWN1dGFi
bGUqIGV4ZWN1dGFibGUsIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluTm9kZSkKLSAgICA6IEJh
c2Uoc2NvcGVDaGFpbk5vZGUtPmdsb2JhbE9iamVjdC5nZXQoKSwgc2NvcGVDaGFpbk5vZGUtPmds
b2JhbE9iamVjdC0+ZnVuY3Rpb25TdHJ1Y3R1cmUoKSkKKyAgICA6IEJhc2UoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBzY29wZUNoYWluTm9kZS0+Z2xvYmFsT2JqZWN0LT5mdW5jdGlvblN0cnVjdHVyZSgp
KQogICAgICwgbV9leGVjdXRhYmxlKGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgZXhlY3V0YWJs
ZSkKICAgICAsIG1fc2NvcGVDaGFpbihleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIHNjb3BlQ2hh
aW5Ob2RlKQogewogfQogCi12b2lkIEpTRnVuY3Rpb246OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50IGxlbmd0aCwgY29uc3Qg
SWRlbnRpZmllciYgbmFtZSwgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUpCit2b2lkIEpTRnVu
Y3Rpb246OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgaW50IGxlbmd0aCwgY29uc3Qg
SWRlbnRpZmllciYgbmFtZSwgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUpCiB7Ci0gICAgQmFz
ZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVj
dCk7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKICAgICBB
U1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIG1fZXhlY3V0YWJsZS5zZXQoZXhlYy0+Z2xv
YmFsRGF0YSgpLCB0aGlzLCBleGVjdXRhYmxlKTsKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBleGVjLT5nbG9iYWxEYXRhKCkucHJvcGVydHlOYW1lcy0+bmFtZSwganNTdHJpbmco
ZXhlYywgbmFtZS5pc051bGwoKSA/ICIiIDogbmFtZS51c3RyaW5nKCkpLCBEb250RGVsZXRlIHwg
UmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwg
ZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIobGVuZ3RoKSwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogfQogCi12b2lkIEpTRnVuY3Rpb246OmZpbmlzaENy
ZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRnVu
Y3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbk5v
ZGUpCit2b2lkIEpTRnVuY3Rpb246OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgRnVu
Y3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbk5v
ZGUpCiB7Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRh
KCksIGdsb2JhbE9iamVjdCk7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFs
RGF0YSgpKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHNldFN0cnVjdHVy
ZShleGVjLT5nbG9iYWxEYXRhKCksIHNjb3BlQ2hhaW5Ob2RlLT5nbG9iYWxPYmplY3QtPm5hbWVk
RnVuY3Rpb25TdHJ1Y3R1cmUoKSk7CiAgICAgcHV0RGlyZWN0T2Zmc2V0KGV4ZWMtPmdsb2JhbERh
dGEoKSwgc2NvcGVDaGFpbk5vZGUtPmdsb2JhbE9iamVjdC0+ZnVuY3Rpb25OYW1lT2Zmc2V0KCks
IGV4ZWN1dGFibGUtPm5hbWVWYWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTRnVuY3Rpb24uaAppbmRleCAxYzM2ODE2YzE3ZDEwZWY3MTlmMzBhZTlmMGZjNjhmN2FkNjMw
MDgzLi4xZGIzYzgwZGI2YzQwNDJjMTJhYmFkMjczMjViYWNlNWFjZjE5YWZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCkBAIC0yNCw3ICsyNCw3IEBACiAj
aWZuZGVmIEpTRnVuY3Rpb25faAogI2RlZmluZSBKU0Z1bmN0aW9uX2gKIAotI2luY2x1ZGUgIkpT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAKIG5hbWVz
cGFjZSBKU0MgewogCkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqKTsKIAotICAgIGNsYXNzIEpTRnVuY3Rpb24gOiBwdWJsaWMgSlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0IHsKKyAgICBjbGFzcyBKU0Z1bmN0aW9uIDogcHVibGljIEpTTm9uRmluYWxP
YmplY3QgewogICAgICAgICBmcmllbmQgY2xhc3MgSklUOwogICAgICAgICBmcmllbmQgY2xhc3Mg
REZHOjpKSVRDb2RlR2VuZXJhdG9yOwogICAgICAgICBmcmllbmQgY2xhc3MgSlNHbG9iYWxEYXRh
OwpAQCAtNTAsMjggKzUwLDM1IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKU0Z1bmN0aW9u
KEV4ZWNTdGF0ZSosIEZ1bmN0aW9uRXhlY3V0YWJsZSosIFNjb3BlQ2hhaW5Ob2RlKik7CiAgICAg
ICAgIAogICAgIHB1YmxpYzoKLSAgICAgICAgdHlwZWRlZiBKU09iamVjdFdpdGhHbG9iYWxPYmpl
Y3QgQmFzZTsKKyAgICAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAKICAgICAg
ICAgc3RhdGljIEpTRnVuY3Rpb24qIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQgbGVuZ3RoLCBjb25z
dCBJZGVudGlmaWVyJiBuYW1lLCBOYXRpdmVGdW5jdGlvbiBuYXRpdmVGdW5jdGlvbikKICAgICAg
ICAgeworICAgICAgICAgICAgQVNTRVJUKHN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCkpOworICAg
ICAgICAgICAgQVNTRVJUKHN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCkgPT0gZ2xvYmFsT2JqZWN0
KTsKKyAgICAgICAgICAgIAogICAgICAgICAgICAgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUg
PSAoRXhlY3V0YWJsZUJhc2UqKWV4ZWMtPmdsb2JhbERhdGEoKS5nZXRIb3N0RnVuY3Rpb24obmF0
aXZlRnVuY3Rpb24pOwogICAgICAgICAgICAgSlNGdW5jdGlvbiogZnVuY3Rpb24gPSBuZXcgKGFs
bG9jYXRlQ2VsbDxKU0Z1bmN0aW9uPigqZXhlYy0+aGVhcCgpKSkgSlNGdW5jdGlvbihleGVjLCBn
bG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7CiAgICAgICAgICAgICAvLyBDYW4ndCBkbyB0aGlzIGR1
cmluZyBpbml0aWFsaXphdGlvbiBiZWNhdXNlIGdldEhvc3RGdW5jdGlvbiBtaWdodCBkbyBhIEdD
IGFsbG9jYXRpb24uCi0gICAgICAgICAgICBmdW5jdGlvbi0+ZmluaXNoQ3JlYXRpb24oZXhlYywg
Z2xvYmFsT2JqZWN0LCBsZW5ndGgsIG5hbWUsIGV4ZWN1dGFibGUpOworICAgICAgICAgICAgZnVu
Y3Rpb24tPmZpbmlzaENyZWF0aW9uKGV4ZWMsIGxlbmd0aCwgbmFtZSwgZXhlY3V0YWJsZSk7CiAg
ICAgICAgICAgICByZXR1cm4gZnVuY3Rpb247CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMg
SlNGdW5jdGlvbiogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZp
ZXImIG5hbWUsIE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUpCiAgICAgICAgIHsK
KyAgICAgICAgICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmdsb2JhbE9iamVjdCgpKTsKKyAgICAgICAg
ICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmdsb2JhbE9iamVjdCgpID09IGdsb2JhbE9iamVjdCk7CisK
ICAgICAgICAgICAgIEpTRnVuY3Rpb24qIGZ1bmN0aW9uID0gbmV3IChhbGxvY2F0ZUNlbGw8SlNG
dW5jdGlvbj4oKmV4ZWMtPmhlYXAoKSkpIEpTRnVuY3Rpb24oZXhlYywgZ2xvYmFsT2JqZWN0LCBz
dHJ1Y3R1cmUpOwotICAgICAgICAgICAgZnVuY3Rpb24tPmZpbmlzaENyZWF0aW9uKGV4ZWMsIGds
b2JhbE9iamVjdCwgbGVuZ3RoLCBuYW1lLCAoRXhlY3V0YWJsZUJhc2UqKW5hdGl2ZUV4ZWN1dGFi
bGUpOworICAgICAgICAgICAgZnVuY3Rpb24tPmZpbmlzaENyZWF0aW9uKGV4ZWMsIGxlbmd0aCwg
bmFtZSwgKEV4ZWN1dGFibGVCYXNlKiluYXRpdmVFeGVjdXRhYmxlKTsKICAgICAgICAgICAgIHJl
dHVybiBmdW5jdGlvbjsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBKU0Z1bmN0aW9uKiBj
cmVhdGUoRXhlY1N0YXRlKiBleGVjLCBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIFNj
b3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluKQogICAgICAgICB7CiAgICAgICAgICAgICBKU0Z1bmN0
aW9uKiBmdW5jdGlvbiA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTRnVuY3Rpb24+KCpleGVjLT5oZWFw
KCkpKSBKU0Z1bmN0aW9uKGV4ZWMsIGV4ZWN1dGFibGUsIHNjb3BlQ2hhaW4pOwotICAgICAgICAg
ICAgZnVuY3Rpb24tPmZpbmlzaENyZWF0aW9uKGV4ZWMsIHNjb3BlQ2hhaW4tPmdsb2JhbE9iamVj
dC5nZXQoKSwgZXhlY3V0YWJsZSwgc2NvcGVDaGFpbik7CisgICAgICAgICAgICBBU1NFUlQoZnVu
Y3Rpb24tPnN0cnVjdHVyZSgpLT5nbG9iYWxPYmplY3QoKSk7CisgICAgICAgICAgICBmdW5jdGlv
bi0+ZmluaXNoQ3JlYXRpb24oZXhlYywgZXhlY3V0YWJsZSwgc2NvcGVDaGFpbik7CiAgICAgICAg
ICAgICByZXR1cm4gZnVuY3Rpb247CiAgICAgICAgIH0KICAgICAgICAgCkBAIC0xMTAsNyArMTE3
LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0
IENsYXNzSW5mbyBzX2luZm87CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIAotICAgICAgICB7IAorICAgICAgICB7CisgICAgICAg
ICAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6
OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyAK
ICAgICAgICAgfQogCkBAIC0xMzIsOCArMTQwLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHJv
dGVjdGVkOgogICAgICAgICBjb25zdCBzdGF0aWMgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBPdmVy
cmlkZXNWaXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEpTT2JqZWN0
OjpTdHJ1Y3R1cmVGbGFnczsKIAotICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0
ZSosIEpTR2xvYmFsT2JqZWN0KiwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwg
RXhlY3V0YWJsZUJhc2UqKTsKLSAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUq
LCBKU0dsb2JhbE9iamVjdCosIEZ1bmN0aW9uRXhlY3V0YWJsZSosIFNjb3BlQ2hhaW5Ob2RlKik7
CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgaW50IGxlbmd0aCwgY29u
c3QgSWRlbnRpZmllciYgbmFtZSwgRXhlY3V0YWJsZUJhc2UqKTsKKyAgICAgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihFeGVjU3RhdGUqLCBGdW5jdGlvbkV4ZWN1dGFibGUqLCBTY29wZUNoYWluTm9k
ZSopOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZXhwbGljaXQgSlNGdW5jdGlvbihWUHRyU3Rl
YWxpbmdIYWNrVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHAKaW5kZXggMjliY2E4MWI4ZWI5ZGM2N2Y4MzMxNjcwOTc1NzViY2EzZGE0
MDJjYS4uM2RkZWEyMzQwOTZmNDgxYjMzOGY0ZWUxYjAxMWQ3MWNiMTY5ZTFjYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMjAz
LDcgKzIwMyw3IEBAIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnJlc2V0KEpTVmFsdWUgcHJvdG90eXBl
KQogICAgIG1fY2FsbGJhY2tGdW5jdGlvblN0cnVjdHVyZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgp
LCB0aGlzLCBKU0NhbGxiYWNrRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxE
YXRhKCksIHRoaXMsIG1fZnVuY3Rpb25Qcm90b3R5cGUuZ2V0KCkpKTsKICAgICBtX2FyZ3VtZW50
c1N0cnVjdHVyZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBBcmd1bWVudHM6OmNyZWF0
ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdl
dCgpKSk7CiAgICAgbV9jYWxsYmFja0NvbnN0cnVjdG9yU3RydWN0dXJlLnNldChleGVjLT5nbG9i
YWxEYXRhKCksIHRoaXMsIEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4
ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKTsKLSAgICBt
X2NhbGxiYWNrT2JqZWN0U3RydWN0dXJlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIEpT
Q2FsbGJhY2tPYmplY3Q8SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Pjo6Y3JlYXRlU3RydWN0dXJl
KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKTsKKyAg
ICBtX2NhbGxiYWNrT2JqZWN0U3RydWN0dXJlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMs
IEpTQ2FsbGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD46OmNyZWF0ZVN0cnVjdHVyZShleGVj
LT5nbG9iYWxEYXRhKCksIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSk7CiAKICAgICBt
X2FycmF5UHJvdG90eXBlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIEFycmF5UHJvdG90
eXBlOjpjcmVhdGUoZXhlYywgdGhpcywgQXJyYXlQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShl
eGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSkpOwogICAg
IG1fYXJyYXlTdHJ1Y3R1cmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgSlNBcnJheTo6
Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbV9hcnJheVByb3RvdHlw
ZS5nZXQoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
Tk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNw
cAppbmRleCAxNzMxNTJiMjkxOTNkZjIwMjQ1ODEyMzc2NzY4ZmJkODlkZTczNjBjLi5mZDgzNmFm
MDkwNTNmMTMxMDU5Y2MwMTMzMmQ4ZTg3YmQ1NjY5MjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcApAQCAtNTQsMTQgKzU0LDE0IEBAIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTT05Qcm90b0Z1bmNTdHJpbmdpZnkoRXhlY1N0
YXRlKik7CiBuYW1lc3BhY2UgSlNDIHsKIAogSlNPTk9iamVjdDo6SlNPTk9iamVjdChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEpTT2Jq
ZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKKyAgICA6IEpTTm9u
RmluYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsKICAg
ICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QpOwogfQogCiB2b2lkIEpTT05PYmplY3Q6OmZp
bmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7Ci0gICAgQmFzZTo6
ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7
CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpOwog
ICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiB9CiAKQEAgLTU4OSw3ICs1ODksNyBAQCBi
b29sIFN0cmluZ2lmaWVyOjpIb2xkZXI6OmFwcGVuZE5leHRQcm9wZXJ0eShTdHJpbmdpZmllciYg
c3RyaW5naWZpZXIsIFVTdHJpbmdCdQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gSlNPTk9iamVjdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1jb25zdCBD
bGFzc0luZm8gSlNPTk9iamVjdDo6c19pbmZvID0geyAiSlNPTiIsICZKU09iamVjdFdpdGhHbG9i
YWxPYmplY3Q6OnNfaW5mbywgMCwgRXhlY1N0YXRlOjpqc29uVGFibGUgfTsKK2NvbnN0IENsYXNz
SW5mbyBKU09OT2JqZWN0OjpzX2luZm8gPSB7ICJKU09OIiwgJkpTTm9uRmluYWxPYmplY3Q6OnNf
aW5mbywgMCwgRXhlY1N0YXRlOjpqc29uVGFibGUgfTsKIAogLyogU291cmNlIGZvciBKU09OT2Jq
ZWN0Lmx1dC5oCiBAYmVnaW4ganNvblRhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09OT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09OT2JqZWN0LmgKaW5kZXggYzM1NTE2OTJjYTY3MDNhNjMzMmRmNDBmY2VkN2RjM2UzMDMy
ZWMzMC4uNGU4NWJmMTFhYjJjMTNlNjEzMzA1NzAyYTM4YTZkZTExYjAxOWE1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaApAQCAtMjYsMTUgKzI2LDE1IEBA
CiAjaWZuZGVmIEpTT05PYmplY3RfaAogI2RlZmluZSBKU09OT2JqZWN0X2gKIAotI2luY2x1ZGUg
IkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAKIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgU3RyaW5naWZpZXI7CiAKLSAgICBjbGFzcyBKU09O
T2JqZWN0IDogcHVibGljIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCB7CisgICAgY2xhc3MgSlNP
Tk9iamVjdCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBwdWJsaWM6Ci0gICAgICAg
IHR5cGVkZWYgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IEJhc2U7CisgICAgICAgIHR5cGVkZWYg
SlNOb25GaW5hbE9iamVjdCBCYXNlOwogCiAgICAgICAgIHN0YXRpYyBKU09OT2JqZWN0KiBjcmVh
dGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmgKaW5kZXggYTdkOGNiNzlkMjY1ZjA3ZDExZTc2Y2ZiMTZlY2E3MjU3MjFjNjk2NC4u
ZDc2YmVmY2NmNWY2N2YzYzk3NmM0Mjg0ZWUyNTA5NjVlZmI0MzMwYSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0yNTIsNiArMjUyLDEzIEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIGxvY2F0aW9uRm9yT2Zmc2V0KGluZGV4KS0+Z2V0
KCk7CiAgICAgICAgIH0KIAorICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkg
Y29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKHN0cnVjdHVyZSgpLT5nbG9iYWxP
YmplY3QoKSk7CisgICAgICAgICAgICBBU1NFUlQoIWlzR2xvYmFsT2JqZWN0KCkgfHwgKChKU09i
amVjdCopc3RydWN0dXJlKCktPmdsb2JhbE9iamVjdCgpKSA9PSB0aGlzKTsKKyAgICAgICAgICAg
IHJldHVybiBzdHJ1Y3R1cmUoKS0+Z2xvYmFsT2JqZWN0KCk7CisgICAgICAgIH0KKyAgICAgICAg
CiAgICAgICAgIHN0YXRpYyBzaXplX3Qgb2Zmc2V0T2ZJbmxpbmVTdG9yYWdlKCk7CiAgICAgICAg
IHN0YXRpYyBzaXplX3Qgb2Zmc2V0T2ZQcm9wZXJ0eVN0b3JhZ2UoKTsKICAgICAgICAgc3RhdGlj
IHNpemVfdCBvZmZzZXRPZkluaGVyaXRvcklEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODdiMzIxOWM2MzRiZmE1ZWIwMjdhNjM0M2Y2NTExMTc0
MTdiNjEyOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJKU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaCIKLQotI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1KU09iamVjdFdpdGhH
bG9iYWxPYmplY3Q6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEpTTm9uRmluYWxPYmplY3Qo
Z2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKLXsKLX0KLQotSlNPYmplY3RX
aXRoR2xvYmFsT2JqZWN0OjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEpTTm9uRmluYWxPYmplY3Qo
Z2xvYmFsRGF0YSwgc3RydWN0dXJlKQotewotfQotCi12b2lkIEpTT2JqZWN0V2l0aEdsb2JhbE9i
amVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0KQotewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERh
dGEpOwotICAgIENPTVBJTEVfQVNTRVJUKEFub255bW91c1Nsb3RDb3VudCA9PSAxLCBBbm9ueW1v
dXNTbG90Q291bnRfbXVzdF9iZV9vbmUpOwotICAgIEFTU0VSVCghZ2xvYmFsT2JqZWN0IHx8IGds
b2JhbE9iamVjdC0+aXNHbG9iYWxPYmplY3QoKSk7Ci0gICAgaWYgKCFnbG9iYWxPYmplY3QpCi0g
ICAgICAgIGNsZWFyQW5vbnltb3VzVmFsdWUoR2xvYmFsT2JqZWN0U2xvdCk7Ci0gICAgZWxzZQot
ICAgICAgICBwdXRBbm9ueW1vdXNWYWx1ZShnbG9iYWxEYXRhLCBHbG9iYWxPYmplY3RTbG90LCBn
bG9iYWxPYmplY3QpOwotfQotCi19IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmOWEyNDNlYzQ5ZTkzMzliNjFhY2Q5NDY4Y2Rm
ZGNhMGU4MzlhYzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBK
U09iamVjdFdpdGhHbG9iYWxPYmplY3RfaAotI2RlZmluZSBKU09iamVjdFdpdGhHbG9iYWxPYmpl
Y3RfaAotCi0jaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0K
LWNsYXNzIEpTR2xvYmFsT2JqZWN0OwotCi1jbGFzcyBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Qg
OiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7Ci1wdWJsaWM6Ci0gICAgdHlwZWRlZiBKU05vbkZp
bmFsT2JqZWN0IEJhc2U7Ci0KLSAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U1ZhbHVlIHByb3RvKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKLSAgICB9Ci0KLSAgICBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVy
biBhc0dsb2JhbE9iamVjdCgoZ2V0QW5vbnltb3VzVmFsdWUoR2xvYmFsT2JqZWN0U2xvdCkuYXND
ZWxsKCkpKTsKLSAgICB9Ci0KLXByb3RlY3RlZDoKLSAgICBKU09iamVjdFdpdGhHbG9iYWxPYmpl
Y3QoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKLSAgICBKU09iamVjdFdpdGhHbG9iYWxP
YmplY3QoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKik7Ci0KLSAgICBKU09iamVjdFdpdGhHbG9i
YWxPYmplY3QoVlB0clN0ZWFsaW5nSGFja1R5cGUpCi0gICAgICAgIDogSlNOb25GaW5hbE9iamVj
dChWUHRyU3RlYWxpbmdIYWNrKQotICAgIHsKLSAgICAgICAgLy8gU2hvdWxkIG9ubHkgYmUgdXNl
ZCBieSBKU0Z1bmN0aW9uIHdoZW4gd2UgYXF1aXJlIHRoZSBKU0Z1bmN0aW9uIHZwdHIuCi0gICAg
fQotCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBKU0dsb2JhbE9iamVj
dCopOwotCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFub255bW91c1Nsb3RDb3VudCA9IEpT
T2JqZWN0OjpBbm9ueW1vdXNTbG90Q291bnQgKyAxOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBHbG9iYWxPYmplY3RTbG90ID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi0jZW5k
aWYgLy8gSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNWYWx1ZS5jcHAKaW5kZXggMTBkM2JmMWQ2MDY3YWI2NjU2YzUzN2U2ODRhMDZjZGNk
ZTNiZjliMC4uZWI1YWFhNGE2MmQ4NTMzMDVjY2ZiNGEzNGUwNmQ5ZmUyMjhjMWE0YiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAKQEAgLTE5Miw3ICsxOTIsNyBA
QCBpbnQzMl90IHRvSW50MzIoZG91YmxlIG51bWJlcikKIAogYm9vbCBKU1ZhbHVlOjppc1ZhbGlk
Q2FsbGVlKCkKIHsKLSAgICByZXR1cm4gYXNPYmplY3QoYXNPYmplY3QoYXNDZWxsKCkpLT5nZXRB
bm9ueW1vdXNWYWx1ZSgwKSktPmlzR2xvYmFsT2JqZWN0KCk7CisgICAgcmV0dXJuIGFzT2JqZWN0
KGFzQ2VsbCgpKS0+Z2xvYmFsT2JqZWN0KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5jcHAKaW5kZXggZjBjZGJiYTk1N2NlNjUz
MzlmYzdkYjA1ODM5NjQ4NjI1ZmQ3MTE0Ny4uODBlZGJkZGFiODE4MTEzYWRjNGEyZTc0NzUxZjVh
MGNlZWQ5YjAzNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9v
a3VwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuY3BwCkBA
IC03MCwxNCArNzAsMTMgQEAgdm9pZCBIYXNoVGFibGU6OmRlbGV0ZVRhYmxlKCkgY29uc3QKIAog
dm9pZCBzZXRVcFN0YXRpY0Z1bmN0aW9uU2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEhhc2hF
bnRyeSogZW50cnksIEpTT2JqZWN0KiB0aGlzT2JqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBBU1NFUlQodGhpc09iai0+c3RydWN0
dXJlKCktPmFub255bW91c1Nsb3RDb3VudCgpID4gMCk7Ci0gICAgQVNTRVJUKHRoaXNPYmotPmdl
dEFub255bW91c1ZhbHVlKDApLmlzQ2VsbCgpICYmIGFzT2JqZWN0KHRoaXNPYmotPmdldEFub255
bW91c1ZhbHVlKDApLmFzQ2VsbCgpKS0+aXNHbG9iYWxPYmplY3QoKSk7CisgICAgQVNTRVJUKHRo
aXNPYmotPmdsb2JhbE9iamVjdCgpKTsKICAgICBBU1NFUlQoZW50cnktPmF0dHJpYnV0ZXMoKSAm
IEZ1bmN0aW9uKTsKICAgICBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+KiBsb2NhdGlvbiA9IHRo
aXNPYmotPmdldERpcmVjdExvY2F0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgcHJvcGVydHlOYW1l
KTsKIAogICAgIGlmICghbG9jYXRpb24pIHsKICAgICAgICAgSlNGdW5jdGlvbiogZnVuY3Rpb247
Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBhc0dsb2JhbE9iamVjdCh0
aGlzT2JqLT5nZXRBbm9ueW1vdXNWYWx1ZSgwKS5hc0NlbGwoKSk7CisgICAgICAgIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0aGlzT2JqLT5nbG9iYWxPYmplY3QoKTsKICNpZiBFTkFC
TEUoSklUKQogICAgICAgICBpZiAoZW50cnktPmdlbmVyYXRvcigpKQogICAgICAgICAgICAgZnVu
Y3Rpb24gPSBKU0Z1bmN0aW9uOjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmpl
Y3QtPmZ1bmN0aW9uU3RydWN0dXJlKCksIGVudHJ5LT5mdW5jdGlvbkxlbmd0aCgpLCBwcm9wZXJ0
eU5hbWUsIGV4ZWMtPmdsb2JhbERhdGEoKS5nZXRIb3N0RnVuY3Rpb24oZW50cnktPmZ1bmN0aW9u
KCksIGVudHJ5LT5nZW5lcmF0b3IoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTG9va3VwLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29r
dXAuaAppbmRleCAyZmE0MmQwNDdkNDkwOGU2ZDY1ODc1OGY2MmU2ZjQxOWY3OGVjYzJmLi5jMDAx
M2Q2ZDE3OTRiMWU3ZTQ5N2JiYzJjMWY1OGZhZTUyNzQ0ZmVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Mb29rdXAuaApAQCAtMjQsNyArMjQsNiBAQAogI2luY2x1ZGUgIkNhbGxGcmFt
ZS5oIgogI2luY2x1ZGUgIklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5o
IgotI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiUHJvcGVydHlTbG90LmgiCiAjaW5j
bHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcAppbmRleCA1ZWM1NmEzNmU3Mzc1NTlh
MzBkZmIxMjA4YTBjMTNjZWJhOTg3YjZkLi4zMTljOTdjYWVmYzRiYmRlOTc5Yjc4Yjk0YjNkMGZh
ZDljZmI4MGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRo
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0
LmNwcApAQCAtNTksNyArNTksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBtYXRoUHJvdG9GdW5jVGFuKEV4ZWNTdGF0ZSopOwogCiBuYW1lc3BhY2UgSlNDIHsKIAotY29u
c3QgQ2xhc3NJbmZvIE1hdGhPYmplY3Q6OnNfaW5mbyA9IHsgIk1hdGgiLCAmSlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0OjpzX2luZm8sIDAsIEV4ZWNTdGF0ZTo6bWF0aFRhYmxlIH07Citjb25zdCBD
bGFzc0luZm8gTWF0aE9iamVjdDo6c19pbmZvID0geyAiTWF0aCIsICZKU05vbkZpbmFsT2JqZWN0
OjpzX2luZm8sIDAsIEV4ZWNTdGF0ZTo6bWF0aFRhYmxlIH07CiAKIC8qIFNvdXJjZSBmb3IgTWF0
aE9iamVjdC5sdXQuaAogQGJlZ2luIG1hdGhUYWJsZQpAQCAtODUsMTQgKzg1LDE0IEBAIGNvbnN0
IENsYXNzSW5mbyBNYXRoT2JqZWN0OjpzX2luZm8gPSB7ICJNYXRoIiwgJkpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdDo6c19pbmZvCiAqLwogCiBNYXRoT2JqZWN0OjpNYXRoT2JqZWN0KEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCi0gICAgOiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1
cmUpCisgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBz
dHJ1Y3R1cmUpCiB7CiAgICAgZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFsT2JqZWN0KTsKIH0K
IAogdm9pZCBNYXRoT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xv
YmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CisgICAgQmFzZTo6ZmluaXNo
Q3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0
cygmc19pbmZvKSk7CiAKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9i
YWxEYXRhKCksIElkZW50aWZpZXIoZXhlYywgIkUiKSwganNOdW1iZXIoZXhwKDEuMCkpLCBEb250
RGVsZXRlIHwgRG9udEVudW0gfCBSZWFkT25seSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9NYXRoT2JqZWN0LmgKaW5kZXggZTQxMGE2ZWU5YTc3ZjBiMDc1MzJkZmQ4ODRhZjlkM2Y5
MDQ2MmNlMy4uYmVmOTMxMGFjOGIwZTViMmU2Mjc0N2ZhYzljNjRmZGJhODYzZGMwNSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaApAQCAtMjEsMTYgKzIxLDE2
IEBACiAjaWZuZGVmIE1hdGhPYmplY3RfaAogI2RlZmluZSBNYXRoT2JqZWN0X2gKIAotI2luY2x1
ZGUgIkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAK
IG5hbWVzcGFjZSBKU0MgewogCi0gICAgY2xhc3MgTWF0aE9iamVjdCA6IHB1YmxpYyBKU09iamVj
dFdpdGhHbG9iYWxPYmplY3QgeworICAgIGNsYXNzIE1hdGhPYmplY3QgOiBwdWJsaWMgSlNOb25G
aW5hbE9iamVjdCB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgTWF0aE9iamVjdChFeGVjU3RhdGUq
LCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogCiAgICAgcHVibGljOgotICAgICAgICB0
eXBlZGVmIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCBCYXNlOworICAgICAgICB0eXBlZGVmIEpT
Tm9uRmluYWxPYmplY3QgQmFzZTsKIAogICAgICAgICBzdGF0aWMgTWF0aE9iamVjdCogY3JlYXRl
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCmluZGV4IGQ3NDQxNjI2ZTExMWEyYmNjMWQzYTE2MDZj
ODE1NGFiYTBhMGNjMDYuLjM4ZDU5NjVkOWIxMTM2ZGRjZWI3Nzc3MDk3MmIwM2E3NzJiODEyMDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlw
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBl
LmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkJpZ0ludGVnZXIuaCIKICNpbmNsdWRl
ICJFcnJvci5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKKyNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIlVpbnQxNldpdGhGcmFjdGlvbi5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKaW5kZXggODQxZDkzOTQxMTdhYjA5MTE3MzhkMGM0
ODVlM2ZlNTBiNWExZGQxNi4uNzBiNzA3YzI3ODVmYTQ4ZTE2YjQ1ZjEzNWNiYmY5NmIxMTU2MGMw
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3Bw
CkBAIC01MCw3ICs1MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBBU1NFUlRfQ0xBU1NfRklUU19J
Tl9DRUxMKFJlZ0V4cE9iamVjdCk7CiAKLWNvbnN0IENsYXNzSW5mbyBSZWdFeHBPYmplY3Q6OnNf
aW5mbyA9IHsgIlJlZ0V4cCIsICZKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OnNfaW5mbywgMCwg
RXhlY1N0YXRlOjpyZWdFeHBUYWJsZSB9OworY29uc3QgQ2xhc3NJbmZvIFJlZ0V4cE9iamVjdDo6
c19pbmZvID0geyAiUmVnRXhwIiwgJkpTTm9uRmluYWxPYmplY3Q6OnNfaW5mbywgMCwgRXhlY1N0
YXRlOjpyZWdFeHBUYWJsZSB9OwogCiAvKiBTb3VyY2UgZm9yIFJlZ0V4cE9iamVjdC5sdXQuaAog
QGJlZ2luIHJlZ0V4cFRhYmxlCkBAIC02Myw3ICs2Myw3IEBAIGNvbnN0IENsYXNzSW5mbyBSZWdF
eHBPYmplY3Q6OnNfaW5mbyA9IHsgIlJlZ0V4cCIsICZKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6
OnNfCiAqLwogCiBSZWdFeHBPYmplY3Q6OlJlZ0V4cE9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVnRXhwKiByZWdFeHApCi0gICAgOiBK
U09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCisgICAgOiBK
U05vbkZpbmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiAg
ICAgLCBkKGFkb3B0UHRyKG5ldyBSZWdFeHBPYmplY3REYXRhKGdsb2JhbE9iamVjdC0+Z2xvYmFs
RGF0YSgpLCB0aGlzLCByZWdFeHApKSkKIHsKICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmpl
Y3QpOwpAQCAtNzEsNyArNzEsNyBAQCBSZWdFeHBPYmplY3Q6OlJlZ0V4cE9iamVjdChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUgogCiB2b2lkIFJl
Z0V4cE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
IHsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwg
Z2xvYmFsT2JqZWN0KTsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmds
b2JhbERhdGEoKSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAppbmRleCBlMTMxZmM1YzQ3
ODZhZDk0NzZlMzNiZWQwNTk5ZmQ0NGQ4NzcyNWQ0Li4yZjA3NzVmMWNlYmQ0NmQ3ZDk2Y2VmMzQ3
NGYzZmU5ZWJjNWE3N2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBPYmplY3QuaApAQCAtMjEsMTQgKzIxLDE0IEBACiAjaWZuZGVmIFJlZ0V4cE9iamVjdF9oCiAj
ZGVmaW5lIFJlZ0V4cE9iamVjdF9oCiAKLSNpbmNsdWRlICJKU09iamVjdFdpdGhHbG9iYWxPYmpl
Y3QuaCIKKyNpbmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIlJlZ0V4cC5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKICAgICAKLSAgICBjbGFzcyBSZWdFeHBPYmplY3QgOiBwdWJsaWMgSlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0IHsKKyAgICBjbGFzcyBSZWdFeHBPYmplY3QgOiBwdWJsaWMgSlNO
b25GaW5hbE9iamVjdCB7CiAgICAgcHVibGljOgotICAgICAgICB0eXBlZGVmIEpTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdCBCYXNlOworICAgICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFz
ZTsKIAogICAgICAgICBzdGF0aWMgUmVnRXhwT2JqZWN0KiBjcmVhdGUoRXhlY1N0YXRlKiBleGVj
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVn
RXhwKiByZWdFeHApCiAgICAgICAgIHsKQEAgLTc1LDcgKzc1LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBSZWdFeHBPYmplY3QoSlNHbG9iYWxPYmplY3QqLCBT
dHJ1Y3R1cmUqLCBSZWdFeHAqKTsKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2Jh
bE9iamVjdCopOwotICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwg
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKKyAgICAgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8
IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0
b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVy
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCmluZGV4
IDRiY2M2NzIzY2RiNWZlYWNkNDQyNTMxYzgwOTViOTc3ZjhjYmYwOTMuLjJiZGY1ZmQyOWNjNDhk
YTUwNzEzYWM2N2U0NGJiNjJmNzdmYzY2YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlLmNwcApAQCAtMTU5LDkgKzE1OSwxMCBAQCB2b2lkIFN0cnVjdHVyZTo6
ZHVtcFN0YXRpc3RpY3MoKQogI2VuZGlmCiB9CiAKLVN0cnVjdHVyZTo6U3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUsIGNvbnN0IFR5cGVJbmZvJiB0
eXBlSW5mbywgdW5zaWduZWQgYW5vbnltb3VzU2xvdENvdW50LCBjb25zdCBDbGFzc0luZm8qIGNs
YXNzSW5mbykKK1N0cnVjdHVyZTo6U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUsIGNvbnN0IFR5
cGVJbmZvJiB0eXBlSW5mbywgdW5zaWduZWQgYW5vbnltb3VzU2xvdENvdW50LCBjb25zdCBDbGFz
c0luZm8qIGNsYXNzSW5mbykKICAgICA6IEpTQ2VsbChnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLnN0
cnVjdHVyZVN0cnVjdHVyZS5nZXQoKSkKICAgICAsIG1fdHlwZUluZm8odHlwZUluZm8pCisgICAg
LCBtX2dsb2JhbE9iamVjdChnbG9iYWxEYXRhLCB0aGlzLCBnbG9iYWxPYmplY3QsIFdyaXRlQmFy
cmllcjxKU0dsb2JhbE9iamVjdD46Ok1heUJlTnVsbCkKICAgICAsIG1fcHJvdG90eXBlKGdsb2Jh
bERhdGEsIHRoaXMsIHByb3RvdHlwZSkKICAgICAsIG1fY2xhc3NJbmZvKGNsYXNzSW5mbykKICAg
ICAsIG1fcHJvcGVydHlTdG9yYWdlQ2FwYWNpdHkodHlwZUluZm8uaXNGaW5hbCgpID8gSlNGaW5h
bE9iamVjdF9pbmxpbmVTdG9yYWdlQ2FwYWNpdHkgOiBKU05vbkZpbmFsT2JqZWN0X2lubGluZVN0
b3JhZ2VDYXBhY2l0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgK
aW5kZXggZjRlMGJjOGQxMmNjMjE2MzJjMDE3N2E2NDE5ZGJhYjgwZGRlNTlhYy4uMGY0ZjQ4Yzgz
NDEyYzEzNTBkMDkzNGMxYjVmZjYzMzc2ODI5NmZjMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlLmgKQEAgLTYyLDExICs2MiwxMSBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwogCi0gICAgICAgIHN0YXRpYyBTdHJ1Y3R1
cmUqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiwgSlNW
YWx1ZSBwcm90b3R5cGUsIGNvbnN0IFR5cGVJbmZvJiB0eXBlSW5mbywgdW5zaWduZWQgYW5vbnlt
b3VzU2xvdENvdW50LCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbykKKyAgICAgICAgc3RhdGlj
IFN0cnVjdHVyZSogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUsIGNvbnN0IFR5cGVJbmZvJiB0eXBl
SW5mbywgdW5zaWduZWQgYW5vbnltb3VzU2xvdENvdW50LCBjb25zdCBDbGFzc0luZm8qIGNsYXNz
SW5mbykKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUKGdsb2JhbERhdGEuc3RydWN0dXJl
U3RydWN0dXJlKTsKICAgICAgICAgICAgIEFTU0VSVChjbGFzc0luZm8pOwotICAgICAgICAgICAg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxTdHJ1Y3R1cmU+KGdsb2Jh
bERhdGEuaGVhcCkpIFN0cnVjdHVyZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIHR5cGVJbmZvLCBh
bm9ueW1vdXNTbG90Q291bnQsIGNsYXNzSW5mbyk7CisgICAgICAgICAgICBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSA9IG5ldyAoYWxsb2NhdGVDZWxsPFN0cnVjdHVyZT4oZ2xvYmFsRGF0YS5oZWFwKSkg
U3RydWN0dXJlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCB0eXBlSW5mbywg
YW5vbnltb3VzU2xvdENvdW50LCBjbGFzc0luZm8pOwogICAgICAgICAgICAgc3RydWN0dXJlLT5m
aW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICAgICAgICAgIHJldHVybiBzdHJ1Y3R1cmU7
CiAgICAgICAgIH0KQEAgLTEyMSw3ICsxMjEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAg
ICBjb25zdCBUeXBlSW5mbyYgdHlwZUluZm8oKSBjb25zdCB7IEFTU0VSVChzdHJ1Y3R1cmUoKS0+
Y2xhc3NJbmZvKCkgPT0gJnNfaW5mbyk7IHJldHVybiBtX3R5cGVJbmZvOyB9CiAKLSAgICAgICAg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCgpIHsgcmV0dXJuIG1fZ2xvYmFsT2JqZWN0Lmdl
dCgpOyB9CisgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSBjb25zdCB7IHJl
dHVybiBtX2dsb2JhbE9iamVjdC5nZXQoKTsgfQogICAgICAgICB2b2lkIHNldEdsb2JhbE9iamVj
dChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
IHsgbV9nbG9iYWxPYmplY3Quc2V0KGdsb2JhbERhdGEsIHRoaXMsIGdsb2JhbE9iamVjdCk7IH0K
ICAgICAgICAgCiAgICAgICAgIEpTVmFsdWUgc3RvcmVkUHJvdG90eXBlKCkgY29uc3QgeyByZXR1
cm4gbV9wcm90b3R5cGUuZ2V0KCk7IH0KQEAgLTE5MSw3ICsxOTEsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgc3RhdGljIEpTX0VYUE9SVERBVEEgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsK
IAogICAgIHByaXZhdGU6Ci0gICAgICAgIFN0cnVjdHVyZShKU0dsb2JhbERhdGEmLCBKU1ZhbHVl
IHByb3RvdHlwZSwgY29uc3QgVHlwZUluZm8mLCB1bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291bnQs
IGNvbnN0IENsYXNzSW5mbyopOworICAgICAgICBTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiwgSlNH
bG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgVHlwZUluZm8mLCB1bnNpZ25l
ZCBhbm9ueW1vdXNTbG90Q291bnQsIGNvbnN0IENsYXNzSW5mbyopOwogICAgICAgICBTdHJ1Y3R1
cmUoSlNHbG9iYWxEYXRhJik7CiAgICAgICAgIFN0cnVjdHVyZShKU0dsb2JhbERhdGEmLCBjb25z
dCBTdHJ1Y3R1cmUqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDY4MGJiM2I0MTUzMTdlMTFmMDRlMjA2ZWYz
NTc4NGEzNjA5NWIwMzQuLjNhZjU2M2ViN2Y2NWE3ZWM2NTE1ZGFiNDEzNDZmYjVhOThjZDQ3YzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMS0wOS0wNiAgT2xpdmVyIEh1bnQgIDxv
bGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBKU09iamVjdFdpdGhHbG9iYWxPYmpl
Y3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3Njg5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3Zl
IHVzZSBvZiBhbm9ueW1vdXMgc3RvcmFnZSBhbmQgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IGZv
cgorICAgICAgICBhY2Nlc3NpbmcgYSBKU09iamVjdCdzIGdsb2JhbCBvYmplY3Qgbm93IHRoYXQg
dGhleSdyZSBhdmFpbGFibGUKKyAgICAgICAgb24gdGhlIG9iamVjdCdzIHN0cnVjdHVyZS4KKwor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3dTaGVsbDo6c2V0V2luZG93KToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0RPTVdyYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV3JhcHBlcjo6Z2xvYmFs
T2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV3JhcHBlcjo6SlNET01XcmFwcGVyKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xsZXI6OmluaXRTY3JpcHQpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJh
dGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICog
YnJpZGdlL29iamMvb2JqY19ydW50aW1lLmg6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19y
dW50aW1lLm1tOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0ZhbGxiYWNrT2JqZWN0SW1w
OjpPYmpjRmFsbGJhY2tPYmplY3RJbXApOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0Zh
bGxiYWNrT2JqZWN0SW1wOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYnJpZGdlL3J1bnRp
bWVfb2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OlJ1
bnRpbWVPYmplY3QpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6Zmlu
aXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5oOgorCiAyMDEx
LTA5LTA1ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgQW4gb2Jq
ZWN0J3Mgc3RydWN0dXJlIHNob3VsZCByZWZlcmVuY2UgdGhlIGdsb2JhbCBvYmplY3QgcmVzcG9u
c2libGUgZm9yIGl0cyBjcmVhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd1NoZWxsLmNwcAppbmRleCA0OWUxYjRhNDk1OGFmYTc4YjU5NjFiNzdhZmIwMjkx
NzlmNTViNzRlLi4xZWRmZDJlNmE3MzQyNmNhN2U2OTBlYTc2OThlOGVjMjk3NGEzMmJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcApAQCAt
NzMsOSArNzMsMTAgQEAgdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpzZXRXaW5kb3coUGFzc1JlZlB0
cjxET01XaW5kb3c+IGRvbVdpbmRvdykKIAogICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gSlNE
T01XaW5kb3c6OmNyZWF0ZVN0cnVjdHVyZSgqSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0
YSgpLCAwLCBwcm90b3R5cGUuZ2V0KCkpOwogICAgIEpTRE9NV2luZG93KiBqc0RPTVdpbmRvdyA9
IEpTRE9NV2luZG93OjpjcmVhdGUoKkpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSwg
c3RydWN0dXJlLCBkb21XaW5kb3csIHRoaXMpOwotICAgIHByb3RvdHlwZVN0cnVjdHVyZS0+c2V0
R2xvYmFsT2JqZWN0KCpKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCksIGpzRE9NV2lu
ZG93KTsKLSAgICBwcm90b3R5cGUtPnB1dEFub255bW91c1ZhbHVlKCpKU0RPTVdpbmRvdzo6Y29t
bW9uSlNHbG9iYWxEYXRhKCksIDAsIGpzRE9NV2luZG93KTsKKyAgICBwcm90b3R5cGUtPnN0cnVj
dHVyZSgpLT5zZXRHbG9iYWxPYmplY3QoKkpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEo
KSwganNET01XaW5kb3cpOwogICAgIHNldFdpbmRvdygqSlNET01XaW5kb3c6OmNvbW1vbkpTR2xv
YmFsRGF0YSgpLCBqc0RPTVdpbmRvdyk7CisgICAgQVNTRVJUKGpzRE9NV2luZG93LT5nbG9iYWxP
YmplY3QoKSA9PSBqc0RPTVdpbmRvdyk7CisgICAgQVNTRVJUKHByb3RvdHlwZS0+Z2xvYmFsT2Jq
ZWN0KCkgPT0ganNET01XaW5kb3cpOwogfQogCiAvLyAtLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV3JhcHBlci5oCmluZGV4IDhmMmMwOGUyYjE4NjBkODAyMzRiYThmNzM1N2Y2
YTg0YzdkYjRlYTMuLjZhMWI0Mzg5MzhmYTE0MWI0ODBjMDFlYjhkZjQwMTdmOTZmMTNlOWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCkBAIC0yMywxNyArMjMs
MTcgQEAKICNkZWZpbmUgSlNET01XcmFwcGVyX2gKIAogI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2Jq
ZWN0LmgiCi0jaW5jbHVkZSA8cnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaD4KKyNp
bmNsdWRlIDxydW50aW1lL0pTT2JqZWN0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAotY2xhc3MgSlNET01XcmFwcGVyIDogcHVibGlj
IEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IHsKK2NsYXNzIEpTRE9NV3JhcHBlciA6IHB1
YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6Omds
b2JhbE9iamVjdCgpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2Jq
ZWN0Kj4oSlNDOjpKU05vbkZpbmFsT2JqZWN0OjpnbG9iYWxPYmplY3QoKSk7CiAgICAgfQogCiAg
ICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0
CkBAIC01MywxMyArNTMsMTMgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCB2aXJ0dWFs
RnVuY3Rpb25Ub1ByZXZlbnRXZWFrVnRhYmxlKCk7CiAKICAgICBleHBsaWNpdCBKU0RPTVdyYXBw
ZXIoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KSAKLSAgICAgICAgOiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0
LCBzdHJ1Y3R1cmUpCisgICAgICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxPYmplY3QtPmds
b2JhbERhdGEoKSwgc3RydWN0dXJlKQogICAgIHsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgQVNT
RVJUIGlzIHZhbGlkLCBidXQgZmlyZXMgaW4gZmFzdC9kb20vZ2MtNi5odG1sIHdoZW4gdHJ5aW5n
IHRvIGNyZWF0ZQogICAgICAgICAvLyBuZXcgSmF2YVNjcmlwdCBvYmplY3RzIG9uIGRldGFjaGVk
IHdpbmRvd3MgZHVlIHRvIERPTVdpbmRvdzo6ZG9jdW1lbnQoKQogICAgICAgICAvLyBuZWVkaW5n
IHRvIHJlYWNoIHRocm91Z2ggdGhlIGZyYW1lIHRvIGdldCB0byB0aGUgRG9jdW1lbnQqLiAgU2Vl
IGJ1ZyAyNzY0MC4KICAgICAgICAgLy8gQVNTRVJUKGdsb2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKTsKLSAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9i
YWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CisgICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9i
amVjdC0+Z2xvYmFsRGF0YSgpKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDE3MDI0ZTJj
OTQ5Nzc1YjJmY2Q0YzY5Njc1NzgyZWQ0ZTI1MWExNjQuLjA0N2Q3NGExODA1MTgxYzU3YTA1OGRm
NDc3NmI4NTU3ZmQwODM5Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC05Miw4ICs5Miw2IEBAIHZvaWQgV29y
a2VyU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdCgpCiAgICAgICAgIEFTU0VSVChtX3dvcmtl
ckNvbnRleHRXcmFwcGVyLT5zdHJ1Y3R1cmUoKS0+Z2xvYmFsT2JqZWN0KCkgPT0gbV93b3JrZXJD
b250ZXh0V3JhcHBlcik7CiAgICAgICAgIHdvcmtlckNvbnRleHRQcm90b3R5cGUtPnN0cnVjdHVy
ZSgpLT5zZXRHbG9iYWxPYmplY3QoKm1fZ2xvYmFsRGF0YSwgbV93b3JrZXJDb250ZXh0V3JhcHBl
ci5nZXQoKSk7CiAgICAgICAgIGRlZGljYXRlZENvbnRleHRQcm90b3R5cGUtPnN0cnVjdHVyZSgp
LT5zZXRHbG9iYWxPYmplY3QoKm1fZ2xvYmFsRGF0YSwgbV93b3JrZXJDb250ZXh0V3JhcHBlci5n
ZXQoKSk7Ci0gICAgICAgIHdvcmtlckNvbnRleHRQcm90b3R5cGUtPnB1dEFub255bW91c1ZhbHVl
KCptX2dsb2JhbERhdGEsIDAsIG1fd29ya2VyQ29udGV4dFdyYXBwZXIuZ2V0KCkpOwotICAgICAg
ICBkZWRpY2F0ZWRDb250ZXh0UHJvdG90eXBlLT5wdXRBbm9ueW1vdXNWYWx1ZSgqbV9nbG9iYWxE
YXRhLCAwLCBtX3dvcmtlckNvbnRleHRXcmFwcGVyLmdldCgpKTsKICNpZiBFTkFCTEUoU0hBUkVE
X1dPUktFUlMpCiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJUKG1fd29ya2VyQ29udGV4dC0+
aXNTaGFyZWRXb3JrZXJDb250ZXh0KCkpOwpAQCAtMTAyLDEyICsxMDAsMTIgQEAgdm9pZCBXb3Jr
ZXJTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0KCkKICAgICAgICAgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUgPSBKU1NoYXJlZFdvcmtlckNvbnRleHQ6OmNyZWF0ZVN0cnVjdHVyZSgqbV9nbG9iYWxE
YXRhLCAwLCBzaGFyZWRDb250ZXh0UHJvdG90eXBlLmdldCgpKTsKIAogICAgICAgICBtX3dvcmtl
ckNvbnRleHRXcmFwcGVyLnNldCgqbV9nbG9iYWxEYXRhLCBKU1NoYXJlZFdvcmtlckNvbnRleHQ6
OmNyZWF0ZSgqbV9nbG9iYWxEYXRhLCBzdHJ1Y3R1cmUsIG1fd29ya2VyQ29udGV4dC0+dG9TaGFy
ZWRXb3JrZXJDb250ZXh0KCkpKTsKLSAgICAgICAgbV93b3JrZXJDb250ZXh0V3JhcHBlci0+c3Ry
dWN0dXJlKCktPnNldEdsb2JhbE9iamVjdCgqbV9nbG9iYWxEYXRhLCBtX3dvcmtlckNvbnRleHRX
cmFwcGVyLmdldCgpKTsKKyAgICAgICAgd29ya2VyQ29udGV4dFByb3RvdHlwZS0+c3RydWN0dXJl
KCktPnNldEdsb2JhbE9iamVjdCgqbV9nbG9iYWxEYXRhLCBtX3dvcmtlckNvbnRleHRXcmFwcGVy
LmdldCgpKTsKICAgICAgICAgc2hhcmVkQ29udGV4dFByb3RvdHlwZS0+c3RydWN0dXJlKCktPnNl
dEdsb2JhbE9iamVjdCgqbV9nbG9iYWxEYXRhLCBtX3dvcmtlckNvbnRleHRXcmFwcGVyLmdldCgp
KTsKLSAgICAgICAgd29ya2VyQ29udGV4dFByb3RvdHlwZS0+cHV0QW5vbnltb3VzVmFsdWUoKm1f
Z2xvYmFsRGF0YSwgMCwgbV93b3JrZXJDb250ZXh0V3JhcHBlci5nZXQoKSk7Ci0gICAgICAgIHNo
YXJlZENvbnRleHRQcm90b3R5cGUtPnB1dEFub255bW91c1ZhbHVlKCptX2dsb2JhbERhdGEsIDAs
IG1fd29ya2VyQ29udGV4dFdyYXBwZXIuZ2V0KCkpOwogI2VuZGlmCiAgICAgfQorICAgIEFTU0VS
VChtX3dvcmtlckNvbnRleHRXcmFwcGVyLT5nbG9iYWxPYmplY3QoKSA9PSBtX3dvcmtlckNvbnRl
eHRXcmFwcGVyKTsKKyAgICBBU1NFUlQoYXNPYmplY3QobV93b3JrZXJDb250ZXh0V3JhcHBlci0+
cHJvdG90eXBlKCkpLT5nbG9iYWxPYmplY3QoKSA9PSBtX3dvcmtlckNvbnRleHRXcmFwcGVyKTsK
IH0KIAogU2NyaXB0VmFsdWUgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3Qg
U2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggN2ExMWEwMTQxZDNmNGE3YWIz
NWFmMWI1YzAyZWI4MzI0NGRlZDA5Yi4uMDA0M2NiZDFkOTFkMzU2MjZjMDBlNTkzOTE1ZGJkM2Y5
NzJhMWNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KQEAgLTY5Myw3ICs2OTMsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAg
ICAgICAgJGhlYWRlckluY2x1ZGVzeyIkaW1wbENsYXNzTmFtZS5oIn0gPSAxOwogICAgIH0KICAg
ICAKLSAgICAkaGVhZGVySW5jbHVkZXN7IjxydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dC5oPiJ9ID0gMTsKKyAgICAkaGVhZGVySW5jbHVkZXN7IjxydW50aW1lL0pTT2JqZWN0Lmg+In0g
PSAxOwogICAgICRoZWFkZXJJbmNsdWRlc3siU1ZHRWxlbWVudC5oIn0gPSAxIGlmICRjbGFzc05h
bWUgPX4gL15KU1NWRy87CiAKICAgICBteSAkaW1wbFR5cGUgPSAkaW1wbENsYXNzTmFtZTsKQEAg
LTEwMjAsOSArMTAyMCw5IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAgICAgIyBBZGQgcHJvdG90
eXBlIGRlY2xhcmF0aW9uLgogICAgICVzdHJ1Y3R1cmVGbGFncyA9ICgpOwotICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICJjbGFzcyAke2NsYXNzTmFtZX1Qcm90b3R5cGUgOiBwdWJsaWMgSlNDOjpK
U09iamVjdFdpdGhHbG9iYWxPYmplY3Qge1xuIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
ImNsYXNzICR7Y2xhc3NOYW1lfVByb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmpl
Y3Qge1xuIik7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgInB1YmxpYzpcbiIpOwotICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgdHlwZWRlZiBKU0M6OkpTT2JqZWN0V2l0aEdsb2JhbE9i
amVjdCBCYXNlO1xuIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB0eXBlZGVmIEpT
Qzo6SlNOb25GaW5hbE9iamVjdCBCYXNlO1xuIik7CiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIG5l
ICJET01XaW5kb3ciICYmICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJc1dvcmtl
ckNvbnRleHQifSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBK
U0M6OkpTT2JqZWN0KiBzZWxmKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCop
O1xuIik7CiAgICAgfQpAQCAtMTA1Nyw3ICsxMDU3LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgZGVmaW5lR2V0dGVyKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6
SlNPYmplY3QqIGdldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTtcbiIpIGlmICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVByb3RvdHlwZURlZmluZUdldHRl
ciJ9OwogCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlxucHJpdmF0ZTpcbiIpOwotICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9UHJvdG90eXBlKEpTQzo6SlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Qzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpIDogSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Qo
Z2xvYmFsRGF0YSwgc3RydWN0dXJlKSB7IGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGdsb2Jh
bE9iamVjdCk7IH1cbiIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJHtjbGFzc05h
bWV9UHJvdG90eXBlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgOiBKU0M6OkpTTm9uRmluYWxPYmpl
Y3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKSB7IGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOyB9
XG4iKTsKIAogICAgICMgc3RydWN0dXJlIGZsYWdzCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
InByb3RlY3RlZDpcbiIpOwpAQCAtMTQyMCw5ICsxNDIwLDkgQEAgc3ViIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb24KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldEhhc2hUYWJsZUZvckdsb2JhbERhdGEoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCAmJHtjbGFzc05hbWV9UHJvdG90eXBlVGFibGUpO1xuIik7CiAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJjb25zdCBDbGFzc0luZm8gJHtjbGFzc05hbWV9UHJvdG90eXBlOjpzX2luZm8gPSB7IFwi
JHt2aXNpYmxlQ2xhc3NOYW1lfVByb3RvdHlwZVwiLCAmSlNDOjpKU09iamVjdFdpdGhHbG9iYWxP
YmplY3Q6OnNfaW5mbywgMCwgZ2V0JHtjbGFzc05hbWV9UHJvdG90eXBlVGFibGUgfTtcblxuIik7
CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiY29uc3QgQ2xhc3NJbmZvICR7Y2xhc3NOYW1l
fVByb3RvdHlwZTo6c19pbmZvID0geyBcIiR7dmlzaWJsZUNsYXNzTmFtZX1Qcm90b3R5cGVcIiwg
JkpTQzo6SlNOb25GaW5hbE9iamVjdDo6c19pbmZvLCAwLCBnZXQke2NsYXNzTmFtZX1Qcm90b3R5
cGVUYWJsZSB9O1xuXG4iKTsKICAgICB9IGVsc2UgewotICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgImNvbnN0IENsYXNzSW5mbyAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OnNfaW5mbyA9IHsgXCIk
e3Zpc2libGVDbGFzc05hbWV9UHJvdG90eXBlXCIsICZKU0M6OkpTT2JqZWN0V2l0aEdsb2JhbE9i
amVjdDo6c19pbmZvLCAmJHtjbGFzc05hbWV9UHJvdG90eXBlVGFibGUsIDAgfTtcblxuIik7Cisg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiY29uc3QgQ2xhc3NJbmZvICR7Y2xhc3NOYW1lfVBy
b3RvdHlwZTo6c19pbmZvID0geyBcIiR7dmlzaWJsZUNsYXNzTmFtZX1Qcm90b3R5cGVcIiwgJkpT
Qzo6SlNOb25GaW5hbE9iamVjdDo6c19pbmZvLCAmJHtjbGFzc05hbWV9UHJvdG90eXBlVGFibGUs
IDAgfTtcblxuIik7CiAgICAgfQogICAgIGlmICgkaW50ZXJmYWNlTmFtZSBuZSAiRE9NV2luZG93
IiAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSXNXb3JrZXJDb250ZXh0In0p
IHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU09iamVjdCogJHtjbGFzc05hbWV9UHJv
dG90eXBlOjpzZWxmKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dClcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50
aW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaAppbmRleCBh
NWE2NzI1MmNmNTM2ZmNlNzYzNzI2MjZkNmIyMGMzYTJiYjc5ODI4Li41ZjYxYWRmZDcxNzZkZmFl
ZWI5ZjRkY2YzMWU5MjNlOTNiZmIyZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvb2JqYy9vYmpjX3J1bnRpbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9v
YmpjX3J1bnRpbWUuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5o
IgogI2luY2x1ZGUgIm9iamNfaGVhZGVyLmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0dsb2JhbE9i
amVjdC5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Lmg+CiAj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTkxLDkgKzkw
LDkgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8T2JqZWN0U3RydWN0UHRyPiBfYXJyYXk7CiB9
OwogCi1jbGFzcyBPYmpjRmFsbGJhY2tPYmplY3RJbXAgOiBwdWJsaWMgSlNPYmplY3RXaXRoR2xv
YmFsT2JqZWN0IHsKK2NsYXNzIE9iamNGYWxsYmFja09iamVjdEltcCA6IHB1YmxpYyBKU05vbkZp
bmFsT2JqZWN0IHsKIHB1YmxpYzoKLSAgICB0eXBlZGVmIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dCBCYXNlOworICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwogCiAgICAgc3RhdGlj
IE9iamNGYWxsYmFja09iamVjdEltcCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgT2JqY0luc3RhbmNlKiBpbnN0YW5jZSwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9vYmpjL29iamNfcnVudGltZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29i
amNfcnVudGltZS5tbQppbmRleCBkZjBlNzFjN2ZlY2I2MmUxNmY3NWRhOTEyMDMxZmE5NmIxYTJh
N2M2Li40ZjlkNTA1NDkwNWU2NDMyZmI2Mjg1ODY1ZjRlZjk4OTFkYzA5OTZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCkBAIC0xOTQsMTkgKzE5NCwyMCBA
QCB1bnNpZ25lZCBpbnQgT2JqY0FycmF5OjpnZXRMZW5ndGgoKSBjb25zdAogICAgIHJldHVybiBb
X2FycmF5LmdldCgpIGNvdW50XTsKIH0KIAotY29uc3QgQ2xhc3NJbmZvIE9iamNGYWxsYmFja09i
amVjdEltcDo6c19pbmZvID0geyAiT2JqY0ZhbGxiYWNrT2JqZWN0IiwgJkpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdDo6c19pbmZvLCAwLCAwIH07Citjb25zdCBDbGFzc0luZm8gT2JqY0ZhbGxiYWNr
T2JqZWN0SW1wOjpzX2luZm8gPSB7ICJPYmpjRmFsbGJhY2tPYmplY3QiLCAmSlNOb25GaW5hbE9i
amVjdDo6c19pbmZvLCAwLCAwIH07CiAKIE9iamNGYWxsYmFja09iamVjdEltcDo6T2JqY0ZhbGxi
YWNrT2JqZWN0SW1wKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBPYmpjSW5zdGFuY2UqIGksIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkK
LSAgICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkK
KyAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHN0cnVj
dHVyZSkKICAgICAsIF9pbnN0YW5jZShpKQogICAgICwgX2l0ZW0ocHJvcGVydHlOYW1lKQogewog
ICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7CisgICAgQVNTRVJUKHN0cnVjdHVyZS0+
Z2xvYmFsT2JqZWN0KCkgPT0gZ2xvYmFsT2JqZWN0KTsKIH0KIAogdm9pZCBPYmpjRmFsbGJhY2tP
YmplY3RJbXA6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7
Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGds
b2JhbE9iamVjdCk7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9i
YWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IDk2NjQwZjAwOGZhYzFhYzQ3MTc2
NGZmODVlM2I4ZjY0NWI5MmJmMmMuLmJhMWU3ZTUzMWJjODlhZDIzY2YwMTA2Mzk1ZDcyYjhhOTRk
ZDFkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApAQCAtMzUs
MTggKzM1LDE5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogbmFtZXNwYWNlIEpTQyB7CiBu
YW1lc3BhY2UgQmluZGluZ3MgewogCi1jb25zdCBDbGFzc0luZm8gUnVudGltZU9iamVjdDo6c19p
bmZvID0geyAiUnVudGltZU9iamVjdCIsICZKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OnNfaW5m
bywgMCwgMCB9OworY29uc3QgQ2xhc3NJbmZvIFJ1bnRpbWVPYmplY3Q6OnNfaW5mbyA9IHsgIlJ1
bnRpbWVPYmplY3QiLCAmSlNOb25GaW5hbE9iamVjdDo6c19pbmZvLCAwLCAwIH07CiAKIFJ1bnRp
bWVPYmplY3Q6OlJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8SW5zdGFuY2U+IGluc3Rh
bmNlKQotICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0
dXJlKQorICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwg
c3RydWN0dXJlKQogICAgICwgbV9pbnN0YW5jZShpbnN0YW5jZSkKIHsKKyAgICBBU1NFUlQoc3Ry
dWN0dXJlLT5nbG9iYWxPYmplY3QoKSA9PSBnbG9iYWxPYmplY3QpOwogICAgIGZpbmlzaENyZWF0
aW9uKGdsb2JhbE9iamVjdCk7CiB9CiAKIHZvaWQgUnVudGltZU9iamVjdDo6ZmluaXNoQ3JlYXRp
b24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKLSAgICBCYXNlOjpmaW5pc2hDcmVh
dGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKKyAgICBCYXNl
OjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSk7CiAgICAgQVNTRVJU
KGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfb2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmpl
Y3QuaAppbmRleCBkOGUwMGZjMzQ3N2E5OTc3ZThhYjQwNzlkYWFjZTQyOWY4YTNmZjU4Li5iMTJl
ODYxMWU1MGIzNzNhM2IwMTYzZDljZTZkMjFiNmE3NWRlZDJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuaApAQCAtMjgsMTQgKzI4LDEzIEBACiAKICNpbmNsdWRlICJCcmlk
Z2VKU0MuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg+Ci0jaW5jbHVkZSA8
cnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiBu
YW1lc3BhY2UgQmluZGluZ3MgewogCi1jbGFzcyBSdW50aW1lT2JqZWN0IDogcHVibGljIEpTT2Jq
ZWN0V2l0aEdsb2JhbE9iamVjdCB7CitjbGFzcyBSdW50aW1lT2JqZWN0IDogcHVibGljIEpTTm9u
RmluYWxPYmplY3QgewogcHVibGljOgotICAgIHR5cGVkZWYgSlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0IEJhc2U7CisgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAKICAgICBzdGF0
aWMgUnVudGltZU9iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8SW5zdGFuY2U+
IGluc3RhbmNlKQogICAgIHsKQEAgLTc1LDcgKzc0LDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgog
ICAgIFJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
LCBQYXNzUmVmUHRyPEluc3RhbmNlPik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2Jh
bE9iamVjdCopOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92
ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBK
U09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogcHJp
dmF0ZToKICAgICBzdGF0aWMgSlNWYWx1ZSBmYWxsYmFja09iamVjdEdldHRlcihFeGVjU3RhdGUq
LCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODE2MzJmN2ZhYzg1
ZTk2ZDliOTM3ZGJkNDkyYjM3ZGM3ODM5YTE2Yi4uY2E3ODkyMTdjYzllMDAwMDZhOWFjM2YyNzMx
NzlmN2Y5NzdmZGFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTA5LTA2ICBP
bGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIEpTT2JqZWN0
V2l0aEdsb2JhbE9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Njc2ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW1vdmUgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IHVzYWdlLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwOgorICAgICAgICAo
V2ViS2l0OjpKU05QT2JqZWN0OjpKU05QT2JqZWN0KToKKyAgICAgICAgKFdlYktpdDo6SlNOUE9i
amVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9KU05QT2JqZWN0Lmg6CisKIDIwMTEtMDktMDUgIE9saXZlciBIdW50ICA8b2xpdmVyQGFw
cGxlLmNvbT4KIAogICAgICAgICBBbiBvYmplY3QncyBzdHJ1Y3R1cmUgc2hvdWxkIHJlZmVyZW5j
ZSB0aGUgZ2xvYmFsIG9iamVjdCByZXNwb25zaWJsZSBmb3IgaXRzIGNyZWF0aW9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9i
amVjdC5jcHAKaW5kZXggNmVkNjlhMTljNjA5YzBhNjM4N2EwYWUwNDIzY2QwZjVkZTU5NWYzNC4u
YmJhZjA0Zjg4ZjI2YzNlZjcwMWY1NmYyMTYwMjA3MWU5MzU3NDZiOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0
LmNwcApAQCAtNDgsMTkgKzQ4LDIwIEBAIHN0YXRpYyBOUElkZW50aWZpZXIgbnBJZGVudGlmaWVy
RnJvbUlkZW50aWZpZXIoY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikKICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8TlBJZGVudGlmaWVyPihJZGVudGlmaWVyUmVwOjpnZXQoaWRlbnRpZmllci51
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOwogfQogCi1jb25zdCBDbGFzc0luZm8gSlNOUE9iamVj
dDo6c19pbmZvID0geyAiTlBPYmplY3QiLCAmSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpzX2lu
Zm8sIDAsIDAgfTsKK2NvbnN0IENsYXNzSW5mbyBKU05QT2JqZWN0OjpzX2luZm8gPSB7ICJOUE9i
amVjdCIsICZKU05vbkZpbmFsT2JqZWN0OjpzX2luZm8sIDAsIDAgfTsKIAogSlNOUE9iamVjdDo6
SlNOUE9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBOUFJ1bnRpbWVPYmplY3RN
YXAqIG9iamVjdE1hcCwgTlBPYmplY3QqIG5wT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
LSAgICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkK
KyAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHN0cnVj
dHVyZSkKICAgICAsIG1fb2JqZWN0TWFwKG9iamVjdE1hcCkKICAgICAsIG1fbnBPYmplY3QobnBP
YmplY3QpCiB7CisgICAgQVNTRVJUKGdsb2JhbE9iamVjdCA9PSBzdHJ1Y3R1cmUtPmdsb2JhbE9i
amVjdCgpKTsKICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QpOwogfQogCiB2b2lkIEpT
TlBPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7
Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGds
b2JhbE9iamVjdCk7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9i
YWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAKICAgICAvLyBXZSBz
aG91bGQgbmV2ZXIgaGF2ZSBhbiBOUEpTT2JqZWN0IGluc2lkZSBhIEpTTlBPYmplY3QuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9i
amVjdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBP
YmplY3QuaAppbmRleCAwYmJkNWI1NjI5ZDdiOWRiYzA4Mjk2NTdiZjQyZDhiZDU5ZGYyNzcxLi5m
MDYxZTlmMzE3MDBlMTAxMTYwYWMyNDEyNGEyOTU0OGQzN2RiMzM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgK
QEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgSlNOUE9iamVjdF9oCiAjZGVmaW5lIEpTTlBPYmpl
Y3RfaAogCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0
Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPYmplY3QuaD4KIAogdHlwZWRlZiB2b2lk
KiBOUElkZW50aWZpZXI7CiBzdHJ1Y3QgTlBPYmplY3Q7CkBAIC0zNyw5ICszNyw5IEBAIGNsYXNz
IE5QUnVudGltZU9iamVjdE1hcDsKICAgICAKIC8vIEpTTlBPYmplY3QgaXMgYSBKU09iamVjdCB0
aGF0IHdyYXBzIGFuIE5QT2JqZWN0LgogCi1jbGFzcyBKU05QT2JqZWN0IDogcHVibGljIEpTQzo6
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IHsKK2NsYXNzIEpTTlBPYmplY3QgOiBwdWJsaWMgSlND
OjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKLSAgICB0eXBlZGVmIEpTQzo6SlNPYmplY3RX
aXRoR2xvYmFsT2JqZWN0IEJhc2U7CisgICAgdHlwZWRlZiBKU0M6OkpTTm9uRmluYWxPYmplY3Qg
QmFzZTsKIAogICAgIHN0YXRpYyBKU05QT2JqZWN0KiBjcmVhdGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIE5QUnVudGltZU9iamVjdE1hcCosIE5QT2JqZWN0Kik7CiAgICAgfkpTTlBPYmplY3QoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106530</attachid>
            <date>2011-09-06 18:29:35 -0700</date>
            <delta_ts>2011-09-07 10:51:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67689-20110906182934.patch</filename>
            <type>text/plain</type>
            <size>86202</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ2MTcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcAppbmRleCA5NTA0YWQ4MGQ4NTNmM2M2NTVm
ODQyOGQ3ZDE2YTY1ZmVjYjgzMDc3Li4xZjcyNzAxYzdmZWJiMjE3NDk4ODlkNDExNDg5OThkZWNm
YWRiYmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuY3BwCkBAIC0zNiwxMCArMzYsMTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAK
LWNvbnN0IENsYXNzSW5mbyBKU0NhbGxiYWNrQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkNhbGxi
YWNrQ29uc3RydWN0b3IiLCAmSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpzX2luZm8sIDAsIDAg
fTsKK2NvbnN0IENsYXNzSW5mbyBKU0NhbGxiYWNrQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkNh
bGxiYWNrQ29uc3RydWN0b3IiLCAmSlNOb25GaW5hbE9iamVjdDo6c19pbmZvLCAwLCAwIH07CiAK
IEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6SlNDYWxsYmFja0NvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0NsYXNzUmVmIGpzQ2xh
c3MsIEpTT2JqZWN0Q2FsbEFzQ29uc3RydWN0b3JDYWxsYmFjayBjYWxsYmFjaykKLSAgICA6IEpT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKKyAgICA6IEpT
Tm9uRmluYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKICAg
ICAsIG1fY2xhc3MoanNDbGFzcykKICAgICAsIG1fY2FsbGJhY2soY2FsbGJhY2spCiB7CkBAIC00
OCw3ICs0OCw3IEBAIEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6SlNDYWxsYmFja0NvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjCiAKIHZvaWQgSlNDYWxsYmFja0Nv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0NsYXNzUmVmIGpzQ2xhc3MpCiB7Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19p
bmZvKSk7CiAgICAgaWYgKG1fY2xhc3MpCiAgICAgICAgIEpTQ2xhc3NSZXRhaW4oanNDbGFzcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1
Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3Iu
aAppbmRleCA1OWE1YzQ0MzAzOGQ3NjUzY2Y4NTMyMGQ4NzVmZGU5YzI5ZDQ3OGYwLi5lNTEyN2Ex
YWQzYmUyNjQ3MWFlMzdmYjdhMjJiOTUyODNmNjg3OTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmgKQEAgLTI3LDEzICsyNywxMyBA
QAogI2RlZmluZSBKU0NhbGxiYWNrQ29uc3RydWN0b3JfaAogCiAjaW5jbHVkZSAiSlNPYmplY3RS
ZWYuaCIKLSNpbmNsdWRlIDxydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oPgorI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIEpT
Q2FsbGJhY2tDb25zdHJ1Y3RvciA6IHB1YmxpYyBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Qgewor
Y2xhc3MgSlNDYWxsYmFja0NvbnN0cnVjdG9yIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qgewog
cHVibGljOgotICAgIHR5cGVkZWYgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IEJhc2U7CisgICAg
dHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAKICAgICBzdGF0aWMgSlNDYWxsYmFja0Nv
bnN0cnVjdG9yKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNDbGFzc1JlZiBjbGFzc1JlZiwgSlNPYmpl
Y3RDYWxsQXNDb25zdHJ1Y3RvckNhbGxiYWNrIGNhbGxiYWNrKSAKICAgICB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmNwcAppbmRleCA2YTc0NjJhOTA0
MGY4Y2ExZDdmYjI0YWI5NTlmZDYwMDM1ODdjYjY0Li42M2I5MTA1NTBjNmUwZWEyNWMyOWI3YjNk
MmIyMWIwNmNjZTdhZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdC5jcHAKQEAgLTMyLDExICszMiwxMSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
QVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdD4pOworQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU0NhbGxiYWNrT2JqZWN0
PEpTTm9uRmluYWxPYmplY3Q+KTsKIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNDYWxsYmFj
a09iamVjdDxKU0dsb2JhbE9iamVjdD4pOwogCiAvLyBEZWZpbmUgdGhlIHR3byB0eXBlcyBvZiBK
U0NhbGxiYWNrT2JqZWN0cyB3ZSBzdXBwb3J0LgotdGVtcGxhdGUgPD4gY29uc3QgQ2xhc3NJbmZv
IEpTQ2FsbGJhY2tPYmplY3Q8SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Pjo6c19pbmZvID0geyAi
Q2FsbGJhY2tPYmplY3QiLCAmSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpzX2luZm8sIDAsIDAg
fTsKK3RlbXBsYXRlIDw+IGNvbnN0IENsYXNzSW5mbyBKU0NhbGxiYWNrT2JqZWN0PEpTTm9uRmlu
YWxPYmplY3Q+OjpzX2luZm8gPSB7ICJDYWxsYmFja09iamVjdCIsICZKU05vbkZpbmFsT2JqZWN0
OjpzX2luZm8sIDAsIDAgfTsKIHRlbXBsYXRlIDw+IGNvbnN0IENsYXNzSW5mbyBKU0NhbGxiYWNr
T2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvID0geyAiQ2FsbGJhY2tHbG9iYWxPYmplY3Qi
LCAmSlNHbG9iYWxPYmplY3Q6OnNfaW5mbywgMCwgMCB9OwogCiB2b2lkIEpTQ2FsbGJhY2tPYmpl
Y3REYXRhOjpmaW5hbGl6ZShIYW5kbGU8VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAppbmRleCAzOTNm
MTNmYzQ3ZmIxNWJmNTJlODJhOTc4OGY0MDFjM2JlNzdiNDA0Li4xMjZmZTVmNWJlYjExNTVmZDUz
YmY0NTI1MzIxZTY5YjQyZTU1MDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3QuaApAQCAtMTE3LDE0ICsxMTcsMTQgQEAgc3RydWN0IEpTQ2FsbGJhY2tP
YmplY3REYXRhIDogV2Vha0hhbmRsZU93bmVyIHsKIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+CiBj
bGFzcyBKU0NhbGxiYWNrT2JqZWN0IDogcHVibGljIFBhcmVudCB7CiBwcm90ZWN0ZWQ6Ci0gICAg
SlNDYWxsYmFja09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSos
IEpTQ2xhc3NSZWYsIHZvaWQqIGRhdGEpOworICAgIEpTQ2FsbGJhY2tPYmplY3QoRXhlY1N0YXRl
KiwgU3RydWN0dXJlKiwgSlNDbGFzc1JlZiwgdm9pZCogZGF0YSk7CiAgICAgSlNDYWxsYmFja09i
amVjdChKU0dsb2JhbERhdGEmLCBKU0NsYXNzUmVmLCBTdHJ1Y3R1cmUqKTsKICAgICAvLyBXZSdk
IGxpa2UgdG8gdXNlIHRoZSBwbGFjZW1lbnQgdmVyc2lvbiBvZiBvcGVyYXRvciBuZXcgZGVmaW5l
ZCBpbiBKU0NlbGwsIGJ1dCAKICAgICAvLyB3ZSBjYW4ndCBiZWNhdXNlIFBhcmVudCBpcyBhIHRl
bXBsYXRlIGFyZ3VtZW50LCBzbyB3ZSBqdXN0IGR1cGxpY2F0ZSB0aGUgc2FtZSAKICAgICAvLyBm
dW5jdGlvbmFsaXR5IGhlcmUuCiAgICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCwgdm9pZCog
cHRyKSB7IHJldHVybiBwdHI7IH0KIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRl
KiwgSlNHbG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSop
OwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oKTsKIAogcHVibGljOgpAQCAtMTMyLDcgKzEzMiw4
IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0NhbGxiYWNrT2JqZWN0KiBjcmVhdGUoRXhlY1N0
YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgSlNDbGFzc1JlZiBjbGFzc1JlZiwgdm9pZCogZGF0YSkKICAgICB7Ci0gICAgICAgIEpT
Q2FsbGJhY2tPYmplY3QqIGNhbGxiYWNrT2JqZWN0ID0gbmV3IChhbGxvY2F0ZUNlbGw8SlNDYWxs
YmFja09iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIEpTQ2FsbGJhY2tPYmplY3QoZXhlYywgZ2xvYmFs
T2JqZWN0LCBzdHJ1Y3R1cmUsIGNsYXNzUmVmLCBkYXRhKTsKKyAgICAgICAgQVNTRVJUKCFzdHJ1
Y3R1cmUtPmdsb2JhbE9iamVjdCgpIHx8IHN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCkgPT0gZ2xv
YmFsT2JqZWN0KTsKKyAgICAgICAgSlNDYWxsYmFja09iamVjdCogY2FsbGJhY2tPYmplY3QgPSBu
ZXcgKGFsbG9jYXRlQ2VsbDxKU0NhbGxiYWNrT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgSlNDYWxs
YmFja09iamVjdChleGVjLCBzdHJ1Y3R1cmUsIGNsYXNzUmVmLCBkYXRhKTsKICAgICAgICAgcmV0
dXJuIGNhbGxiYWNrT2JqZWN0OwogICAgIH0KICAgICBzdGF0aWMgSlNDYWxsYmFja09iamVjdCog
Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDbGFzc1JlZiBjbGFzc1JlZiwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oCmluZGV4IGMzMTIzYmRmNjdlOGQzZjcyMDRhNjcx
ODcyMmMwMzRmYTFhZmI4MDQuLmY2MjdjM2JmYjgwYzZlYWI2NWIzMDJjMTA3MzA5NWFiYjAxYjZm
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVj
dEZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09i
amVjdEZ1bmN0aW9ucy5oCkBAIC01MCwxMSArNTAsMTEgQEAgaW5saW5lIEpTQ2FsbGJhY2tPYmpl
Y3Q8UGFyZW50PiogSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+Ojphc0NhbGxiYWNrT2JqZWN0KEpT
VmEKIH0KIAogdGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KLUpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50
Pjo6SlNDYWxsYmFja09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0NsYXNzUmVmIGpzQ2xhc3MsIHZvaWQq
IGRhdGEpCi0gICAgOiBQYXJlbnQoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCitKU0NhbGxiYWNr
T2JqZWN0PFBhcmVudD46OkpTQ2FsbGJhY2tPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgSlNDbGFzc1JlZiBqc0NsYXNzLCB2b2lkKiBkYXRhKQorICAgIDogUGFy
ZW50KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogICAgICwgbV9jYWxsYmFja09iamVj
dERhdGEoYWRvcHRQdHIobmV3IEpTQ2FsbGJhY2tPYmplY3REYXRhKGRhdGEsIGpzQ2xhc3MpKSkK
IHsKLSAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QpOworICAgIGZpbmlzaENy
ZWF0aW9uKGV4ZWMpOwogfQogCiAvLyBHbG9iYWwgb2JqZWN0IGNvbnN0cnVjdG9yLgpAQCAtNjgs
OSArNjgsOSBAQCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OkpTQ2FsbGJhY2tPYmplY3QoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0NsYXNzUmVmCiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBQ
YXJlbnQ+Ci12b2lkIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6ZmluaXNoQ3JlYXRpb24oRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQordm9pZCBKU0NhbGxi
YWNrT2JqZWN0PFBhcmVudD46OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFs
T2JqZWN0KTsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOwog
ICAgIEFTU0VSVChQYXJlbnQ6OmluaGVyaXRzKCZzX2luZm8pKTsKICAgICBpbml0KGV4ZWMpOwog
fQpAQCAtNTc0LDcgKzU3NCw3IEBAIEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+Ojpz
dGF0aWNGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUKICAgICAgICAgICAg
IGlmIChTdGF0aWNGdW5jdGlvbkVudHJ5KiBlbnRyeSA9IHN0YXRpY0Z1bmN0aW9ucy0+Z2V0KHBy
b3BlcnR5TmFtZS5pbXBsKCkpKSB7CiAgICAgICAgICAgICAgICAgaWYgKEpTT2JqZWN0Q2FsbEFz
RnVuY3Rpb25DYWxsYmFjayBjYWxsQXNGdW5jdGlvbiA9IGVudHJ5LT5jYWxsQXNGdW5jdGlvbikg
ewogICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgSlNPYmplY3QqIG8g
PSBKU0NhbGxiYWNrRnVuY3Rpb246OmNyZWF0ZShleGVjLCBhc0dsb2JhbE9iamVjdCh0aGlzT2Jq
LT5nZXRBbm9ueW1vdXNWYWx1ZSgwKSksIGNhbGxBc0Z1bmN0aW9uLCBwcm9wZXJ0eU5hbWUpOwor
ICAgICAgICAgICAgICAgICAgICBKU09iamVjdCogbyA9IEpTQ2FsbGJhY2tGdW5jdGlvbjo6Y3Jl
YXRlKGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9iamVjdCgpLCBjYWxsQXNGdW5jdGlvbiwgcHJvcGVy
dHlOYW1lKTsKICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+cHV0RGlyZWN0KGV4ZWMtPmds
b2JhbERhdGEoKSwgcHJvcGVydHlOYW1lLCBvLCBlbnRyeS0+YXR0cmlidXRlcyk7CiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBvOwogICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCmluZGV4IGM3MWFkODljOWYwYzg0ZTUzOGQ2NGE1ODRk
ZjgxMmNhOTQ3MTlkYmIuLjE0YTk2MzkwZTlkZTdjYmQxZTUzY2VlN2I4NTViMGY4YmY1MThkMjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcApAQCAtMjUxLDcgKzI1
MSw3IEBAIEpTT2JqZWN0KiBPcGFxdWVKU0NsYXNzOjpwcm90b3R5cGUoRXhlY1N0YXRlKiBleGVj
KQogCiAgICAgaWYgKCFqc0NsYXNzRGF0YS5jYWNoZWRQcm90b3R5cGUpIHsKICAgICAgICAgLy8g
UmVjdXJzaXZlLCBidXQgc2hvdWxkIGJlIGdvb2QgZW5vdWdoIGZvciBvdXIgcHVycG9zZXMKLSAg
ICAgICAganNDbGFzc0RhdGEuY2FjaGVkUHJvdG90eXBlLnNldChleGVjLT5nbG9iYWxEYXRhKCks
IEpTQ2FsbGJhY2tPYmplY3Q8SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Pjo6Y3JlYXRlKGV4ZWMs
IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
LT5jYWxsYmFja09iamVjdFN0cnVjdHVyZSgpLCBwcm90b3R5cGVDbGFzcywgJmpzQ2xhc3NEYXRh
KSwgMCk7IC8vIHNldCBqc0NsYXNzRGF0YSBhcyB0aGUgb2JqZWN0J3MgcHJpdmF0ZSBkYXRhLCBz
byBpdCBjYW4gY2xlYXIgb3VyIHJlZmVyZW5jZSBvbiBkZXN0cnVjdGlvbgorICAgICAgICBqc0Ns
YXNzRGF0YS5jYWNoZWRQcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgSlNDYWxsYmFj
a09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pjo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5jYWxsYmFja09iamVjdFN0
cnVjdHVyZSgpLCBwcm90b3R5cGVDbGFzcywgJmpzQ2xhc3NEYXRhKSwgMCk7IC8vIHNldCBqc0Ns
YXNzRGF0YSBhcyB0aGUgb2JqZWN0J3MgcHJpdmF0ZSBkYXRhLCBzbyBpdCBjYW4gY2xlYXIgb3Vy
IHJlZmVyZW5jZSBvbiBkZXN0cnVjdGlvbgogICAgICAgICBpZiAocGFyZW50Q2xhc3MpIHsKICAg
ICAgICAgICAgIGlmIChKU09iamVjdCogcHJvdG90eXBlID0gcGFyZW50Q2xhc3MtPnByb3RvdHlw
ZShleGVjKSkKICAgICAgICAgICAgICAgICBqc0NsYXNzRGF0YS5jYWNoZWRQcm90b3R5cGUtPnNl
dFByb3RvdHlwZShleGVjLT5nbG9iYWxEYXRhKCksIHByb3RvdHlwZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCmluZGV4IDllZmU2NGZkZTQ0MDQ3OWE3NzFjMDAw
NTQ4NTIxZjYzMTkxYjI2NTcuLmNmMDMxZjcwZTNiMmM4NzQ0YjAwMDA1NTNhMGEyYjYxYTU5ZjJh
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCkBAIC04MSw3
ICs4MSw3IEBAIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZShKU0NvbnRleHRSZWYgY3R4LCBKU0Ns
YXNzUmVmIGpzQ2xhc3MsIHZvaWQqIGRhdGEpCiAgICAgaWYgKCFqc0NsYXNzKQogICAgICAgICBy
ZXR1cm4gdG9SZWYoY29uc3RydWN0RW1wdHlPYmplY3QoZXhlYykpOwogCi0gICAgSlNDYWxsYmFj
a09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+KiBvYmplY3QgPSBKU0NhbGxiYWNrT2Jq
ZWN0PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdD46OmNyZWF0ZShleGVjLCBleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Y2FsbGJhY2tPYmpl
Y3RTdHJ1Y3R1cmUoKSwganNDbGFzcywgZGF0YSk7CisgICAgSlNDYWxsYmFja09iamVjdDxKU05v
bkZpbmFsT2JqZWN0Piogb2JqZWN0ID0gSlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0
Pjo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpLT5jYWxsYmFja09iamVjdFN0cnVjdHVyZSgpLCBqc0NsYXNzLCBkYXRh
KTsKICAgICBpZiAoSlNPYmplY3QqIHByb3RvdHlwZSA9IGpzQ2xhc3MtPnByb3RvdHlwZShleGVj
KSkKICAgICAgICAgb2JqZWN0LT5zZXRQcm90b3R5cGUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm90
b3R5cGUpOwogCkBAIC0zNDIsOCArMzQyLDggQEAgdm9pZCogSlNPYmplY3RHZXRQcml2YXRlKEpT
T2JqZWN0UmVmIG9iamVjdCkKICAgICAKICAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKCZKU0Nh
bGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvKSkKICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5n
ZXRQcml2YXRlKCk7Ci0gICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cygmSlNDYWxsYmFja09iamVj
dDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+OjpzX2luZm8pKQotICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+Kj4oanNP
YmplY3QpLT5nZXRQcml2YXRlKCk7CisgICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cygmSlNDYWxs
YmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pjo6c19pbmZvKSkKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD4qPihqc09iamVjdCkt
PmdldFByaXZhdGUoKTsKICAgICAKICAgICByZXR1cm4gMDsKIH0KQEAgLTM1Niw4ICszNTYsOCBA
QCBib29sIEpTT2JqZWN0U2V0UHJpdmF0ZShKU09iamVjdFJlZiBvYmplY3QsIHZvaWQqIGRhdGEp
CiAgICAgICAgIHN0YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+Kj4o
anNPYmplY3QpLT5zZXRQcml2YXRlKGRhdGEpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
Ci0gICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cygmSlNDYWxsYmFja09iamVjdDxKU09iamVjdFdp
dGhHbG9iYWxPYmplY3Q+OjpzX2luZm8pKSB7Ci0gICAgICAgIHN0YXRpY19jYXN0PEpTQ2FsbGJh
Y2tPYmplY3Q8SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Pio+KGpzT2JqZWN0KS0+c2V0UHJpdmF0
ZShkYXRhKTsKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpT
Tm9uRmluYWxPYmplY3Q+OjpzX2luZm8pKSB7CisgICAgICAgIHN0YXRpY19jYXN0PEpTQ2FsbGJh
Y2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD4qPihqc09iamVjdCktPnNldFByaXZhdGUoZGF0YSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAgICAgCkBAIC0zNzMsOCArMzczLDgg
QEAgSlNWYWx1ZVJlZiBKU09iamVjdEdldFByaXZhdGVQcm9wZXJ0eShKU0NvbnRleHRSZWYgY3R4
LCBKU09iamVjdFJlZiBvYmplY3QsIEpTU3QKICAgICBJZGVudGlmaWVyIG5hbWUocHJvcGVydHlO
YW1lLT5pZGVudGlmaWVyKCZleGVjLT5nbG9iYWxEYXRhKCkpKTsKICAgICBpZiAoanNPYmplY3Qt
PmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvKSkKICAg
ICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVj
dD4qPihqc09iamVjdCktPmdldFByaXZhdGVQcm9wZXJ0eShuYW1lKTsKLSAgICBlbHNlIGlmIChq
c09iamVjdC0+aW5oZXJpdHMoJkpTQ2FsbGJhY2tPYmplY3Q8SlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0Pjo6c19pbmZvKSkKLSAgICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09i
amVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5nZXRQcml2YXRlUHJv
cGVydHkobmFtZSk7CisgICAgZWxzZSBpZiAoanNPYmplY3QtPmluaGVyaXRzKCZKU0NhbGxiYWNr
T2JqZWN0PEpTTm9uRmluYWxPYmplY3Q+OjpzX2luZm8pKQorICAgICAgICByZXN1bHQgPSBzdGF0
aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTTm9uRmluYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5n
ZXRQcml2YXRlUHJvcGVydHkobmFtZSk7CiAgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHJlc3VsdCk7
CiB9CiAKQEAgLTM4OSw4ICszODksOCBAQCBib29sIEpTT2JqZWN0U2V0UHJpdmF0ZVByb3BlcnR5
KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZQogICAgICAg
ICBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pio+KGpzT2JqZWN0
KS0+c2V0UHJpdmF0ZVByb3BlcnR5KGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFtZSwganNWYWx1ZSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBpZiAoanNPYmplY3QtPmluaGVyaXRz
KCZKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdD46OnNfaW5mbykpIHsK
LSAgICAgICAgc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxP
YmplY3Q+Kj4oanNPYmplY3QpLT5zZXRQcml2YXRlUHJvcGVydHkoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBuYW1lLCBqc1ZhbHVlKTsKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKCZKU0NhbGxiYWNr
T2JqZWN0PEpTTm9uRmluYWxPYmplY3Q+OjpzX2luZm8pKSB7CisgICAgICAgIHN0YXRpY19jYXN0
PEpTQ2FsbGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD4qPihqc09iamVjdCktPnNldFByaXZh
dGVQcm9wZXJ0eShleGVjLT5nbG9iYWxEYXRhKCksIG5hbWUsIGpzVmFsdWUpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDA2LDggKzQwNiw4IEBA
IGJvb2wgSlNPYmplY3REZWxldGVQcml2YXRlUHJvcGVydHkoSlNDb250ZXh0UmVmIGN0eCwgSlNP
YmplY3RSZWYgb2JqZWN0LCBKU1N0cmluCiAgICAgICAgIHN0YXRpY19jYXN0PEpTQ2FsbGJhY2tP
YmplY3Q8SlNHbG9iYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5kZWxldGVQcml2YXRlUHJvcGVydHko
bmFtZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBpZiAoanNPYmplY3QtPmlu
aGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdD46OnNfaW5m
bykpIHsKLSAgICAgICAgc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU09iamVjdFdpdGhH
bG9iYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5kZWxldGVQcml2YXRlUHJvcGVydHkobmFtZSk7Cisg
ICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cygmSlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2Jq
ZWN0Pjo6c19pbmZvKSkgeworICAgICAgICBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpT
Tm9uRmluYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5kZWxldGVQcml2YXRlUHJvcGVydHkobmFtZSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcAppbmRleCAxOGJiZDkxZTZhNGY4ODJlZTM3
MmI1YmUzMjE4ZjU0YzlhODEyZDE1Li44MDNjY2Q5MWZlOGNjNjE2NDhhODg4ZTg3ZDUzOGVjZGVk
Y2VlNDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKQEAgLTEz
MSw4ICsxMzEsOCBAQCBib29sIEpTVmFsdWVJc09iamVjdE9mQ2xhc3MoSlNDb250ZXh0UmVmIGN0
eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNDbGFzc1JlZiBqc0NsYQogICAgIGlmIChKU09iamVjdCog
byA9IGpzVmFsdWUuZ2V0T2JqZWN0KCkpIHsKICAgICAgICAgaWYgKG8tPmluaGVyaXRzKCZKU0Nh
bGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvKSkKICAgICAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pio+KG8pLT5pbmhl
cml0cyhqc0NsYXNzKTsKLSAgICAgICAgaWYgKG8tPmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0
PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdD46OnNfaW5mbykpCi0gICAgICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+Kj4o
byktPmluaGVyaXRzKGpzQ2xhc3MpOworICAgICAgICBpZiAoby0+aW5oZXJpdHMoJkpTQ2FsbGJh
Y2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD46OnNfaW5mbykpCisgICAgICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pio+KG8pLT5pbmhl
cml0cyhqc0NsYXNzKTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAK
aW5kZXggMTM5MDBjZjgzMjdiNGYwMjZlMjAzZjRhMTJjYjU4NDY0YzIwM2ExNC4uNDI5MmE2MGJk
OTg0YzEwMThhOTYxODBkOTk4YzFjZGI0NTdjYjU3YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTV2Vha09iamVjdE1hcFJlZlByaXZhdGUuY3BwCkBAIC01Nyw3
ICs1Nyw3IEBAIHZvaWQgSlNXZWFrT2JqZWN0TWFwU2V0KEpTQ29udGV4dFJlZiBjdHgsIEpTV2Vh
a09iamVjdE1hcFJlZiBtYXAsIHZvaWQqIGtleSwgSlNPCiAgICAgSlNPYmplY3QqIG9iaiA9IHRv
SlMob2JqZWN0KTsKICAgICBpZiAoIW9iaikKICAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVChv
YmotPmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvKSB8
fCBvYmotPmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dD46OnNfaW5mbykpOworICAgIEFTU0VSVChvYmotPmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0
PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvKSB8fCBvYmotPmluaGVyaXRzKCZKU0NhbGxiYWNrT2Jq
ZWN0PEpTTm9uRmluYWxPYmplY3Q+OjpzX2luZm8pKTsKICAgICBtYXAtPm1hcCgpLnNldChleGVj
LT5nbG9iYWxEYXRhKCksIGtleSwgb2JqKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDUyMWNkZTJkYmMyMDI4NmRlZDY3Y2Y5YzI0MTI5M2UzNjBhNjU1NzQuLjEw
ZTAyYmM0Y2QzMTQyNzUzZTZjNjJmMzliODJlMmI0OTczODlmZDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTEyNSw3ICsxMjUsNiBAQCBTRVQoSmF2YVNjcmlwdENvcmVf
U09VUkNFUwogICAgIHJ1bnRpbWUvSlNMb2NrLmNwcAogICAgIHJ1bnRpbWUvSlNOb3RBbk9iamVj
dC5jcHAKICAgICBydW50aW1lL0pTT2JqZWN0LmNwcAotICAgIHJ1bnRpbWUvSlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0LmNwcAogICAgIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHAKICAgICBydW50aW1l
L0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCiAgICAgcnVudGltZS9KU1N0YXRpY1Njb3BlT2Jq
ZWN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggYzNjYmY3NGI3ODlhNWVmYWFiOTBl
YTIxYzM0MThkMWRiNmY0ODI3Ny4uNzEyODQxY2Y1YTc4MmQwYjQ4ZTlhMjkwZDM0M2ZlN2QxNDc4
MWIwNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTEgQEAKKzIwMTEtMDkt
MDYgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgSlNP
YmplY3RXaXRoR2xvYmFsT2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NzY4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbW92ZSBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QsIGFuZCB1cGRhdGUg
Y29kZSB0byBzdG9wIHVzaW5nIGFub255bW91cworICAgICAgICBzdG9yYWdlIHRvIGFjY2VzcyB0
aGUgZ2xvYmFsIG9iamVjdCB0aGF0IGEgSlNPYmplY3QgY29tZXMgZnJvbS4gIExhcmdlbHkKKyAg
ICAgICAgbWVjaGFuaWNhbCBjaGFuZ2UgdG8gcmVtb3ZlIHRoZSB1c2Ugb2YgYW5vbnltb3VzIHN0
b3JhZ2UgYW5kIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC4KKworICAgICAgICAqIEFQSS9KU0Nh
bGxiYWNrQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrQ29uc3RydWN0
b3I6OkpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tDb25z
dHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrQ29uc3Ry
dWN0b3IuaDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5jcHA6CisgICAgICAgICog
QVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDo6
Y3JlYXRlKToKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oOgorICAg
ICAgICAoSlNDOjo6OkpTQ2FsbGJhY2tPYmplY3QpOgorICAgICAgICAoSlNDOjo6OmZpbmlzaENy
ZWF0aW9uKToKKyAgICAgICAgKEpTQzo6OjpzdGF0aWNGdW5jdGlvbkdldHRlcik6CisgICAgICAg
ICogQVBJL0pTQ2xhc3NSZWYuY3BwOgorICAgICAgICAoT3BhcXVlSlNDbGFzczo6cHJvdG90eXBl
KToKKyAgICAgICAgKiBBUEkvSlNPYmplY3RSZWYuY3BwOgorICAgICAgICAoSlNPYmplY3RNYWtl
KToKKyAgICAgICAgKEpTT2JqZWN0R2V0UHJpdmF0ZSk6CisgICAgICAgIChKU09iamVjdFNldFBy
aXZhdGUpOgorICAgICAgICAoSlNPYmplY3RHZXRQcml2YXRlUHJvcGVydHkpOgorICAgICAgICAo
SlNPYmplY3RTZXRQcml2YXRlUHJvcGVydHkpOgorICAgICAgICAoSlNPYmplY3REZWxldGVQcml2
YXRlUHJvcGVydHkpOgorICAgICAgICAqIEFQSS9KU1ZhbHVlUmVmLmNwcDoKKyAgICAgICAgKEpT
VmFsdWVJc09iamVjdE9mQ2xhc3MpOgorICAgICAgICAqIEFQSS9KU1dlYWtPYmplY3RNYXBSZWZQ
cml2YXRlLmNwcDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBieXRlY29k
ZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKiBkZmcvREZHUmVwYXRjaC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6ZGZnUmVwYXRjaEdldE1ldGhvZEZhc3QpOgorICAgICAgICAoSlNDOjpERkc6OnRy
eUNhY2hlR2V0TWV0aG9kKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJ
VElubGluZU1ldGhvZHMuaDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0QWxsb2NhdGVKU0Z1bmN0
aW9uKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlND
OjpKSVQ6OnBhdGNoTWV0aG9kQ2FsbFByb3RvKToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3Bw
OgorICAgICAgICAoSlNDOjpERUZJTkVfU1RVQl9GVU5DVElPTik6CisgICAgICAgICogcnVudGlt
ZS9EYXRlUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0ludGVybmFsRnVuY3Rpb24u
Y3BwOgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKToK
KyAgICAgICAgKEpTQzo6SW50ZXJuYWxGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAg
ICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5j
dGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OkpTRnVuY3Rpb24pOgorICAgICAg
ICAoSlNDOjpKU0Z1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9K
U0Z1bmN0aW9uLmg6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmNyZWF0ZSk6CisgICAgICAg
IChKU0M6OkpTRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpyZXNldCk6
CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPTk9i
amVjdDo6SlNPTk9iamVjdCk6CisgICAgICAgIChKU0M6OkpTT05PYmplY3Q6OmZpbmlzaENyZWF0
aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1l
L0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnbG9iYWxPYmplY3QpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oOiBSZW1vdmVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSlNWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzVmFs
aWRDYWxsZWUpOgorICAgICAgICAqIHJ1bnRpbWUvTG9va3VwLmNwcDoKKyAgICAgICAgKEpTQzo6
c2V0VXBTdGF0aWNGdW5jdGlvblNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvTG9va3VwLmg6Cisg
ICAgICAgICogcnVudGltZS9NYXRoT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6TWF0aE9iamVj
dDo6TWF0aE9iamVjdCk6CisgICAgICAgIChKU0M6Ok1hdGhPYmplY3Q6OmZpbmlzaENyZWF0aW9u
KToKKyAgICAgICAgKiBydW50aW1lL01hdGhPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL051
bWJlclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuY3BwOgor
ICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OlJlZ0V4cE9iamVjdCk6CisgICAgICAgIChKU0M6
OlJlZ0V4cE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhw
T2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuY3BwOgorICAgICAgICAoSlND
OjpTdHJ1Y3R1cmU6OlN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuaDoK
KyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1
cmU6Omdsb2JhbE9iamVjdCk6CisKIDIwMTEtMDktMDYgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFw
cGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBmb3Igcjk0NTU5LgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBlNjU2MTMxNjg3MGMw
YmJiYWQ5NTQxMTE5ODYxYWUxNDg1OGVjOWU5Li4xYWU2NjM4ZjYzZDYwYTlmY2RkMmU0NDlkODZk
ZWRhYjYzNTkzOGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQpAQCAtMzQ2LDggKzM0Niw2IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaCBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdC5oIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdFdpdGhHbG9iYWxPYmplY3QuY3BwIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPTk9iamVjdC5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T05PYmplY3QuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5h
bWVJdGVyYXRvci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLmV4cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAK
aW5kZXggNTY4ZTQwZjAyMzY4MmY3NDJlNDYwNjJiYTM4Y2Q1MDRlYWI0OTU2NC4uYjA5NWI4YWE5
MWQyY2UwZWRjYzIxYTAzOTExZWNhM2JlODM0ZGJlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUuZXhwCkBAIC0xMDksOCArMTA5LDcgQEAgX19aTjNKU0MxMElkZW50aWZp
ZXIzYWRkRVBOU185RXhlY1N0YXRlRVBLYwogX19aTjNKU0MxMElkZW50aWZpZXI0ZnJvbUVQTlNf
OUV4ZWNTdGF0ZUVpCiBfX1pOM0pTQzEwSWRlbnRpZmllcjRmcm9tRVBOU185RXhlY1N0YXRlRWoK
IF9fWk4zSlNDMTBJZGVudGlmaWVyOHRvVUludDMyRVJLTlNfN1VTdHJpbmdFUmIKLV9fWk4zSlND
MTBKU0Z1bmN0aW9uMTRmaW5pc2hDcmVhdGlvbkVQTlNfOUV4ZWNTdGF0ZUVQTlNfMTRKU0dsb2Jh
bE9iamVjdEVQTlNfMThGdW5jdGlvbkV4ZWN1dGFibGVFUE5TXzE0U2NvcGVDaGFpbk5vZGVFCi1f
X1pOM0pTQzEwSlNGdW5jdGlvbjE0ZmluaXNoQ3JlYXRpb25FUE5TXzlFeGVjU3RhdGVFUE5TXzE0
SlNHbG9iYWxPYmplY3RFaVJLTlNfMTBJZGVudGlmaWVyRVBOU18xNEV4ZWN1dGFibGVCYXNlRQor
X19aTjNKU0MxMEpTRnVuY3Rpb24xNGZpbmlzaENyZWF0aW9uRVBOU185RXhlY1N0YXRlRWlSS05T
XzEwSWRlbnRpZmllckVQTlNfMTRFeGVjdXRhYmxlQmFzZUUKIF9fWk4zSlNDMTBKU0Z1bmN0aW9u
NG5hbWVFUE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pTQzEwSlNGdW5jdGlvbjZzX2luZm9FCiBfX1pO
M0pTQzEwSlNGdW5jdGlvbkMxRVBOU185RXhlY1N0YXRlRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBO
U185U3RydWN0dXJlRQpAQCAtMjE4LDkgKzIxNyw2IEBAIF9fWk4zSlNDMjNBYnN0cmFjdFNhbXBs
aW5nQ291bnRlcjRkdW1wRXYKIF9fWk4zSlNDMjNvYmplY3RQcm90b0Z1bmNUb1N0cmluZ0VQTlNf
OUV4ZWNTdGF0ZUUKIF9fWk4zSlNDMjNzZXRVcFN0YXRpY0Z1bmN0aW9uU2xvdEVQTlNfOUV4ZWNT
dGF0ZUVQS05TXzlIYXNoRW50cnlFUE5TXzhKU09iamVjdEVSS05TXzEwSWRlbnRpZmllckVSTlNf
MTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzI0RHluYW1pY0dsb2JhbE9iamVjdFNjb3BlQzFFUk5T
XzEySlNHbG9iYWxEYXRhRVBOU18xNEpTR2xvYmFsT2JqZWN0RQotX19aTjNKU0MyNEpTT2JqZWN0
V2l0aEdsb2JhbE9iamVjdDE0ZmluaXNoQ3JlYXRpb25FUk5TXzEySlNHbG9iYWxEYXRhRVBOU18x
NEpTR2xvYmFsT2JqZWN0RQotX19aTjNKU0MyNEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEMyRVBO
U18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRQotX19aTjNKU0MyNEpTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdEMyRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfOVN0cnVjdHVyZUUKIF9fWk4z
SlNDMjRjcmVhdGVTdGFja092ZXJmbG93RXJyb3JFUE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pTQzI1
ZXZhbHVhdGVJbkdsb2JhbENhbGxGcmFtZUVSS05TXzdVU3RyaW5nRVJOU183SlNWYWx1ZUVQTlNf
MTRKU0dsb2JhbE9iamVjdEUKIF9fWk4zSlNDMzVjcmVhdGVJbnRlcnJ1cHRlZEV4ZWN1dGlvbkV4
Y2VwdGlvbkVQTlNfMTJKU0dsb2JhbERhdGFFCkBAIC0zNDMsNyArMzM5LDcgQEAgX19aTjNKU0M5
U3RydWN0dXJlMjhhZGRQcm9wZXJ0eVdpdGhvdXRUcmFuc2l0aW9uRVJOU18xMkpTR2xvYmFsRGF0
YUVSS05TXzEwSWRlbnQKIF9fWk4zSlNDOVN0cnVjdHVyZTNnZXRFUk5TXzEySlNHbG9iYWxEYXRh
RVBOM1dURjEwU3RyaW5nSW1wbEVSalJQTlNfNkpTQ2VsbEUKIF9fWk4zSlNDOVN0cnVjdHVyZTQw
YWRkUHJvcGVydHlUcmFuc2l0aW9uVG9FeGlzdGluZ1N0cnVjdHVyZUVQUzBfUktOU18xMElkZW50
aWZpZXJFalBOU182SlNDZWxsRVJtCiBfX1pOM0pTQzlTdHJ1Y3R1cmU2c19pbmZvRQotX19aTjNK
U0M5U3RydWN0dXJlQzFFUk5TXzEySlNHbG9iYWxEYXRhRU5TXzdKU1ZhbHVlRVJLTlNfOFR5cGVJ
bmZvRWpQS05TXzlDbGFzc0luZm9FCitfX1pOM0pTQzlTdHJ1Y3R1cmVDMUVSTlNfMTJKU0dsb2Jh
bERhdGFFUE5TXzE0SlNHbG9iYWxPYmplY3RFTlNfN0pTVmFsdWVFUktOU184VHlwZUluZm9FalBL
TlNfOUNsYXNzSW5mb0UKIF9fWk4zSlNDOVN0cnVjdHVyZUQxRXYKIF9fWk4zSlNDOWNvbnN0cnVj
dEVQTlNfOUV4ZWNTdGF0ZUVOU183SlNWYWx1ZUVOU18xM0NvbnN0cnVjdFR5cGVFUktOU18xM0Nv
bnN0cnVjdERhdGFFUktOU183QXJnTGlzdEUKIF9fWk4zSlNDZXFFUktOU183VVN0cmluZ0VQS2MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKaW5kZXggNjcxNGRmMTM1
OThmMzM5MmNmMTBlNzkwMmQ2OWZhNThmMDRkZjA4NC4uZjQ0YzRmN2E2Y2FjOTlmM2FiZjcyNTE2
YmFiNTFjMjk4ZWFlZDQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLmd5cGkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lmd5cGkKQEAgLTg2LDcgKzg2LDYgQEAKICAgICAgICAgICAgICdydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmgnLAogICAgICAgICAgICAgJ3J1bnRpbWUvSlNMb2NrLmgnLAogICAgICAgICAgICAgJ3J1
bnRpbWUvSlNPYmplY3QuaCcsCi0gICAgICAgICAgICAncnVudGltZS9KU09iamVjdFdpdGhHbG9i
YWxPYmplY3QuaCcsCiAgICAgICAgICAgICAncnVudGltZS9KU1N0cmluZy5oJywKICAgICAgICAg
ICAgICdydW50aW1lL0pTVHlwZS5oJywKICAgICAgICAgICAgICdydW50aW1lL0pTVHlwZUluZm8u
aCcsCkBAIC01MjgsNyArNTI3LDYgQEAKICAgICAgICAgICAgICdydW50aW1lL0pTT05PYmplY3Qu
Y3BwJywKICAgICAgICAgICAgICdydW50aW1lL0pTT05PYmplY3QuaCcsCiAgICAgICAgICAgICAn
cnVudGltZS9KU09iamVjdC5jcHAnLAotICAgICAgICAgICAgJ3J1bnRpbWUvSlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0LmNwcCcsCiAgICAgICAgICAgICAncnVudGltZS9KU1Byb3BlcnR5TmFtZUl0
ZXJhdG9yLmNwcCcsCiAgICAgICAgICAgICAncnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9y
LmgnLAogICAgICAgICAgICAgJ3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHAnLApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnBybyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5wcm8KaW5kZXggODFmZmVmZDdkZGZlODJj
NjFhYjc1ZDM0ZjE5ZWQyNWM4ZTA3Nzk5MC4uMGQwODExMzhhMWYzMzcwZGRjYzljMTQ0ZGNlZmQw
OTQ5ZWI1ZDJhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnBybworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUucHJvCkBA
IC0xNTYsNyArMTU2LDYgQEAgU09VUkNFUyArPSBcCiAgICAgcnVudGltZS9KU0xvY2suY3BwIFwK
ICAgICBydW50aW1lL0pTTm90QW5PYmplY3QuY3BwIFwKICAgICBydW50aW1lL0pTT2JqZWN0LmNw
cCBcCi0gICAgcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuY3BwIFwKICAgICBydW50
aW1lL0pTT05PYmplY3QuY3BwIFwKICAgICBydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3Iu
Y3BwIFwKICAgICBydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZGVmIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKaW5kZXggOTM2ODFi
NzViNmRjZDMzMjc5MzEwNmUyOWVmNzIwY2UwZjJlZDMzYi4uODhjZGE2M2FlNmQ5YTA0OWUyMTRm
MDI1YTI1NjBiNDI5OGU3NjQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKQEAgLTEyLDggKzEyLDYgQEAgRVhQT1JUUwogICAgID8/
MEpTQnl0ZUFycmF5QEpTQ0BAQUFFQFBBVkV4ZWNTdGF0ZUAxQFBBVlN0cnVjdHVyZUAxQFBBVkJ5
dGVBcnJheUBXVEZAQEBaCiAgICAgPz8wSlNGdW5jdGlvbkBKU0NAQEFBRUBQQVZFeGVjU3RhdGVA
MUBQQVZKU0dsb2JhbE9iamVjdEAxQFBBVlN0cnVjdHVyZUAxQEBaCiAgICAgPz8wSlNMb2NrQEpT
Q0BAUUFFQFBBVkV4ZWNTdGF0ZUAxQEBaCi0gICAgPz8wSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0
QEpTQ0BASUFFQFBBVkpTR2xvYmFsT2JqZWN0QDFAUEFWU3RydWN0dXJlQDFAQFoKLSAgICA/PzBK
U09iamVjdFdpdGhHbG9iYWxPYmplY3RASlNDQEBJQUVAQUFWSlNHbG9iYWxEYXRhQDFAUEFWU3Ry
dWN0dXJlQDFAQFoKICAgICA/PzBNRDVAV1RGQEBRQUVAWFoKICAgICA/PzBNdXRleEBXVEZAQFFB
RUBYWgogICAgID8/MFJlZkNvdW50ZWRMZWFrQ291bnRlckBXVEZAQFFBRUBQQkRAWgpAQCAtMTc4
LDcgKzE3Niw2IEBAIEVYUE9SVFMKICAgICA/ZmluaXNoQ3JlYXRpb25ASlNBcnJheUBKU0NAQElB
RVhBQVZKU0dsb2JhbERhdGFAMkBAWgogICAgID9maW5pc2hDcmVhdGlvbkBKU0FycmF5QEpTQ0BA
SUFFWEFBVkpTR2xvYmFsRGF0YUAyQEFCVkFyZ0xpc3RAMkBAWgogICAgID9maW5pc2hDcmVhdGlv
bkBKU0Z1bmN0aW9uQEpTQ0BASUFFWFBBVkV4ZWNTdGF0ZUAyQFBBVkpTR2xvYmFsT2JqZWN0QDJA
SEFCVklkZW50aWZpZXJAMkBQQVZFeGVjdXRhYmxlQmFzZUAyQEBaCi0gICAgP2ZpbmlzaENyZWF0
aW9uQEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEBKU0NAQElBRVhBQVZKU0dsb2JhbERhdGFAMkBQ
QVZKU0dsb2JhbE9iamVjdEAyQEBaCiAgICAgP2ZvY3VzQFByb2ZpbGVASlNDQEBRQUVYUEJWUHJv
ZmlsZU5vZGVAMkBAWgogICAgID9mcm9tQElkZW50aWZpZXJASlNDQEBTQT9BVjEyQFBBVkV4ZWNT
dGF0ZUAyQEhAWgogICAgID9mcm9tQElkZW50aWZpZXJASlNDQEBTQT9BVjEyQFBBVkV4ZWNTdGF0
ZUAyQElAWgpAQCAtMjE4LDcgKzIxNSw2IEBAIEVYUE9SVFMKICAgICA/Z2V0VUludDMyQEpTQ2Vs
bEBKU0NAQFVCRV9OQUFJQFoKICAgICA/Z2V0dGVyQFByb3BlcnR5RGVzY3JpcHRvckBKU0NAQFFC
RT9BVkpTVmFsdWVAMkBYWgogICAgID9nbG9iYWxFeGVjQEpTR2xvYmFsT2JqZWN0QEpTQ0BAUUFF
UEFWRXhlY1N0YXRlQDJAWFoKLSAgICA/Z2xvYmFsT2JqZWN0QEpTT2JqZWN0V2l0aEdsb2JhbE9i
amVjdEBKU0NAQFFCRVBBVkpTR2xvYmFsT2JqZWN0QDJAWFoKICAgICA/Z2xvYmFsT2JqZWN0Q291
bnRASGVhcEBKU0NAQFFBRUlYWgogICAgID9ncm93QEhhbmRsZUhlYXBASlNDQEBBQUVYWFoKICAg
ICA/aGFzSW5zdGFuY2VASlNPYmplY3RASlNDQEBVQUVfTlBBVkV4ZWNTdGF0ZUAyQFZKU1ZhbHVl
QDJAMUBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
dmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvaiBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmNwcm9qCmluZGV4IDYyNWIwNDI4OTU4YzMwNWZlNDUxYzJiNWYwNjgwODFiNTljOWFk
M2MuLjc1MDJlMGI1YjdhZDgxNDlmYzJkMmY5MWY2YTY3NTAyYzEzYjg3MTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCkBA
IC04NDYsMTQgKzg0Niw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXC4uXHJ1bnRpbWVcSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcCIKLQkJ
CQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccnVudGlt
ZVxKU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8Rmls
ZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccnVudGltZVxKU09OT2JqZWN0LmNwcCIKIAkJCQk+
CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk1Njk3ZmExYTdi
NDZmOGQ5NWQwYjNmMWI1ODU1MThjMTk5NTU0YzcuLjlkZDQyOGVhYzVhMWQ5ZTIzZDEwMGI3M2Zl
YzE5MjM3ODRiYTdkYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MTUsOCAr
NDE1LDYgQEAKIAkJQTc2NkI0NEYwRUU4RENEMTAwOTUxOENBIC8qIEV4ZWN1dGFibGVBbGxvY2F0
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjQ4
REI1MEVFNzRDRkMwMERDQkRCNiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc2QzUxNzYxMTgyNzQ4RDAw
NzE1QjA1IC8qIEpTSW50ZXJmYWNlSklULmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNzZDNTE3NDExODI3NDhEMDA3MTVCMDUgLyogSlNJbnRlcmZhY2VK
SVQuaCAqLzsgfTsKIAkJQTc2RjU0QTMxM0IyOEFBQjAwRUYyQkNFIC8qIEpJVFdyaXRlQmFycmll
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc2RjU0
QTIxM0IyOEFBQjAwRUYyQkNFIC8qIEpJVFdyaXRlQmFycmllci5oICovOyB9OwotCQlBNzgzQTBE
MTExQTM2RENBMDA1NjNEMjAgLyogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzgzQTBEMDExQTM2RENBMDA1
NjNEMjAgLyogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTc4M0EyQUIxMUE1QkU4NDAwNTYzRDIwIC8q
IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNzgzQTJBQTExQTVCRTg0MDA1NjNEMjAgLyogSlNPYmplY3RX
aXRoR2xvYmFsT2JqZWN0LmNwcCAqLzsgfTsKIAkJQTc4NEEyNjExMUQxNjYyMjAwNTc3NkFDIC8q
IEFTVEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3QTdFRTc0MTFCOThCOEQwMDY1QTE0RiAvKiBBU1RCdWlsZGVyLmggKi87IH07CiAJCUE3
ODRBMjYyMTFEMTY2MjIwMDU3NzZBQyAvKiBKU1BhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0E3RUU3NTExQjk4QjhEMDA2NUExNEYgLyog
SlNQYXJzZXIuY3BwICovOyB9OwogCQlBNzg0QTI2MzExRDE2NjIyMDA1Nzc2QUMgLyogSlNQYXJz
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QTdF
RTc2MTFCOThCOEQwMDY1QTE0RiAvKiBKU1BhcnNlci5oICovOyB9OwpAQCAtMTE4MSw4ICsxMTc5
LDYgQEAKIAkJQTc1NzA2REQxMThBMkJDRjAwNTdGODhGIC8qIEpJVEFyaXRobWV0aWMzMl82NC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKSVRBcml0aG1ldGljMzJf
NjQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzZDNTE3NDExODI3NDhEMDA3
MTVCMDUgLyogSlNJbnRlcmZhY2VKSVQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNJbnRlcmZhY2VKSVQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc2RjU0
QTIxM0IyOEFBQjAwRUYyQkNFIC8qIEpJVFdyaXRlQmFycmllci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKSVRXcml0ZUJhcnJpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQTc4M0EwRDAxMUEzNkRDQTAwNTYzRDIwIC8qIEpTT2JqZWN0V2l0aEdsb2JhbE9i
amVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU09iamVjdFdpdGhHbG9i
YWxPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTc4M0EyQUExMUE1QkU4
NDAwNTYzRDIwIC8qIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzkxRUYyNjBGMTFFMDc5MDBBRTFGNjggLyogSlNC
eXRlQXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNCeXRlQXJyYXku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc5MUVGMjcwRjExRTA3OTAwQUUxRjY4
IC8qIEpTQnl0ZUFycmF5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTQnl0ZUFycmF5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc5RURCMDgx
MTUzMUNENjAwMTlFOTEyIC8qIEpTT2JqZWN0UmVmUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU09iamVjdFJlZlByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTIwMzQsOCArMjAzMCw2IEBACiAJCQkJQTcyNzAwNzcwREFDNjA1NjAwRTU0
OEQ3IC8qIEpTTm90QW5PYmplY3QuaCAqLywKIAkJCQlCQzIyQTM5ODBFMTZFMTQ4MDBBRjIxQzgg
LyogSlNPYmplY3QuY3BwICovLAogCQkJCUJDMjJBMzk5MEUxNkUxNDgwMEFGMjFDOCAvKiBKU09i
amVjdC5oICovLAotCQkJCUE3ODNBMkFBMTFBNUJFODQwMDU2M0QyMCAvKiBKU09iamVjdFdpdGhH
bG9iYWxPYmplY3QuY3BwICovLAotCQkJCUE3ODNBMEQwMTFBMzZEQ0EwMDU2M0QyMCAvKiBKU09i
amVjdFdpdGhHbG9iYWxPYmplY3QuaCAqLywKIAkJCQlBN0Y5OTM1RTBGRDczMjUxMDBBMEIyRDAg
LyogSlNPTk9iamVjdC5jcHAgKi8sCiAJCQkJQTdGOTkzNUQwRkQ3MzI1MTAwQTBCMkQwIC8qIEpT
T05PYmplY3QuaCAqLywKIAkJCQlBNzI3RkY2NjBEQTMwNTNCMDBFNTQ4RDcgLyogSlNQcm9wZXJ0
eU5hbWVJdGVyYXRvci5jcHAgKi8sCkBAIC0yNTE4LDcgKzI1MTIsNiBAQAogCQkJCUJDMThDNDI0
MEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU09iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0
MjUwRTE2RjVDRDAwQjM0NDYwIC8qIEpTT2JqZWN0UmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NzI4MEEyODExNTU3RTMwMDBENTY5NTcgLyogSlNPYmplY3RSZWZQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlBNzgzQTBEMTExQTM2RENBMDA1NjNEMjAgLyogSlNPYmplY3RXaXRoR2xvYmFs
T2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Y5OTM1RjBGRDczMjUxMDBBMEIyRDAgLyog
SlNPTk9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4N0NEQjkxMDcxMkFENDAwMDYxNENG
IC8qIEpTT05PYmplY3QubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzg0QTI2MzExRDE2NjIy
MDA1Nzc2QUMgLyogSlNQYXJzZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzE0Myw3ICszMTM2LDYg
QEAKIAkJCQlBNzI3MDA5MDBEQUM2QkJDMDBFNTQ4RDcgLyogSlNOb3RBbk9iamVjdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxNDdGMzlENDEwN0VDMzc2MDA0MjdBNDggLyogSlNPYmplY3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ4MkI3RTQwQTQzMDc2MDAwNTE3Q0ZDIC8qIEpTT2JqZWN0
UmVmLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE3ODNBMkFCMTFBNUJFODQwMDU2M0QyMCAvKiBK
U09iamVjdFdpdGhHbG9iYWxPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdGOTkzNjAw
RkQ3MzI1MTAwQTBCMkQwIC8qIEpTT05PYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc4
NEEyNjIxMUQxNjYyMjAwNTc3NkFDIC8qIEpTUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTk1RjZFNjk1MEU1QjVGOTcwMDkxRTg2MCAvKiBKU1Byb2ZpbGVyUHJpdmF0ZS5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAppbmRl
eCA4MDhhMDZiMzc2ZmJlYjhmYjBlMDk0NDE5OTU0YmFlYzAyNTgyM2NlLi42YzBkNmE3YjljYTcy
NDhkNDE2ODgxMjZhMDBhOTI2ZDNjNGE4MTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5oCkBAIC0xNTYsNyArMTU2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIEpJVFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IGNhY2hlZFByb3RvdHlwZVN0cnVjdHVy
ZTsKICAgICAgICAgLy8gV2UnZCBsaWtlIHRoaXMgdG8gYWN0dWFsbHkgYmUgSlNGdW5jdGlvbiwg
YnV0IEludGVybmFsRnVuY3Rpb24gYW5kIEpTRnVuY3Rpb24KICAgICAgICAgLy8gZG9uJ3QgaGF2
ZSBhIGNvbW1vbiBwYXJlbnQgY2xhc3MgYW5kIHdlIGFsbG93IHNwZWNpYWxpc2F0aW9uIG9uIGJv
dGgKLSAgICAgICAgSklUV3JpdGVCYXJyaWVyPEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdD4gY2Fj
aGVkRnVuY3Rpb247CisgICAgICAgIEpJVFdyaXRlQmFycmllcjxKU09iamVjdD4gY2FjaGVkRnVu
Y3Rpb247CiAgICAgICAgIEpJVFdyaXRlQmFycmllcjxKU09iamVjdD4gY2FjaGVkUHJvdG90eXBl
OwogICAgICAgICBib29sIHNlZW47CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUmVwYXRjaC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1JlcGF0Y2guY3BwCmluZGV4IDg5NTJlMzcyYTdiNmQ5YzdjMzI3ZDAyZmFjZTkzNDk4Mzc5ZTVj
Y2UuLjQxZGFmY2FmNDQyNjhlNzlmZjhiNTBjZTZmZjYzM2Q1OTRiMjE0MDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVwYXRjaC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdSZXBhdGNoLmNwcApAQCAtMjQ1LDcgKzI0NSw3IEBAIHZvaWQg
ZGZnUmVwYXRjaEdldEJ5SUQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29u
c3QgSWRlbnRpZmllciYgcHJvCiAgICAgICAgIGRmZ1JlcGF0Y2hDYWxsKGV4ZWMtPmNvZGVCbG9j
aygpLCBzdHViSW5mby5jYWxsUmV0dXJuTG9jYXRpb24sIG9wZXJhdGlvbkdldEJ5SWQpOwogfQog
Ci1zdGF0aWMgdm9pZCBkZmdSZXBhdGNoR2V0TWV0aG9kRmFzdChKU0dsb2JhbERhdGEqIGdsb2Jh
bERhdGEsIENvZGVCbG9jayogY29kZUJsb2NrLCBNZXRob2RDYWxsTGlua0luZm8mIG1ldGhvZElu
Zm8sIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCogY2FsbGVlLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgSlNPYmplY3QqIHNsb3RCYXNlT2JqZWN0KQorc3RhdGljIHZvaWQgZGZnUmVwYXRjaEdldE1l
dGhvZEZhc3QoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywg
TWV0aG9kQ2FsbExpbmtJbmZvJiBtZXRob2RJbmZvLCBKU09iamVjdCogY2FsbGVlLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgSlNPYmplY3QqIHNsb3RCYXNlT2JqZWN0KQogewogICAgIFNjcmlwdEV4
ZWN1dGFibGUqIG93bmVyID0gY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKTsKICAgICAKQEAg
LTI3NCw3ICsyNzQsNyBAQCBzdGF0aWMgYm9vbCB0cnlDYWNoZUdldE1ldGhvZChFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVudGlmaQogICAgICAgICAmJiAoc2xv
dEJhc2VPYmplY3QgPSBhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKS0+Z2V0UHJvcGVydHlTcGVj
aWZpY1ZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSwgc3BlY2lmaWMpCiAgICAgICAgICYmIHNwZWNp
ZmljKSB7CiAgICAgICAgIAotICAgICAgICBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QqIGNhbGxl
ZSA9IChKU09iamVjdFdpdGhHbG9iYWxPYmplY3QqKXNwZWNpZmljOworICAgICAgICBKU09iamVj
dCogY2FsbGVlID0gYXNPYmplY3Qoc3BlY2lmaWMpOwogICAgICAgICAKICAgICAgICAgLy8gU2lu
Y2Ugd2UncmUgYWNjZXNzaW5nIGEgcHJvdG90eXBlIGluIGEgbG9vcCwgaXQncyBhIGdvb2QgYmV0
IHRoYXQgaXQKICAgICAgICAgLy8gc2hvdWxkIG5vdCBiZSB0cmVhdGVkIGFzIGEgZGljdGlvbmFy
eS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDhlOTE5OTZiODdiZWI1ZDcyZTBlMjg3MjQ4
YzBkYzE4Nzk3MzYzZGIuLjM3MTljZGJjMjU1YzJhZTA5MThlNWE3YmUwNDhiZjJjZDczOGI5NWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtMjM5LDcgKzIzOSw3IEBAIG5hbWVzcGFjZSBK
U0MgewogCiAgICAgICAgIHN0YXRpYyB2b2lkIHBhdGNoR2V0QnlJZFNlbGYoQ29kZUJsb2NrKiBj
b2RlYmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvKiwgU3RydWN0dXJlKiwgc2l6ZV90IGNhY2hlZE9m
ZnNldCwgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKTsKICAgICAgICAgc3RhdGljIHZv
aWQgcGF0Y2hQdXRCeUlkUmVwbGFjZShDb2RlQmxvY2sqIGNvZGVibG9jaywgU3RydWN0dXJlU3R1
YkluZm8qLCBTdHJ1Y3R1cmUqLCBzaXplX3QgY2FjaGVkT2Zmc2V0LCBSZXR1cm5BZGRyZXNzUHRy
IHJldHVybkFkZHJlc3MsIGJvb2wgZGlyZWN0KTsKLSAgICAgICAgc3RhdGljIHZvaWQgcGF0Y2hN
ZXRob2RDYWxsUHJvdG8oSlNHbG9iYWxEYXRhJiwgQ29kZUJsb2NrKiBjb2RlYmxvY2ssIE1ldGhv
ZENhbGxMaW5rSW5mbyYsIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEpT
T2JqZWN0KiwgUmV0dXJuQWRkcmVzc1B0cik7CisgICAgICAgIHN0YXRpYyB2b2lkIHBhdGNoTWV0
aG9kQ2FsbFByb3RvKEpTR2xvYmFsRGF0YSYsIENvZGVCbG9jayogY29kZWJsb2NrLCBNZXRob2RD
YWxsTGlua0luZm8mLCBKU09iamVjdCosIFN0cnVjdHVyZSosIEpTT2JqZWN0KiwgUmV0dXJuQWRk
cmVzc1B0cik7CiAKICAgICAgICAgc3RhdGljIHZvaWQgY29tcGlsZVBhdGNoR2V0QXJyYXlMZW5n
dGgoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgUmV0dXJu
QWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQogICAgICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oCmluZGV4IDExY2IwMGVlYjg3MjcxNzYxZjI5OTA0
ZjdmMzUwYmZmNWQxNjExMGIuLjc3ZWRjMmVjODAzZjI0YmY1ZGFiMzk5ZmY4MmE1NjZiNjdkYmU0
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9k
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oCkBA
IC00MTgsMTQgKzQxOCw2IEBAIGlubGluZSB2b2lkIEpJVDo6ZW1pdEFsbG9jYXRlSlNGdW5jdGlv
bihGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIFJlZ2lzdGVyCiAgICAgLy8gc3RvcmUg
dGhlIGZ1bmN0aW9uJ3MgZXhlY3V0YWJsZSBtZW1iZXIKICAgICBzdG9yZVB0cihUcnVzdGVkSW1t
UHRyKGV4ZWN1dGFibGUpLCBBZGRyZXNzKHJlc3VsdCwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVj
dXRhYmxlKCkpKTsKIAotICAgIAotICAgIC8vIHN0b3JlIHRoZSBmdW5jdGlvbidzIGdsb2JhbCBv
YmplY3QKLSAgICBpbnQgZ2xvYmFsT2JqZWN0T2Zmc2V0ID0gc2l6ZW9mKEpTVmFsdWUpICogSlNG
dW5jdGlvbjo6R2xvYmFsT2JqZWN0U2xvdDsKLSAgICBzdG9yZVB0cihUcnVzdGVkSW1tUHRyKG1f
Y29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKSksIEFkZHJlc3MocmVnVDEsIGdsb2JhbE9iamVjdE9m
ZnNldCArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSkpOwotI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2Vs
bFRhZyksIEFkZHJlc3MocmVnVDEsIGdsb2JhbE9iamVjdE9mZnNldCArIE9CSkVDVF9PRkZTRVRP
RihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSk7Ci0jZW5kaWYKLQogICAgIC8vIHN0b3JlIHRoZSBm
dW5jdGlvbidzIG5hbWUKICAgICBBU1NFUlQoZXhlY3V0YWJsZS0+bmFtZVZhbHVlKCkpOwogICAg
IGludCBmdW5jdGlvbk5hbWVPZmZzZXQgPSBzaXplb2YoSlNWYWx1ZSkgKiBtX2NvZGVCbG9jay0+
Z2xvYmFsT2JqZWN0KCktPmZ1bmN0aW9uTmFtZU9mZnNldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCAxMzRmYWExMGZmMjJlMmUy
NGVmNWEzYTVmMWU1NTQ5MmY2NDRhYWRiLi42MmNmOTJlZjg5Yjg1NGJhNjQxYjlhYTM1YWIzZjdl
YTIxNmM0MzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3Bl
cnR5QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5
QWNjZXNzLmNwcApAQCAtMTA0Nyw3ICsxMDQ3LDcgQEAgdm9pZCBKSVQ6OnRlc3RQcm90b3R5cGUo
SlNWYWx1ZSBwcm90b3R5cGUsIEp1bXBMaXN0JiBmYWlsdXJlQ2FzZXMpCiAgICAgZmFpbHVyZUNh
c2VzLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWwsIEFkZHJlc3MocmVnVDMsIEpTQ2VsbDo6c3Ry
dWN0dXJlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tUHRyKHByb3RvdHlwZS5hc0NlbGwoKS0+c3RydWN0
dXJlKCkpKSk7CiB9CiAKLXZvaWQgSklUOjpwYXRjaE1ldGhvZENhbGxQcm90byhKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIENvZGVCbG9jayogY29kZUJsb2NrLCBNZXRob2RDYWxsTGlua0luZm8m
IG1ldGhvZENhbGxMaW5rSW5mbywgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KiBjYWxsZWUsIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBKU09iamVjdCogcHJvdG8sIFJldHVybkFkZHJlc3NQdHIgcmV0
dXJuQWRkcmVzcykKK3ZvaWQgSklUOjpwYXRjaE1ldGhvZENhbGxQcm90byhKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIENvZGVCbG9jayogY29kZUJsb2NrLCBNZXRob2RDYWxsTGlua0luZm8mIG1l
dGhvZENhbGxMaW5rSW5mbywgSlNPYmplY3QqIGNhbGxlZSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEpTT2JqZWN0KiBwcm90bywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQogewogICAg
IFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihjb2RlQmxvY2spOwogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAppbmRleCBiZTFkYzBmMTNjZDYwMWYwMjU3YjIwZjg1
NGUyZWY0ZTA2NmM3YjJmLi5lYzI4NTIyMmM5ODY4ZjIzZjc5NDM2YWJiNTM1YWFkZTA4MTY0OWNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcApAQCAtMTUyNiw3ICsxNTI2
LDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFsdWUsIG9wX2dldF9ieV9pZF9t
ZXRob2RfY2hlY2spCiAgICAgICAgICYmIHNwZWNpZmljCiAgICAgICAgICkgewogCi0gICAgICAg
IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCogY2FsbGVlID0gKEpTT2JqZWN0V2l0aEdsb2JhbE9i
amVjdCopc3BlY2lmaWM7CisgICAgICAgIEpTT2JqZWN0KiBjYWxsZWUgPSBhc09iamVjdChzcGVj
aWZpYyk7CiAKICAgICAgICAgLy8gU2luY2Ugd2UncmUgYWNjZXNzaW5nIGEgcHJvdG90eXBlIGlu
IGEgbG9vcCwgaXQncyBhIGdvb2QgYmV0IHRoYXQgaXQKICAgICAgICAgLy8gc2hvdWxkIG5vdCBi
ZSB0cmVhdGVkIGFzIGEgZGljdGlvbmFyeS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKaW5kZXggZGRhMjk0MTYzODQxY2RlZGM1NGY3Njk1N2Q0
YWM4NGUzMGZhN2UyMS4uNDAzNDE1YjVhYjhlODU0MmMzM2NhNmIwNjM3YTZlNmRhNzFlN2FkZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAK
QEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJEYXRlQ29udmVyc2lvbi5oIgogI2luY2x1ZGUg
IkRhdGVJbnN0YW5jZS5oIgogI2luY2x1ZGUgIkVycm9yLmgiCisjaW5jbHVkZSAiSlNHbG9iYWxP
YmplY3QuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTU3RyaW5nQnVpbGRl
ci5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAppbmRleCAwN2MwZjdmNWJmNjVhM2U3NTZiNTFj
MjQwMzdjYWNjMzNjNDJlNjIyLi4xMGFhYTYwZWU3YzhlYzM0ZjZmNDAzODkyNGQyODAzODFhOWYz
MGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1
bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1
bmN0aW9uLmNwcApAQCAtMzQsMjIgKzM0LDIyIEBAIHZvaWQgSW50ZXJuYWxGdW5jdGlvbjo6dnRh
YmxlQW5jaG9yKCkge30KIAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChJbnRlcm5hbEZ1bmN0
aW9uKTsKIAotY29uc3QgQ2xhc3NJbmZvIEludGVybmFsRnVuY3Rpb246OnNfaW5mbyA9IHsgIkZ1
bmN0aW9uIiwgJkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6c19pbmZvLCAwLCAwIH07Citjb25z
dCBDbGFzc0luZm8gSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSlNO
b25GaW5hbE9iamVjdDo6c19pbmZvLCAwLCAwIH07CiAKIEludGVybmFsRnVuY3Rpb246OkludGVy
bmFsRnVuY3Rpb24oVlB0clN0ZWFsaW5nSGFja1R5cGUpCi0gICAgOiBKU09iamVjdFdpdGhHbG9i
YWxPYmplY3QoVlB0clN0ZWFsaW5nSGFjaykKKyAgICA6IEpTTm9uRmluYWxPYmplY3QoVlB0clN0
ZWFsaW5nSGFjaykKIHsKIH0KIAotSW50ZXJuYWxGdW5jdGlvbjo6SW50ZXJuYWxGdW5jdGlvbihK
U0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKQotICAgIDogSlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQorSW50ZXJuYWxGdW5j
dGlvbjo6SW50ZXJuYWxGdW5jdGlvbihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIEpTR2xvYmFs
T2JqZWN0KiwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElkZW50aWZpZXImIG5hbWUpCisg
ICAgOiBKU05vbkZpbmFsT2JqZWN0KCpnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiB7Ci0gICAgZmlu
aXNoQ3JlYXRpb24oKmdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgbmFtZSk7CisgICAgZmluaXNo
Q3JlYXRpb24oKmdsb2JhbERhdGEsIG5hbWUpOwogfQogCi12b2lkIEludGVybmFsRnVuY3Rpb246
OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKK3ZvaWQgSW50ZXJuYWxGdW5j
dGlvbjo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVu
dGlmaWVyJiBuYW1lKQogewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGds
b2JhbE9iamVjdCk7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAg
QVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAgICBwdXREaXJlY3QoZ2xvYmFsRGF0YSwgZ2xv
YmFsRGF0YS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBqc1N0cmluZygmZ2xvYmFsRGF0YSwgbmFtZS5p
c051bGwoKSA/ICIiIDogbmFtZS51c3RyaW5nKCkpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBE
b250RW51bSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRlcm5hbEZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5h
bEZ1bmN0aW9uLmgKaW5kZXggNzQ2MWU2NmNjYjU0MDViNzBlM2I3NTZjNTU5MGIxNzAyZWI0Njgy
OS4uZTA1YmIxMzQ5OTBlNzNiYTNjMjU2YzcyOWRiMzgxNTRiZWFiYmQ0ZCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaApAQCAtMjQsMTYg
KzI0LDE2IEBACiAjaWZuZGVmIEludGVybmFsRnVuY3Rpb25faAogI2RlZmluZSBJbnRlcm5hbEZ1
bmN0aW9uX2gKIAotI2luY2x1ZGUgIkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oIgorI2luY2x1
ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiSWRlbnRpZmllci5oIgogCiBuYW1lc3BhY2UgSlND
IHsKIAogICAgIGNsYXNzIEZ1bmN0aW9uUHJvdG90eXBlOwogCi0gICAgY2xhc3MgSW50ZXJuYWxG
dW5jdGlvbiA6IHB1YmxpYyBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QgeworICAgIGNsYXNzIElu
dGVybmFsRnVuY3Rpb24gOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgcHVibGljOgot
ICAgICAgICB0eXBlZGVmIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCBCYXNlOworICAgICAgICB0
eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKIAogICAgICAgICBzdGF0aWMgSlNfRVhQT1JU
REFUQSBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCkBAIC01NCw3ICs1NCw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgICAgIEludGVybmFsRnVuY3Rpb24oSlNHbG9iYWxEYXRhKiwgSlNHbG9i
YWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBjb25zdCBJZGVudGlmaWVyJik7CiAKLSAgICAgICAgdm9p
ZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBKU0dsb2JhbE9iamVjdCosIGNvbnN0IElk
ZW50aWZpZXImIG5hbWUpOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0
YSYsIGNvbnN0IElkZW50aWZpZXImIG5hbWUpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmly
dHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggZGFmNGNhOTU4Mjk3ZjMxODdj
N2E2Y2NjY2Y0Mzk2MDU4MGM4ZWNkZC4uZGZlOWMyOWYzNWY0NjMwYWJiZDlkMDczNTI0NjkyYmE1
YThkZDU0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5j
cHAKQEAgLTYyLDMxICs2MiwzMSBAQCBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKFZQdHJTdGVhbGlu
Z0hhY2tUeXBlKQogfQogCiBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAg
OiBCYXNlKGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQorICAgIDogQmFzZShleGVjLT5nbG9iYWxE
YXRhKCksIHN0cnVjdHVyZSkKICAgICAsIG1fZXhlY3V0YWJsZSgpCiAgICAgLCBtX3Njb3BlQ2hh
aW4oZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBnbG9iYWxPYmplY3QtPmdsb2JhbFNjb3BlQ2hh
aW4oKSkKIHsKIH0KIAogSlNGdW5jdGlvbjo6SlNGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEZ1
bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW5O
b2RlKQotICAgIDogQmFzZShzY29wZUNoYWluTm9kZS0+Z2xvYmFsT2JqZWN0LmdldCgpLCBzY29w
ZUNoYWluTm9kZS0+Z2xvYmFsT2JqZWN0LT5mdW5jdGlvblN0cnVjdHVyZSgpKQorICAgIDogQmFz
ZShleGVjLT5nbG9iYWxEYXRhKCksIHNjb3BlQ2hhaW5Ob2RlLT5nbG9iYWxPYmplY3QtPmZ1bmN0
aW9uU3RydWN0dXJlKCkpCiAgICAgLCBtX2V4ZWN1dGFibGUoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0
aGlzLCBleGVjdXRhYmxlKQogICAgICwgbV9zY29wZUNoYWluKGV4ZWMtPmdsb2JhbERhdGEoKSwg
dGhpcywgc2NvcGVDaGFpbk5vZGUpCiB7CiB9CiAKLXZvaWQgSlNGdW5jdGlvbjo6ZmluaXNoQ3Jl
YXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQg
bGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJs
ZSkKK3ZvaWQgSlNGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBpbnQg
bGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJs
ZSkKIHsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEo
KSwgZ2xvYmFsT2JqZWN0KTsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxE
YXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgbV9leGVjdXRhYmxl
LnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIGV4ZWN1dGFibGUpOwogICAgIHB1dERpcmVj
dChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmdsb2JhbERhdGEoKS5wcm9wZXJ0eU5hbWVzLT5u
YW1lLCBqc1N0cmluZyhleGVjLCBuYW1lLmlzTnVsbCgpID8gIiIgOiBuYW1lLnVzdHJpbmcoKSks
IERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgICBwdXREaXJlY3QoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcihsZW5n
dGgpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiB9CiAKLXZvaWQgSlNGdW5j
dGlvbjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIFNjb3BlQ2hhaW5Ob2Rl
KiBzY29wZUNoYWluTm9kZSkKK3ZvaWQgSlNGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0
YXRlKiBleGVjLCBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIFNjb3BlQ2hhaW5Ob2Rl
KiBzY29wZUNoYWluTm9kZSkKIHsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmpl
Y3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bihleGVjLT5nbG9iYWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAg
ICAgc2V0U3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgc2NvcGVDaGFpbk5vZGUtPmdsb2Jh
bE9iamVjdC0+bmFtZWRGdW5jdGlvblN0cnVjdHVyZSgpKTsKICAgICBwdXREaXJlY3RPZmZzZXQo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBzY29wZUNoYWluTm9kZS0+Z2xvYmFsT2JqZWN0LT5mdW5jdGlv
bk5hbWVPZmZzZXQoKSwgZXhlY3V0YWJsZS0+bmFtZVZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IDFjMzY4MTZjMTdkMTBlZjcxOWYzMGFl
OWYwZmM2OGY3YWQ2MzAwODMuLjFkYjNjODBkYjZjNDA0MmMxMmFiYWQyNzMyNWJhY2U1YWNmMTlh
ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24u
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKQEAgLTI0
LDcgKzI0LDcgQEAKICNpZm5kZWYgSlNGdW5jdGlvbl9oCiAjZGVmaW5lIEpTRnVuY3Rpb25faAog
Ci0jaW5jbHVkZSAiSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiSlNPYmpl
Y3QuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKICAgICBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxIb3N0RnVuY3Rpb25B
c0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSopOwogCi0gICAgY2xhc3MgSlNGdW5jdGlvbiA6IHB1Ymxp
YyBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QgeworICAgIGNsYXNzIEpTRnVuY3Rpb24gOiBwdWJs
aWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBKSVQ7CiAgICAgICAg
IGZyaWVuZCBjbGFzcyBERkc6OkpJVENvZGVHZW5lcmF0b3I7CiAgICAgICAgIGZyaWVuZCBjbGFz
cyBKU0dsb2JhbERhdGE7CkBAIC01MCwyOCArNTAsMzUgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIEpTRnVuY3Rpb24oRXhlY1N0YXRlKiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgU2NvcGVDaGFp
bk5vZGUqKTsKICAgICAgICAgCiAgICAgcHVibGljOgotICAgICAgICB0eXBlZGVmIEpTT2JqZWN0
V2l0aEdsb2JhbE9iamVjdCBCYXNlOworICAgICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3Qg
QmFzZTsKIAogICAgICAgICBzdGF0aWMgSlNGdW5jdGlvbiogY3JlYXRlKEV4ZWNTdGF0ZSogZXhl
YywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGlu
dCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIE5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1
bmN0aW9uKQogICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQoc3RydWN0dXJlLT5nbG9iYWxP
YmplY3QoKSk7CisgICAgICAgICAgICBBU1NFUlQoc3RydWN0dXJlLT5nbG9iYWxPYmplY3QoKSA9
PSBnbG9iYWxPYmplY3QpOworICAgICAgICAgICAgCiAgICAgICAgICAgICBFeGVjdXRhYmxlQmFz
ZSogZXhlY3V0YWJsZSA9IChFeGVjdXRhYmxlQmFzZSopZXhlYy0+Z2xvYmFsRGF0YSgpLmdldEhv
c3RGdW5jdGlvbihuYXRpdmVGdW5jdGlvbik7CiAgICAgICAgICAgICBKU0Z1bmN0aW9uKiBmdW5j
dGlvbiA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTRnVuY3Rpb24+KCpleGVjLT5oZWFwKCkpKSBKU0Z1
bmN0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKICAgICAgICAgICAgIC8vIENh
bid0IGRvIHRoaXMgZHVyaW5nIGluaXRpYWxpemF0aW9uIGJlY2F1c2UgZ2V0SG9zdEZ1bmN0aW9u
IG1pZ2h0IGRvIGEgR0MgYWxsb2NhdGlvbi4KLSAgICAgICAgICAgIGZ1bmN0aW9uLT5maW5pc2hD
cmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIGxlbmd0aCwgbmFtZSwgZXhlY3V0YWJsZSk7Cisg
ICAgICAgICAgICBmdW5jdGlvbi0+ZmluaXNoQ3JlYXRpb24oZXhlYywgbGVuZ3RoLCBuYW1lLCBl
eGVjdXRhYmxlKTsKICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbjsKICAgICAgICAgfQogCiAg
ICAgICAgIHN0YXRpYyBKU0Z1bmN0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50IGxlbmd0aCwg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSwgTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlY3V0YWJs
ZSkKICAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKHN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0
KCkpOworICAgICAgICAgICAgQVNTRVJUKHN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCkgPT0gZ2xv
YmFsT2JqZWN0KTsKKwogICAgICAgICAgICAgSlNGdW5jdGlvbiogZnVuY3Rpb24gPSBuZXcgKGFs
bG9jYXRlQ2VsbDxKU0Z1bmN0aW9uPigqZXhlYy0+aGVhcCgpKSkgSlNGdW5jdGlvbihleGVjLCBn
bG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7Ci0gICAgICAgICAgICBmdW5jdGlvbi0+ZmluaXNoQ3Jl
YXRpb24oZXhlYywgZ2xvYmFsT2JqZWN0LCBsZW5ndGgsIG5hbWUsIChFeGVjdXRhYmxlQmFzZSop
bmF0aXZlRXhlY3V0YWJsZSk7CisgICAgICAgICAgICBmdW5jdGlvbi0+ZmluaXNoQ3JlYXRpb24o
ZXhlYywgbGVuZ3RoLCBuYW1lLCAoRXhlY3V0YWJsZUJhc2UqKW5hdGl2ZUV4ZWN1dGFibGUpOwog
ICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGlj
IEpTRnVuY3Rpb24qIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEZ1bmN0aW9uRXhlY3V0YWJsZSog
ZXhlY3V0YWJsZSwgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4pCiAgICAgICAgIHsKICAgICAg
ICAgICAgIEpTRnVuY3Rpb24qIGZ1bmN0aW9uID0gbmV3IChhbGxvY2F0ZUNlbGw8SlNGdW5jdGlv
bj4oKmV4ZWMtPmhlYXAoKSkpIEpTRnVuY3Rpb24oZXhlYywgZXhlY3V0YWJsZSwgc2NvcGVDaGFp
bik7Ci0gICAgICAgICAgICBmdW5jdGlvbi0+ZmluaXNoQ3JlYXRpb24oZXhlYywgc2NvcGVDaGFp
bi0+Z2xvYmFsT2JqZWN0LmdldCgpLCBleGVjdXRhYmxlLCBzY29wZUNoYWluKTsKKyAgICAgICAg
ICAgIEFTU0VSVChmdW5jdGlvbi0+c3RydWN0dXJlKCktPmdsb2JhbE9iamVjdCgpKTsKKyAgICAg
ICAgICAgIGZ1bmN0aW9uLT5maW5pc2hDcmVhdGlvbihleGVjLCBleGVjdXRhYmxlLCBzY29wZUNo
YWluKTsKICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbjsKICAgICAgICAgfQogICAgICAgICAK
QEAgLTExMCw3ICsxMTcsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIEpTX0VY
UE9SVERBVEEgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAogICAgICAgICBzdGF0aWMgU3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkgCi0gICAgICAgIHsgCisgICAg
ICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChnbG9iYWxPYmplY3QpOwogICAgICAgICAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKQEAgLTEzMiw4ICsxNDAsOCBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIGNvbnN0IHN0YXRpYyB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEltcGxlbWVudHNIYXNJ
bnN0YW5jZSB8IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5h
bWVzIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCi0gICAgICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVu
dGlmaWVyJiBuYW1lLCBFeGVjdXRhYmxlQmFzZSopOwotICAgICAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgU2Nv
cGVDaGFpbk5vZGUqKTsKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqLCBp
bnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBFeGVjdXRhYmxlQmFzZSopOworICAg
ICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIEZ1bmN0aW9uRXhlY3V0YWJsZSos
IFNjb3BlQ2hhaW5Ob2RlKik7CiAKICAgICBwcml2YXRlOgogICAgICAgICBleHBsaWNpdCBKU0Z1
bmN0aW9uKFZQdHJTdGVhbGluZ0hhY2tUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCAyOWJjYTgxYjhlYjlkYzY3ZjgzMzE2
NzA5NzU3NWJjYTNkYTQwMmNhLi4zZGRlYTIzNDA5NmY0ODFiMzM4ZjRlZTFiMDExZDcxY2IxNjll
MWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuY3BwCkBAIC0yMDMsNyArMjAzLDcgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6cmVzZXQoSlNW
YWx1ZSBwcm90b3R5cGUpCiAgICAgbV9jYWxsYmFja0Z1bmN0aW9uU3RydWN0dXJlLnNldChleGVj
LT5nbG9iYWxEYXRhKCksIHRoaXMsIEpTQ2FsbGJhY2tGdW5jdGlvbjo6Y3JlYXRlU3RydWN0dXJl
KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSkpOwog
ICAgIG1fYXJndW1lbnRzU3RydWN0dXJlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIEFy
Z3VtZW50czo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbV9vYmpl
Y3RQcm90b3R5cGUuZ2V0KCkpKTsKICAgICBtX2NhbGxiYWNrQ29uc3RydWN0b3JTdHJ1Y3R1cmUu
c2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgSlNDYWxsYmFja0NvbnN0cnVjdG9yOjpjcmVh
dGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5n
ZXQoKSkpOwotICAgIG1fY2FsbGJhY2tPYmplY3RTdHJ1Y3R1cmUuc2V0KGV4ZWMtPmdsb2JhbERh
dGEoKSwgdGhpcywgSlNDYWxsYmFja09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+Ojpj
cmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBtX29iamVjdFByb3RvdHlw
ZS5nZXQoKSkpOworICAgIG1fY2FsbGJhY2tPYmplY3RTdHJ1Y3R1cmUuc2V0KGV4ZWMtPmdsb2Jh
bERhdGEoKSwgdGhpcywgSlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pjo6Y3JlYXRl
U3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUuZ2V0
KCkpKTsKIAogICAgIG1fYXJyYXlQcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhp
cywgQXJyYXlQcm90b3R5cGU6OmNyZWF0ZShleGVjLCB0aGlzLCBBcnJheVByb3RvdHlwZTo6Y3Jl
YXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbV9vYmplY3RQcm90b3R5cGUu
Z2V0KCkpKSk7CiAgICAgbV9hcnJheVN0cnVjdHVyZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0
aGlzLCBKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBt
X2FycmF5UHJvdG90eXBlLmdldCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09OT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT05PYmplY3QuY3BwCmluZGV4IDE3MzE1MmIyOTE5M2RmMjAyNDU4MTIzNzY3NjhmYmQ4OWRl
NzM2MGMuLmZkODM2YWYwOTA1M2YxMzEwNTljYzAxMzMyZDhlODdiZDU2NjkyOTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCkBAIC01NCwxNCArNTQs
MTQgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNPTlByb3RvRnVuY1N0
cmluZ2lmeShFeGVjU3RhdGUqKTsKIG5hbWVzcGFjZSBKU0MgewogCiBKU09OT2JqZWN0OjpKU09O
T2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJl
KQotICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJl
KQorICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgc3Ry
dWN0dXJlKQogewogICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7CiB9CiAKIHZvaWQg
SlNPTk9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
IHsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwg
Z2xvYmFsT2JqZWN0KTsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmds
b2JhbERhdGEoKSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIApAQCAtNTg5
LDcgKzU4OSw3IEBAIGJvb2wgU3RyaW5naWZpZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5
KFN0cmluZ2lmaWVyJiBzdHJpbmdpZmllciwgVVN0cmluZ0J1CiAKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSBKU09OT2JqZWN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKLWNvbnN0IENsYXNzSW5mbyBKU09OT2JqZWN0OjpzX2luZm8gPSB7ICJKU09OIiwgJkpT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6c19pbmZvLCAwLCBFeGVjU3RhdGU6Ompzb25UYWJsZSB9
OworY29uc3QgQ2xhc3NJbmZvIEpTT05PYmplY3Q6OnNfaW5mbyA9IHsgIkpTT04iLCAmSlNOb25G
aW5hbE9iamVjdDo6c19pbmZvLCAwLCBFeGVjU3RhdGU6Ompzb25UYWJsZSB9OwogCiAvKiBTb3Vy
Y2UgZm9yIEpTT05PYmplY3QubHV0LmgKIEBiZWdpbiBqc29uVGFibGUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaAppbmRleCBjMzU1MTY5MmNhNjcwM2E2MzMyZGY0
MGZjZWQ3ZGMzZTMwMzJlYzMwLi40ZTg1YmYxMWFiMmMxM2U2MTMzMDU3MDJhMzhhNmRlMTFiMDE5
YTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCkBAIC0y
NiwxNSArMjYsMTUgQEAKICNpZm5kZWYgSlNPTk9iamVjdF9oCiAjZGVmaW5lIEpTT05PYmplY3Rf
aAogCi0jaW5jbHVkZSAiSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiSlNP
YmplY3QuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBTdHJpbmdpZmllcjsKIAot
ICAgIGNsYXNzIEpTT05PYmplY3QgOiBwdWJsaWMgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IHsK
KyAgICBjbGFzcyBKU09OT2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHB1
YmxpYzoKLSAgICAgICAgdHlwZWRlZiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QgQmFzZTsKKyAg
ICAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAKICAgICAgICAgc3RhdGljIEpT
T05PYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgICAgICB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCBhN2Q4Y2I3OWQyNjVmMDdkMTFlNzZjZmIxNmVj
YTcyNTcyMWM2OTY0Li5kNzZiZWZjY2Y1ZjY3ZjNjOTc2YzQyODRlZTI1MDk2NWVmYjQzMzBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTI1Miw2ICsyNTIs
MTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gbG9jYXRpb25Gb3JPZmZz
ZXQoaW5kZXgpLT5nZXQoKTsKICAgICAgICAgfQogCisgICAgICAgIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQoc3RydWN0
dXJlKCktPmdsb2JhbE9iamVjdCgpKTsKKyAgICAgICAgICAgIEFTU0VSVCghaXNHbG9iYWxPYmpl
Y3QoKSB8fCAoKEpTT2JqZWN0KilzdHJ1Y3R1cmUoKS0+Z2xvYmFsT2JqZWN0KCkpID09IHRoaXMp
OworICAgICAgICAgICAgcmV0dXJuIHN0cnVjdHVyZSgpLT5nbG9iYWxPYmplY3QoKTsKKyAgICAg
ICAgfQorICAgICAgICAKICAgICAgICAgc3RhdGljIHNpemVfdCBvZmZzZXRPZklubGluZVN0b3Jh
Z2UoKTsKICAgICAgICAgc3RhdGljIHNpemVfdCBvZmZzZXRPZlByb3BlcnR5U3RvcmFnZSgpOwog
ICAgICAgICBzdGF0aWMgc2l6ZV90IG9mZnNldE9mSW5oZXJpdG9ySUQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmpl
Y3QuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4N2IzMjE5YzYzNGJmYTVlYjAy
N2E2MzQzZjY1MTExNzQxN2I2MTI4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEds
b2JhbE9iamVjdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dC5oIgotCi0jaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0K
LUpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSlNO
b25GaW5hbE9iamVjdChnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQotewot
fQotCi1KU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSlNO
b25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCi17Ci19Ci0KLXZvaWQgSlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi17Ci0gICAgQmFzZTo6ZmluaXNoQ3Jl
YXRpb24oZ2xvYmFsRGF0YSk7Ci0gICAgQ09NUElMRV9BU1NFUlQoQW5vbnltb3VzU2xvdENvdW50
ID09IDEsIEFub255bW91c1Nsb3RDb3VudF9tdXN0X2JlX29uZSk7Ci0gICAgQVNTRVJUKCFnbG9i
YWxPYmplY3QgfHwgZ2xvYmFsT2JqZWN0LT5pc0dsb2JhbE9iamVjdCgpKTsKLSAgICBpZiAoIWds
b2JhbE9iamVjdCkKLSAgICAgICAgY2xlYXJBbm9ueW1vdXNWYWx1ZShHbG9iYWxPYmplY3RTbG90
KTsKLSAgICBlbHNlCi0gICAgICAgIHB1dEFub255bW91c1ZhbHVlKGdsb2JhbERhdGEsIEdsb2Jh
bE9iamVjdFNsb3QsIGdsb2JhbE9iamVjdCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFs
T2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9i
YWxPYmplY3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWY5YTI0M2VjNDllOTMz
OWI2MWFjZDk0NjhjZGZkY2EwZTgzOWFjOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdp
dGhHbG9iYWxPYmplY3QuaAorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaWZuZGVmIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdF9oCi0jZGVmaW5lIEpTT2JqZWN0
V2l0aEdsb2JhbE9iamVjdF9oCi0KLSNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgotCi1uYW1l
c3BhY2UgSlNDIHsKLQotY2xhc3MgSlNHbG9iYWxPYmplY3Q7Ci0KLWNsYXNzIEpTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKLXB1YmxpYzoKLSAgICB0
eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLQotICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG8pCi0gICAgewotICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwot
ICAgIH0KLQotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIGFzR2xvYmFsT2JqZWN0KChnZXRBbm9ueW1vdXNWYWx1ZShHbG9iYWxP
YmplY3RTbG90KS5hc0NlbGwoKSkpOwotICAgIH0KLQotcHJvdGVjdGVkOgotICAgIEpTT2JqZWN0
V2l0aEdsb2JhbE9iamVjdChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwotICAgIEpTT2Jq
ZWN0V2l0aEdsb2JhbE9iamVjdChKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqKTsKLQotICAgIEpT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdChWUHRyU3RlYWxpbmdIYWNrVHlwZSkKLSAgICAgICAgOiBK
U05vbkZpbmFsT2JqZWN0KFZQdHJTdGVhbGluZ0hhY2spCi0gICAgewotICAgICAgICAvLyBTaG91
bGQgb25seSBiZSB1c2VkIGJ5IEpTRnVuY3Rpb24gd2hlbiB3ZSBhcXVpcmUgdGhlIEpTRnVuY3Rp
b24gdnB0ci4KLSAgICB9Ci0KLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYs
IEpTR2xvYmFsT2JqZWN0Kik7Ci0KLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQW5vbnltb3Vz
U2xvdENvdW50ID0gSlNPYmplY3Q6OkFub255bW91c1Nsb3RDb3VudCArIDE7Ci0gICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIEdsb2JhbE9iamVjdFNsb3QgPSAwOwotfTsKLQotfSAvLyBuYW1lc3Bh
Y2UgSlNDCi0KLSNlbmRpZiAvLyBKU09iamVjdFdpdGhHbG9iYWxPYmplY3RfaApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmNwcAppbmRleCAxMGQzYmYxZDYwNjdhYjY2NTZj
NTM3ZTY4NGEwNmNkY2RlM2JmOWIwLi5lYjVhYWE0YTYyZDg1MzMwNWNjZmI0YTM0ZTA2ZDlmZTIy
OGMxYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmNwcApAQCAt
MTkyLDcgKzE5Miw3IEBAIGludDMyX3QgdG9JbnQzMihkb3VibGUgbnVtYmVyKQogCiBib29sIEpT
VmFsdWU6OmlzVmFsaWRDYWxsZWUoKQogewotICAgIHJldHVybiBhc09iamVjdChhc09iamVjdChh
c0NlbGwoKSktPmdldEFub255bW91c1ZhbHVlKDApKS0+aXNHbG9iYWxPYmplY3QoKTsKKyAgICBy
ZXR1cm4gYXNPYmplY3QoYXNDZWxsKCkpLT5nbG9iYWxPYmplY3QoKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29r
dXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmNwcAppbmRleCBm
MGNkYmJhOTU3Y2U2NTMzOWZjN2RiMDU4Mzk2NDg2MjVmZDcxMTQ3Li44MGVkYmRkYWI4MTgxMTNh
ZGM0YTJlNzQ3NTFmNWEwY2VlZDliMDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Mb29rdXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0xvb2t1cC5jcHAKQEAgLTcwLDE0ICs3MCwxMyBAQCB2b2lkIEhhc2hUYWJsZTo6ZGVsZXRlVGFi
bGUoKSBjb25zdAogCiB2b2lkIHNldFVwU3RhdGljRnVuY3Rpb25TbG90KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSGFzaEVudHJ5KiBlbnRyeSwgSlNPYmplY3QqIHRoaXNPYmosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIEFTU0VSVCh0
aGlzT2JqLT5zdHJ1Y3R1cmUoKS0+YW5vbnltb3VzU2xvdENvdW50KCkgPiAwKTsKLSAgICBBU1NF
UlQodGhpc09iai0+Z2V0QW5vbnltb3VzVmFsdWUoMCkuaXNDZWxsKCkgJiYgYXNPYmplY3QodGhp
c09iai0+Z2V0QW5vbnltb3VzVmFsdWUoMCkuYXNDZWxsKCkpLT5pc0dsb2JhbE9iamVjdCgpKTsK
KyAgICBBU1NFUlQodGhpc09iai0+Z2xvYmFsT2JqZWN0KCkpOwogICAgIEFTU0VSVChlbnRyeS0+
YXR0cmlidXRlcygpICYgRnVuY3Rpb24pOwogICAgIFdyaXRlQmFycmllckJhc2U8VW5rbm93bj4q
IGxvY2F0aW9uID0gdGhpc09iai0+Z2V0RGlyZWN0TG9jYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgp
LCBwcm9wZXJ0eU5hbWUpOwogCiAgICAgaWYgKCFsb2NhdGlvbikgewogICAgICAgICBKU0Z1bmN0
aW9uKiBmdW5jdGlvbjsKLSAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGFz
R2xvYmFsT2JqZWN0KHRoaXNPYmotPmdldEFub255bW91c1ZhbHVlKDApLmFzQ2VsbCgpKTsKKyAg
ICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRoaXNPYmotPmdsb2JhbE9iamVj
dCgpOwogI2lmIEVOQUJMRShKSVQpCiAgICAgICAgIGlmIChlbnRyeS0+Z2VuZXJhdG9yKCkpCiAg
ICAgICAgICAgICBmdW5jdGlvbiA9IEpTRnVuY3Rpb246OmNyZWF0ZShleGVjLCBnbG9iYWxPYmpl
Y3QsIGdsb2JhbE9iamVjdC0+ZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgZW50cnktPmZ1bmN0aW9uTGVu
Z3RoKCksIHByb3BlcnR5TmFtZSwgZXhlYy0+Z2xvYmFsRGF0YSgpLmdldEhvc3RGdW5jdGlvbihl
bnRyeS0+ZnVuY3Rpb24oKSwgZW50cnktPmdlbmVyYXRvcigpKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0xvb2t1cC5oCmluZGV4IDJmYTQyZDA0N2Q0OTA4ZTZkNjU4NzU4ZjYyZTZmNDE5
Zjc4ZWNjMmYuLmMwMDEzZDZkMTc5NGIxZTdlNDk3YmJjMmMxZjU4ZmFlNTI3NDRmZWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCkBAIC0yNCw3ICsyNCw2IEBACiAjaW5j
bHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkpT
R2xvYmFsT2JqZWN0LmgiCi0jaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJQcm9wZXJ0
eVNsb3QuaCIKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCmluZGV4IDVl
YzU2YTM2ZTczNzU1OWEzMGRmYjEyMDhhMGMxM2NlYmE5ODdiNmQuLjMxOWM5N2NhZWZjNGJiZGU5
NzliNzhiOTRiM2QwZmFkOWNmYjgwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL01hdGhPYmplY3QuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNUYW4oRXhlY1N0YXRlKik7CiAKIG5hbWVzcGFj
ZSBKU0MgewogCi1jb25zdCBDbGFzc0luZm8gTWF0aE9iamVjdDo6c19pbmZvID0geyAiTWF0aCIs
ICZKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OnNfaW5mbywgMCwgRXhlY1N0YXRlOjptYXRoVGFi
bGUgfTsKK2NvbnN0IENsYXNzSW5mbyBNYXRoT2JqZWN0OjpzX2luZm8gPSB7ICJNYXRoIiwgJkpT
Tm9uRmluYWxPYmplY3Q6OnNfaW5mbywgMCwgRXhlY1N0YXRlOjptYXRoVGFibGUgfTsKIAogLyog
U291cmNlIGZvciBNYXRoT2JqZWN0Lmx1dC5oCiBAYmVnaW4gbWF0aFRhYmxlCkBAIC04NSwxNCAr
ODUsMTQgQEAgY29uc3QgQ2xhc3NJbmZvIE1hdGhPYmplY3Q6OnNfaW5mbyA9IHsgIk1hdGgiLCAm
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpzX2luZm8KICovCiAKIE1hdGhPYmplY3Q6Ok1hdGhP
YmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxP
YmplY3QsIHN0cnVjdHVyZSkKKyAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5n
bG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsKICAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBnbG9i
YWxPYmplY3QpOwogfQogCiB2b2lkIE1hdGhPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKLSAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKKyAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSk7CiAgICAg
QVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIAogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0
aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgSWRlbnRpZmllcihleGVjLCAiRSIpLCBqc051bWJlcihl
eHAoMS4wKSksIERvbnREZWxldGUgfCBEb250RW51bSB8IFJlYWRPbmx5KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaAppbmRleCBlNDEwYTZlZTlhNzdmMGIwNzUz
MmRmZDg4NGFmOWQzZjkwNDYyY2UzLi5iZWY5MzEwYWM4YjBlNWIyZTYyNzQ3ZmFjOWM2NGZkYmE4
NjNkYzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2Jq
ZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCkBA
IC0yMSwxNiArMjEsMTYgQEAKICNpZm5kZWYgTWF0aE9iamVjdF9oCiAjZGVmaW5lIE1hdGhPYmpl
Y3RfaAogCi0jaW5jbHVkZSAiSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAi
SlNPYmplY3QuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSAgICBjbGFzcyBNYXRoT2JqZWN0IDog
cHVibGljIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCB7CisgICAgY2xhc3MgTWF0aE9iamVjdCA6
IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBwcml2YXRlOgogICAgICAgICBNYXRoT2Jq
ZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CiAKICAgICBwdWJs
aWM6Ci0gICAgICAgIHR5cGVkZWYgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IEJhc2U7CisgICAg
ICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwogCiAgICAgICAgIHN0YXRpYyBNYXRo
T2JqZWN0KiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKaW5kZXggZDc0NDE2MjZlMTEx
YTJiY2MxZDNhMTYwNmM4MTU0YWJhMGEwY2MwNi4uMzhkNTk2NWQ5YjExMzZkZGNlYjc3NzcwOTcy
YjAzYTc3MmI4MTIwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TnVtYmVyUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
dW1iZXJQcm90b3R5cGUuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiQmlnSW50ZWdl
ci5oIgogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgorI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJP
cGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiVWludDE2V2l0aEZyYWN0aW9uLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAppbmRleCA4NDFkOTM5NDEx
N2FiMDkxMTczOGQwYzQ4NWUzZmU1MGI1YTFkZDE2Li43MGI3MDdjMjc4NWZhNDhlMTZiNDVmMTM1
Y2JiZjk2YjExNTYwYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cE9iamVjdC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIEFTU0VS
VF9DTEFTU19GSVRTX0lOX0NFTEwoUmVnRXhwT2JqZWN0KTsKIAotY29uc3QgQ2xhc3NJbmZvIFJl
Z0V4cE9iamVjdDo6c19pbmZvID0geyAiUmVnRXhwIiwgJkpTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dDo6c19pbmZvLCAwLCBFeGVjU3RhdGU6OnJlZ0V4cFRhYmxlIH07Citjb25zdCBDbGFzc0luZm8g
UmVnRXhwT2JqZWN0OjpzX2luZm8gPSB7ICJSZWdFeHAiLCAmSlNOb25GaW5hbE9iamVjdDo6c19p
bmZvLCAwLCBFeGVjU3RhdGU6OnJlZ0V4cFRhYmxlIH07CiAKIC8qIFNvdXJjZSBmb3IgUmVnRXhw
T2JqZWN0Lmx1dC5oCiBAYmVnaW4gcmVnRXhwVGFibGUKQEAgLTYzLDcgKzYzLDcgQEAgY29uc3Qg
Q2xhc3NJbmZvIFJlZ0V4cE9iamVjdDo6c19pbmZvID0geyAiUmVnRXhwIiwgJkpTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdDo6c18KICovCiAKIFJlZ0V4cE9iamVjdDo6UmVnRXhwT2JqZWN0KEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWdFeHAqIHJl
Z0V4cCkKLSAgICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIHN0cnVj
dHVyZSkKKyAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCks
IHN0cnVjdHVyZSkKICAgICAsIGQoYWRvcHRQdHIobmV3IFJlZ0V4cE9iamVjdERhdGEoZ2xvYmFs
T2JqZWN0LT5nbG9iYWxEYXRhKCksIHRoaXMsIHJlZ0V4cCkpKQogewogICAgIGZpbmlzaENyZWF0
aW9uKGdsb2JhbE9iamVjdCk7CkBAIC03MSw3ICs3MSw3IEBAIFJlZ0V4cE9iamVjdDo6UmVnRXhw
T2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBSCiAKIHZvaWQgUmVnRXhwT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQogewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+
Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGds
b2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBP
YmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCmlu
ZGV4IGUxMzFmYzVjNDc4NmFkOTQ3NmUzM2JlZDA1OTlmZDQ0ZDg3NzI1ZDQuLjJmMDc3NWYxY2Vi
ZDQ2ZDdkOTZjZWYzNDc0ZjNmZTllYmM1YTc3ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCkBAIC0yMSwxNCArMjEsMTQgQEAKICNpZm5kZWYgUmVn
RXhwT2JqZWN0X2gKICNkZWZpbmUgUmVnRXhwT2JqZWN0X2gKIAotI2luY2x1ZGUgIkpTT2JqZWN0
V2l0aEdsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVn
RXhwLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogICAgIAotICAgIGNsYXNzIFJlZ0V4cE9iamVjdCA6
IHB1YmxpYyBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QgeworICAgIGNsYXNzIFJlZ0V4cE9iamVj
dCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHR5cGVk
ZWYgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IEJhc2U7CisgICAgICAgIHR5cGVkZWYgSlNOb25G
aW5hbE9iamVjdCBCYXNlOwogCiAgICAgICAgIHN0YXRpYyBSZWdFeHBPYmplY3QqIGNyZWF0ZShF
eGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSog
c3RydWN0dXJlLCBSZWdFeHAqIHJlZ0V4cCkKICAgICAgICAgewpAQCAtNzUsNyArNzUsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIFJlZ0V4cE9iamVjdChKU0ds
b2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFJlZ0V4cCopOwogICAgICAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKEpTR2xvYmFsT2JqZWN0Kik7Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRPd25Q
cm9wZXJ0eVNsb3QgfCBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwor
ICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNW
aXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgQmFzZTo6U3RydWN0
dXJlRmxhZ3M7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGls
ZHJlbihTbG90VmlzaXRvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RydWN0dXJlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZS5jcHAKaW5kZXggNGJjYzY3MjNjZGI1ZmVhY2Q0NDI1MzFjODA5NWI5NzdmOGNiZjA5My4u
MmJkZjVmZDI5Y2M0OGRhNTA3MTNhYzY3ZTQ0YmI2MmY3N2ZjNjZhOSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCkBAIC0xNTksOSArMTU5LDEwIEBAIHZv
aWQgU3RydWN0dXJlOjpkdW1wU3RhdGlzdGljcygpCiAjZW5kaWYKIH0KIAotU3RydWN0dXJlOjpT
dHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSwgY29u
c3QgVHlwZUluZm8mIHR5cGVJbmZvLCB1bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291bnQsIGNvbnN0
IENsYXNzSW5mbyogY2xhc3NJbmZvKQorU3RydWN0dXJlOjpTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3Rv
dHlwZSwgY29uc3QgVHlwZUluZm8mIHR5cGVJbmZvLCB1bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291
bnQsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQogICAgIDogSlNDZWxsKGdsb2JhbERhdGEs
IGdsb2JhbERhdGEuc3RydWN0dXJlU3RydWN0dXJlLmdldCgpKQogICAgICwgbV90eXBlSW5mbyh0
eXBlSW5mbykKKyAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIHRoaXMsIGdsb2JhbE9i
amVjdCwgV3JpdGVCYXJyaWVyPEpTR2xvYmFsT2JqZWN0Pjo6TWF5QmVOdWxsKQogICAgICwgbV9w
cm90b3R5cGUoZ2xvYmFsRGF0YSwgdGhpcywgcHJvdG90eXBlKQogICAgICwgbV9jbGFzc0luZm8o
Y2xhc3NJbmZvKQogICAgICwgbV9wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSh0eXBlSW5mby5pc0Zp
bmFsKCkgPyBKU0ZpbmFsT2JqZWN0X2lubGluZVN0b3JhZ2VDYXBhY2l0eSA6IEpTTm9uRmluYWxP
YmplY3RfaW5saW5lU3RvcmFnZUNhcGFjaXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmUuaAppbmRleCBmNGUwYmM4ZDEyY2MyMTYzMmMwMTc3YTY0MTlkYmFiODBkZGU1
OWFjLi4wZjRmNDhjODM0MTJjMTM1MGQwOTM0YzFiNWZmNjMzNzY4Mjk2ZmMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaApAQCAtNjIsMTEgKzYyLDExIEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgICAgIHR5cGVkZWYgSlNDZWxsIEJhc2U7CiAKLSAgICAgICAg
c3RhdGljIFN0cnVjdHVyZSogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9i
YWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgVHlwZUluZm8mIHR5cGVJbmZvLCB1
bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291bnQsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQor
ICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3Qg
VHlwZUluZm8mIHR5cGVJbmZvLCB1bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291bnQsIGNvbnN0IENs
YXNzSW5mbyogY2xhc3NJbmZvKQogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQoZ2xvYmFs
RGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOwogICAgICAgICAgICAgQVNTRVJUKGNsYXNzSW5mbyk7
Ci0gICAgICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG5ldyAoYWxsb2NhdGVDZWxsPFN0
cnVjdHVyZT4oZ2xvYmFsRGF0YS5oZWFwKSkgU3RydWN0dXJlKGdsb2JhbERhdGEsIHByb3RvdHlw
ZSwgdHlwZUluZm8sIGFub255bW91c1Nsb3RDb3VudCwgY2xhc3NJbmZvKTsKKyAgICAgICAgICAg
IFN0cnVjdHVyZSogc3RydWN0dXJlID0gbmV3IChhbGxvY2F0ZUNlbGw8U3RydWN0dXJlPihnbG9i
YWxEYXRhLmhlYXApKSBTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIHR5cGVJbmZvLCBhbm9ueW1vdXNTbG90Q291bnQsIGNsYXNzSW5mbyk7CiAgICAgICAgICAg
ICBzdHJ1Y3R1cmUtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgICAgICAgICAgcmV0
dXJuIHN0cnVjdHVyZTsKICAgICAgICAgfQpAQCAtMTIxLDcgKzEyMSw3IEBAIG5hbWVzcGFjZSBK
U0MgewogCiAgICAgICAgIGNvbnN0IFR5cGVJbmZvJiB0eXBlSW5mbygpIGNvbnN0IHsgQVNTRVJU
KHN0cnVjdHVyZSgpLT5jbGFzc0luZm8oKSA9PSAmc19pbmZvKTsgcmV0dXJuIG1fdHlwZUluZm87
IH0KIAotICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgeyByZXR1cm4gbV9n
bG9iYWxPYmplY3QuZ2V0KCk7IH0KKyAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCgpIGNvbnN0IHsgcmV0dXJuIG1fZ2xvYmFsT2JqZWN0LmdldCgpOyB9CiAgICAgICAgIHZvaWQg
c2V0R2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkgeyBtX2dsb2JhbE9iamVjdC5zZXQoZ2xvYmFsRGF0YSwgdGhpcywgZ2xv
YmFsT2JqZWN0KTsgfQogICAgICAgICAKICAgICAgICAgSlNWYWx1ZSBzdG9yZWRQcm90b3R5cGUo
KSBjb25zdCB7IHJldHVybiBtX3Byb3RvdHlwZS5nZXQoKTsgfQpAQCAtMTkxLDcgKzE5MSw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBjb25zdCBDbGFz
c0luZm8gc19pbmZvOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgU3RydWN0dXJlKEpTR2xvYmFs
RGF0YSYsIEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYsIHVuc2lnbmVkIGFub255
bW91c1Nsb3RDb3VudCwgY29uc3QgQ2xhc3NJbmZvKik7CisgICAgICAgIFN0cnVjdHVyZShKU0ds
b2JhbERhdGEmLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBl
SW5mbyYsIHVuc2lnbmVkIGFub255bW91c1Nsb3RDb3VudCwgY29uc3QgQ2xhc3NJbmZvKik7CiAg
ICAgICAgIFN0cnVjdHVyZShKU0dsb2JhbERhdGEmKTsKICAgICAgICAgU3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYsIGNvbnN0IFN0cnVjdHVyZSopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjlkNDI3MjA3MmY5
YzFiY2Y5ZjNjZmVlOTY4MzQwMGZmZDExZWIwMy4uMWI4OGRmMGE1NjFkZGFhNjRiNDkyZjNhNTk2
MWIyZGY1ODZiNDg4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM1IEBACiAyMDExLTA5LTA2ICBP
bGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKKyAgICAgICAgUmVtb3ZlIEpTT2JqZWN0
V2l0aEdsb2JhbE9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Njc2ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW1vdmUgdXNlIG9mIGFub255bW91cyBzdG9yYWdlIGFuZCBKU09iamVjdFdpdGhH
bG9iYWxPYmplY3QgZm9yCisgICAgICAgIGFjY2Vzc2luZyBhIEpTT2JqZWN0J3MgZ2xvYmFsIG9i
amVjdCBub3cgdGhhdCB0aGV5J3JlIGF2YWlsYWJsZQorICAgICAgICBvbiB0aGUgb2JqZWN0J3Mg
c3RydWN0dXJlLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpzZXRXaW5kb3cpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oOgorICAgICAgICAoV2ViQ29yZTo6SlNET01X
cmFwcGVyOjpnbG9iYWxPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XcmFwcGVyOjpK
U0RPTVdyYXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNj
cmlwdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06Cisg
ICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9u
KToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaDoKKyAgICAgICAgKiBicmlk
Z2Uvb2JqYy9vYmpjX3J1bnRpbWUubW06CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjRmFs
bGJhY2tPYmplY3RJbXA6Ok9iamNGYWxsYmFja09iamVjdEltcCk6CisgICAgICAgIChKU0M6OkJp
bmRpbmdzOjpPYmpjRmFsbGJhY2tPYmplY3RJbXA6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAg
KiBicmlkZ2UvcnVudGltZV9vYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVu
dGltZU9iamVjdDo6UnVudGltZU9iamVjdCk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpSdW50
aW1lT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2Jq
ZWN0Lmg6CisKKzIwMTEtMDktMDYgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKwog
ICAgICAgICBVcGRhdGUgZXhwZWN0ZWQgcmVzdWx0cyBvZiBiaW5kaW5ncyB0ZXN0cy4KIAogICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAppbmRleCA0
OWUxYjRhNDk1OGFmYTc4YjU5NjFiNzdhZmIwMjkxNzlmNTViNzRlLi4xZWRmZDJlNmE3MzQyNmNh
N2U2OTBlYTc2OThlOGVjMjk3NGEzMmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcApAQCAtNzMsOSArNzMsMTAgQEAgdm9pZCBKU0RPTVdp
bmRvd1NoZWxsOjpzZXRXaW5kb3coUGFzc1JlZlB0cjxET01XaW5kb3c+IGRvbVdpbmRvdykKIAog
ICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gSlNET01XaW5kb3c6OmNyZWF0ZVN0cnVjdHVyZSgq
SlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLCAwLCBwcm90b3R5cGUuZ2V0KCkpOwog
ICAgIEpTRE9NV2luZG93KiBqc0RPTVdpbmRvdyA9IEpTRE9NV2luZG93OjpjcmVhdGUoKkpTRE9N
V2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSwgc3RydWN0dXJlLCBkb21XaW5kb3csIHRoaXMp
OwotICAgIHByb3RvdHlwZVN0cnVjdHVyZS0+c2V0R2xvYmFsT2JqZWN0KCpKU0RPTVdpbmRvdzo6
Y29tbW9uSlNHbG9iYWxEYXRhKCksIGpzRE9NV2luZG93KTsKLSAgICBwcm90b3R5cGUtPnB1dEFu
b255bW91c1ZhbHVlKCpKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCksIDAsIGpzRE9N
V2luZG93KTsKKyAgICBwcm90b3R5cGUtPnN0cnVjdHVyZSgpLT5zZXRHbG9iYWxPYmplY3QoKkpT
RE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSwganNET01XaW5kb3cpOwogICAgIHNldFdp
bmRvdygqSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLCBqc0RPTVdpbmRvdyk7Cisg
ICAgQVNTRVJUKGpzRE9NV2luZG93LT5nbG9iYWxPYmplY3QoKSA9PSBqc0RPTVdpbmRvdyk7Cisg
ICAgQVNTRVJUKHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkgPT0ganNET01XaW5kb3cpOwogfQog
CiAvLyAtLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdy
YXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCmluZGV4
IDhmMmMwOGUyYjE4NjBkODAyMzRiYThmNzM1N2Y2YTg0YzdkYjRlYTMuLjZhMWI0Mzg5MzhmYTE0
MWI0ODBjMDFlYjhkZjQwMTdmOTZmMTNlOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV3JhcHBlci5oCkBAIC0yMywxNyArMjMsMTcgQEAKICNkZWZpbmUgSlNET01XcmFwcGVy
X2gKIAogI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmgiCi0jaW5jbHVkZSA8cnVudGltZS9K
U09iamVjdFdpdGhHbG9iYWxPYmplY3QuaD4KKyNpbmNsdWRlIDxydW50aW1lL0pTT2JqZWN0Lmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsK
IAotY2xhc3MgSlNET01XcmFwcGVyIDogcHVibGljIEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0IHsKK2NsYXNzIEpTRE9NV3JhcHBlciA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3Qg
ewogcHVibGljOgogICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSBjb25zdAog
ICAgIHsKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oSlND
OjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6Omdsb2JhbE9iamVjdCgpKTsKKyAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oSlNDOjpKU05vbkZpbmFsT2JqZWN0
OjpnbG9iYWxPYmplY3QoKSk7CiAgICAgfQogCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0CkBAIC01MywxMyArNTMsMTMgQEAgcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgdm9pZCB2aXJ0dWFsRnVuY3Rpb25Ub1ByZXZlbnRXZWFrVnRhYmxl
KCk7CiAKICAgICBleHBsaWNpdCBKU0RPTVdyYXBwZXIoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSAKLSAgICAgICAgOiBKU09iamVj
dFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCisgICAgICAgIDogSlNO
b25GaW5hbE9iamVjdChnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogICAg
IHsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgQVNTRVJUIGlzIHZhbGlkLCBidXQgZmlyZXMgaW4g
ZmFzdC9kb20vZ2MtNi5odG1sIHdoZW4gdHJ5aW5nIHRvIGNyZWF0ZQogICAgICAgICAvLyBuZXcg
SmF2YVNjcmlwdCBvYmplY3RzIG9uIGRldGFjaGVkIHdpbmRvd3MgZHVlIHRvIERPTVdpbmRvdzo6
ZG9jdW1lbnQoKQogICAgICAgICAvLyBuZWVkaW5nIHRvIHJlYWNoIHRocm91Z2ggdGhlIGZyYW1l
IHRvIGdldCB0byB0aGUgRG9jdW1lbnQqLiAgU2VlIGJ1ZyAyNzY0MC4KICAgICAgICAgLy8gQVNT
RVJUKGdsb2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICAgICAgZmlu
aXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7Cisg
ICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpKTsKICAgICB9
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3Jp
cHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlw
dENvbnRyb2xsZXIuY3BwCmluZGV4IDE3MDI0ZTJjOTQ5Nzc1YjJmY2Q0YzY5Njc1NzgyZWQ0ZTI1
MWExNjQuLjA0N2Q3NGExODA1MTgxYzU3YTA1OGRmNDc3NmI4NTU3ZmQwODM5Y2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIu
Y3BwCkBAIC05Miw4ICs5Miw2IEBAIHZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNj
cmlwdCgpCiAgICAgICAgIEFTU0VSVChtX3dvcmtlckNvbnRleHRXcmFwcGVyLT5zdHJ1Y3R1cmUo
KS0+Z2xvYmFsT2JqZWN0KCkgPT0gbV93b3JrZXJDb250ZXh0V3JhcHBlcik7CiAgICAgICAgIHdv
cmtlckNvbnRleHRQcm90b3R5cGUtPnN0cnVjdHVyZSgpLT5zZXRHbG9iYWxPYmplY3QoKm1fZ2xv
YmFsRGF0YSwgbV93b3JrZXJDb250ZXh0V3JhcHBlci5nZXQoKSk7CiAgICAgICAgIGRlZGljYXRl
ZENvbnRleHRQcm90b3R5cGUtPnN0cnVjdHVyZSgpLT5zZXRHbG9iYWxPYmplY3QoKm1fZ2xvYmFs
RGF0YSwgbV93b3JrZXJDb250ZXh0V3JhcHBlci5nZXQoKSk7Ci0gICAgICAgIHdvcmtlckNvbnRl
eHRQcm90b3R5cGUtPnB1dEFub255bW91c1ZhbHVlKCptX2dsb2JhbERhdGEsIDAsIG1fd29ya2Vy
Q29udGV4dFdyYXBwZXIuZ2V0KCkpOwotICAgICAgICBkZWRpY2F0ZWRDb250ZXh0UHJvdG90eXBl
LT5wdXRBbm9ueW1vdXNWYWx1ZSgqbV9nbG9iYWxEYXRhLCAwLCBtX3dvcmtlckNvbnRleHRXcmFw
cGVyLmdldCgpKTsKICNpZiBFTkFCTEUoU0hBUkVEX1dPUktFUlMpCiAgICAgfSBlbHNlIHsKICAg
ICAgICAgQVNTRVJUKG1fd29ya2VyQ29udGV4dC0+aXNTaGFyZWRXb3JrZXJDb250ZXh0KCkpOwpA
QCAtMTAyLDEyICsxMDAsMTIgQEAgdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjppbml0U2Ny
aXB0KCkKICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBKU1NoYXJlZFdvcmtlckNvbnRl
eHQ6OmNyZWF0ZVN0cnVjdHVyZSgqbV9nbG9iYWxEYXRhLCAwLCBzaGFyZWRDb250ZXh0UHJvdG90
eXBlLmdldCgpKTsKIAogICAgICAgICBtX3dvcmtlckNvbnRleHRXcmFwcGVyLnNldCgqbV9nbG9i
YWxEYXRhLCBKU1NoYXJlZFdvcmtlckNvbnRleHQ6OmNyZWF0ZSgqbV9nbG9iYWxEYXRhLCBzdHJ1
Y3R1cmUsIG1fd29ya2VyQ29udGV4dC0+dG9TaGFyZWRXb3JrZXJDb250ZXh0KCkpKTsKLSAgICAg
ICAgbV93b3JrZXJDb250ZXh0V3JhcHBlci0+c3RydWN0dXJlKCktPnNldEdsb2JhbE9iamVjdCgq
bV9nbG9iYWxEYXRhLCBtX3dvcmtlckNvbnRleHRXcmFwcGVyLmdldCgpKTsKKyAgICAgICAgd29y
a2VyQ29udGV4dFByb3RvdHlwZS0+c3RydWN0dXJlKCktPnNldEdsb2JhbE9iamVjdCgqbV9nbG9i
YWxEYXRhLCBtX3dvcmtlckNvbnRleHRXcmFwcGVyLmdldCgpKTsKICAgICAgICAgc2hhcmVkQ29u
dGV4dFByb3RvdHlwZS0+c3RydWN0dXJlKCktPnNldEdsb2JhbE9iamVjdCgqbV9nbG9iYWxEYXRh
LCBtX3dvcmtlckNvbnRleHRXcmFwcGVyLmdldCgpKTsKLSAgICAgICAgd29ya2VyQ29udGV4dFBy
b3RvdHlwZS0+cHV0QW5vbnltb3VzVmFsdWUoKm1fZ2xvYmFsRGF0YSwgMCwgbV93b3JrZXJDb250
ZXh0V3JhcHBlci5nZXQoKSk7Ci0gICAgICAgIHNoYXJlZENvbnRleHRQcm90b3R5cGUtPnB1dEFu
b255bW91c1ZhbHVlKCptX2dsb2JhbERhdGEsIDAsIG1fd29ya2VyQ29udGV4dFdyYXBwZXIuZ2V0
KCkpOwogI2VuZGlmCiAgICAgfQorICAgIEFTU0VSVChtX3dvcmtlckNvbnRleHRXcmFwcGVyLT5n
bG9iYWxPYmplY3QoKSA9PSBtX3dvcmtlckNvbnRleHRXcmFwcGVyKTsKKyAgICBBU1NFUlQoYXNP
YmplY3QobV93b3JrZXJDb250ZXh0V3JhcHBlci0+cHJvdG90eXBlKCkpLT5nbG9iYWxPYmplY3Qo
KSA9PSBtX3dvcmtlckNvbnRleHRXcmFwcGVyKTsKIH0KIAogU2NyaXB0VmFsdWUgV29ya2VyU2Ny
aXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29k
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0KaW5kZXggN2ExMWEwMTQxZDNmNGE3YWIzNWFmMWI1YzAyZWI4MzI0NGRlZDA5Yi4uMDA0
M2NiZDFkOTFkMzU2MjZjMDBlNTkzOTE1ZGJkM2Y5NzJhMWNhOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTY5Myw3ICs2
OTMsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgJGhlYWRlckluY2x1ZGVzeyIkaW1w
bENsYXNzTmFtZS5oIn0gPSAxOwogICAgIH0KICAgICAKLSAgICAkaGVhZGVySW5jbHVkZXN7Ijxy
dW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oPiJ9ID0gMTsKKyAgICAkaGVhZGVySW5j
bHVkZXN7IjxydW50aW1lL0pTT2JqZWN0Lmg+In0gPSAxOwogICAgICRoZWFkZXJJbmNsdWRlc3si
U1ZHRWxlbWVudC5oIn0gPSAxIGlmICRjbGFzc05hbWUgPX4gL15KU1NWRy87CiAKICAgICBteSAk
aW1wbFR5cGUgPSAkaW1wbENsYXNzTmFtZTsKQEAgLTEwMjAsOSArMTAyMCw5IEBAIHN1YiBHZW5l
cmF0ZUhlYWRlcgogCiAgICAgIyBBZGQgcHJvdG90eXBlIGRlY2xhcmF0aW9uLgogICAgICVzdHJ1
Y3R1cmVGbGFncyA9ICgpOwotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJjbGFzcyAke2NsYXNz
TmFtZX1Qcm90b3R5cGUgOiBwdWJsaWMgSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Qge1xu
Iik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgImNsYXNzICR7Y2xhc3NOYW1lfVByb3RvdHlw
ZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3Qge1xuIik7CiAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgInB1YmxpYzpcbiIpOwotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdHlw
ZWRlZiBKU0M6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCBCYXNlO1xuIik7CisgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICB0eXBlZGVmIEpTQzo6SlNOb25GaW5hbE9iamVjdCBCYXNlO1xu
Iik7CiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIG5lICJET01XaW5kb3ciICYmICEkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJc1dvcmtlckNvbnRleHQifSkgewogICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBzZWxmKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopO1xuIik7CiAgICAgfQpAQCAtMTA1Nyw3ICsx
MDU3LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAg
ICB2aXJ0dWFsIHZvaWQgZGVmaW5lR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqIGdldHRlckZ1bmN0aW9uLCB1
bnNpZ25lZCBhdHRyaWJ1dGVzKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkN1c3RvbVByb3RvdHlwZURlZmluZUdldHRlciJ9OwogCiAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIlxucHJpdmF0ZTpcbiIpOwotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJHtj
bGFzc05hbWV9UHJvdG90eXBlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpIDog
SlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKSB7IGZp
bmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCk7IH1cbiIpOworICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9UHJvdG90eXBlKEpTQzo6SlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkgOiBKU0M6OkpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKSB7
IGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOyB9XG4iKTsKIAogICAgICMgc3RydWN0dXJlIGZs
YWdzCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgInByb3RlY3RlZDpcbiIpOwpAQCAtMTQyMCw5
ICsxNDIwLDkgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJu
IGdldEhhc2hUYWJsZUZvckdsb2JhbERhdGEoZXhlYy0+Z2xvYmFsRGF0YSgpLCAmJHtjbGFzc05h
bWV9UHJvdG90eXBlVGFibGUpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxu
XG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJjb25zdCBDbGFzc0luZm8gJHtjbGFz
c05hbWV9UHJvdG90eXBlOjpzX2luZm8gPSB7IFwiJHt2aXNpYmxlQ2xhc3NOYW1lfVByb3RvdHlw
ZVwiLCAmSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OnNfaW5mbywgMCwgZ2V0JHtjbGFz
c05hbWV9UHJvdG90eXBlVGFibGUgfTtcblxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiY29uc3QgQ2xhc3NJbmZvICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6c19pbmZvID0geyBcIiR7
dmlzaWJsZUNsYXNzTmFtZX1Qcm90b3R5cGVcIiwgJkpTQzo6SlNOb25GaW5hbE9iamVjdDo6c19p
bmZvLCAwLCBnZXQke2NsYXNzTmFtZX1Qcm90b3R5cGVUYWJsZSB9O1xuXG4iKTsKICAgICB9IGVs
c2UgewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImNvbnN0IENsYXNzSW5mbyAke2NsYXNz
TmFtZX1Qcm90b3R5cGU6OnNfaW5mbyA9IHsgXCIke3Zpc2libGVDbGFzc05hbWV9UHJvdG90eXBl
XCIsICZKU0M6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6c19pbmZvLCAmJHtjbGFzc05hbWV9
UHJvdG90eXBlVGFibGUsIDAgfTtcblxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
Y29uc3QgQ2xhc3NJbmZvICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6c19pbmZvID0geyBcIiR7dmlz
aWJsZUNsYXNzTmFtZX1Qcm90b3R5cGVcIiwgJkpTQzo6SlNOb25GaW5hbE9iamVjdDo6c19pbmZv
LCAmJHtjbGFzc05hbWV9UHJvdG90eXBlVGFibGUsIDAgfTtcblxuIik7CiAgICAgfQogICAgIGlm
ICgkaW50ZXJmYWNlTmFtZSBuZSAiRE9NV2luZG93IiAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiSXNXb3JrZXJDb250ZXh0In0pIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJKU09iamVjdCogJHtjbGFzc05hbWV9UHJvdG90eXBlOjpzZWxmKEV4ZWNTdGF0ZSogZXhl
YywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdClcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvb2JqYy9vYmpjX3J1bnRpbWUuaAppbmRleCBhNWE2NzI1MmNmNTM2ZmNlNzYzNzI2MjZkNmIy
MGMzYTJiYjc5ODI4Li41ZjYxYWRmZDcxNzZkZmFlZWI5ZjRkY2YzMWU5MjNlOTNiZmIyZDE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaApAQCAtMzAsNyArMzAs
NiBAQAogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIm9iamNfaGVhZGVyLmgi
CiAjaW5jbHVkZSA8cnVudGltZS9KU0dsb2JhbE9iamVjdC5oPgotI2luY2x1ZGUgPHJ1bnRpbWUv
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Lmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgog
CiBuYW1lc3BhY2UgSlNDIHsKQEAgLTkxLDkgKzkwLDkgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5Q
dHI8T2JqZWN0U3RydWN0UHRyPiBfYXJyYXk7CiB9OwogCi1jbGFzcyBPYmpjRmFsbGJhY2tPYmpl
Y3RJbXAgOiBwdWJsaWMgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IHsKK2NsYXNzIE9iamNGYWxs
YmFja09iamVjdEltcCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKLSAgICB0
eXBlZGVmIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCBCYXNlOworICAgIHR5cGVkZWYgSlNOb25G
aW5hbE9iamVjdCBCYXNlOwogCiAgICAgc3RhdGljIE9iamNGYWxsYmFja09iamVjdEltcCogY3Jl
YXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgT2JqY0lu
c3RhbmNlKiBpbnN0YW5jZSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogICAgIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbSBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQppbmRleCBkZjBlNzFj
N2ZlY2I2MmUxNmY3NWRhOTEyMDMxZmE5NmIxYTJhN2M2Li40ZjlkNTA1NDkwNWU2NDMyZmI2Mjg1
ODY1ZjRlZjk4OTFkYzA5OTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2Jq
Yy9vYmpjX3J1bnRpbWUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19y
dW50aW1lLm1tCkBAIC0xOTQsMTkgKzE5NCwyMCBAQCB1bnNpZ25lZCBpbnQgT2JqY0FycmF5Ojpn
ZXRMZW5ndGgoKSBjb25zdAogICAgIHJldHVybiBbX2FycmF5LmdldCgpIGNvdW50XTsKIH0KIAot
Y29uc3QgQ2xhc3NJbmZvIE9iamNGYWxsYmFja09iamVjdEltcDo6c19pbmZvID0geyAiT2JqY0Zh
bGxiYWNrT2JqZWN0IiwgJkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6c19pbmZvLCAwLCAwIH07
Citjb25zdCBDbGFzc0luZm8gT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpzX2luZm8gPSB7ICJPYmpj
RmFsbGJhY2tPYmplY3QiLCAmSlNOb25GaW5hbE9iamVjdDo6c19pbmZvLCAwLCAwIH07CiAKIE9i
amNGYWxsYmFja09iamVjdEltcDo6T2JqY0ZhbGxiYWNrT2JqZWN0SW1wKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBPYmpjSW5zdGFuY2UqIGksIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKLSAgICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9i
amVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKKyAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xv
YmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKICAgICAsIF9pbnN0YW5jZShpKQog
ICAgICwgX2l0ZW0ocHJvcGVydHlOYW1lKQogewogICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9i
amVjdCk7CisgICAgQVNTRVJUKHN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCkgPT0gZ2xvYmFsT2Jq
ZWN0KTsKIH0KIAogdm9pZCBPYmpjRmFsbGJhY2tPYmplY3RJbXA6OmZpbmlzaENyZWF0aW9uKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
Z2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CisgICAgQmFzZTo6Zmlu
aXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhl
cml0cygmc19pbmZvKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX29iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3Qu
Y3BwCmluZGV4IDk2NjQwZjAwOGZhYzFhYzQ3MTc2NGZmODVlM2I4ZjY0NWI5MmJmMmMuLmJhMWU3
ZTUzMWJjODlhZDIzY2YwMTA2Mzk1ZDcyYjhhOTRkZDFkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApAQCAtMzUsMTggKzM1LDE5IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogbmFtZXNwYWNlIEpTQyB7CiBuYW1lc3BhY2UgQmluZGluZ3MgewogCi1jb25z
dCBDbGFzc0luZm8gUnVudGltZU9iamVjdDo6c19pbmZvID0geyAiUnVudGltZU9iamVjdCIsICZK
U09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OnNfaW5mbywgMCwgMCB9OworY29uc3QgQ2xhc3NJbmZv
IFJ1bnRpbWVPYmplY3Q6OnNfaW5mbyA9IHsgIlJ1bnRpbWVPYmplY3QiLCAmSlNOb25GaW5hbE9i
amVjdDo6c19pbmZvLCAwLCAwIH07CiAKIFJ1bnRpbWVPYmplY3Q6OlJ1bnRpbWVPYmplY3QoRXhl
Y1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIFBhc3NSZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNlKQotICAgIDogSlNPYmplY3RXaXRoR2xv
YmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQorICAgIDogSlNOb25GaW5hbE9iamVj
dChnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogICAgICwgbV9pbnN0YW5j
ZShpbnN0YW5jZSkKIHsKKyAgICBBU1NFUlQoc3RydWN0dXJlLT5nbG9iYWxPYmplY3QoKSA9PSBn
bG9iYWxPYmplY3QpOwogICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7CiB9CiAKIHZv
aWQgUnVudGltZU9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkKIHsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERh
dGEoKSwgZ2xvYmFsT2JqZWN0KTsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmpl
Y3QtPmdsb2JhbERhdGEoKSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAppbmRleCBkOGUwMGZjMzQ3N2E5OTc3
ZThhYjQwNzlkYWFjZTQyOWY4YTNmZjU4Li5iMTJlODYxMWU1MGIzNzNhM2IwMTYzZDljZTZkMjFi
NmE3NWRlZDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmpl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaApAQCAtMjgs
MTQgKzI4LDEzIEBACiAKICNpbmNsdWRlICJCcmlkZ2VKU0MuaCIKICNpbmNsdWRlIDxydW50aW1l
L0pTR2xvYmFsT2JqZWN0Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxP
YmplY3QuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiBuYW1lc3BhY2UgQmluZGluZ3MgewogCi1jbGFz
cyBSdW50aW1lT2JqZWN0IDogcHVibGljIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCB7CitjbGFz
cyBSdW50aW1lT2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgotICAg
IHR5cGVkZWYgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IEJhc2U7CisgICAgdHlwZWRlZiBKU05v
bkZpbmFsT2JqZWN0IEJhc2U7CiAKICAgICBzdGF0aWMgUnVudGltZU9iamVjdCogY3JlYXRlKEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIFBhc3NSZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNlKQogICAgIHsKQEAgLTc1LDcg
Kzc0LDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIFJ1bnRpbWVPYmplY3QoRXhlY1N0YXRl
KiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBQYXNzUmVmUHRyPEluc3RhbmNlPik7CiAg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCopOwotICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OlN0
cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMg
fCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgSlNWYWx1ZSBm
YWxsYmFja09iamVjdEdldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVy
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggM2I1ZmY2ZmYxMTIzNmVlY2FhYTAxYzMzYWFmNjNhYWIyYzQwZmJl
ZS4uN2MwNzk3NGVmNDcyOTBlY2Q3YTUwZTNkNDA5NzJlYzQzODdmODQ4NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDExLTA5LTA2ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5j
b20+CisKKyAgICAgICAgUmVtb3ZlIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2ODkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgSlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0IHVzYWdlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL0pTTlBPYmplY3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpKU05QT2JqZWN0OjpKU05QT2Jq
ZWN0KToKKyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0Lmg6CisKIDIwMTEt
MDktMDYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVuYW1l
IGNvbmZpcm1Db21wb3NpdGlvbldpdGhvdXREaXN0dXJiaW5nU2VsZWN0aW9uIHRvIGNhbmNlbENv
bXBvc2l0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvSlNOUE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKaW5kZXggNmVkNjlhMTljNjA5YzBhNjM4N2EwYWUw
NDIzY2QwZjVkZTU5NWYzNC4uYmJhZjA0Zjg4ZjI2YzNlZjcwMWY1NmYyMTYwMjA3MWU5MzU3NDZi
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9KU05QT2JqZWN0LmNwcApAQCAtNDgsMTkgKzQ4LDIwIEBAIHN0YXRpYyBOUElkZW50
aWZpZXIgbnBJZGVudGlmaWVyRnJvbUlkZW50aWZpZXIoY29uc3QgSWRlbnRpZmllciYgaWRlbnRp
ZmllcikKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TlBJZGVudGlmaWVyPihJZGVudGlmaWVyUmVw
OjpnZXQoaWRlbnRpZmllci51c3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOwogfQogCi1jb25zdCBD
bGFzc0luZm8gSlNOUE9iamVjdDo6c19pbmZvID0geyAiTlBPYmplY3QiLCAmSlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0OjpzX2luZm8sIDAsIDAgfTsKK2NvbnN0IENsYXNzSW5mbyBKU05QT2JqZWN0
OjpzX2luZm8gPSB7ICJOUE9iamVjdCIsICZKU05vbkZpbmFsT2JqZWN0OjpzX2luZm8sIDAsIDAg
fTsKIAogSlNOUE9iamVjdDo6SlNOUE9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBOUFJ1bnRpbWVPYmplY3RNYXAqIG9iamVjdE1hcCwgTlBPYmplY3QqIG5wT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxP
YmplY3QsIHN0cnVjdHVyZSkKKyAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5n
bG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKICAgICAsIG1fb2JqZWN0TWFwKG9iamVjdE1hcCkKICAg
ICAsIG1fbnBPYmplY3QobnBPYmplY3QpCiB7CisgICAgQVNTRVJUKGdsb2JhbE9iamVjdCA9PSBz
dHJ1Y3R1cmUtPmdsb2JhbE9iamVjdCgpKTsKICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmpl
Y3QpOwogfQogCiB2b2lkIEpTTlBPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCiB7Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0
LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
Z2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZv
KSk7CiAKICAgICAvLyBXZSBzaG91bGQgbmV2ZXIgaGF2ZSBhbiBOUEpTT2JqZWN0IGluc2lkZSBh
IEpTTlBPYmplY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAppbmRleCAwYmJkNWI1NjI5ZDdiOWRiYzA4Mjk2NTdi
ZjQyZDhiZDU5ZGYyNzcxLi5mMDYxZTlmMzE3MDBlMTAxMTYwYWMyNDEyNGEyOTU0OGQzN2RiMzM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
SlNOUE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9KU05QT2JqZWN0LmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgSlNOUE9iamVjdF9o
CiAjZGVmaW5lIEpTTlBPYmplY3RfaAogCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPYmplY3Qu
aD4KIAogdHlwZWRlZiB2b2lkKiBOUElkZW50aWZpZXI7CiBzdHJ1Y3QgTlBPYmplY3Q7CkBAIC0z
Nyw5ICszNyw5IEBAIGNsYXNzIE5QUnVudGltZU9iamVjdE1hcDsKICAgICAKIC8vIEpTTlBPYmpl
Y3QgaXMgYSBKU09iamVjdCB0aGF0IHdyYXBzIGFuIE5QT2JqZWN0LgogCi1jbGFzcyBKU05QT2Jq
ZWN0IDogcHVibGljIEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IHsKK2NsYXNzIEpTTlBP
YmplY3QgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKLSAgICB0eXBl
ZGVmIEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IEJhc2U7CisgICAgdHlwZWRlZiBKU0M6
OkpTTm9uRmluYWxPYmplY3QgQmFzZTsKIAogICAgIHN0YXRpYyBKU05QT2JqZWN0KiBjcmVhdGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIE5QUnVudGltZU9iamVjdE1hcCosIE5QT2JqZWN0Kik7CiAg
ICAgfkpTTlBPYmplY3QoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106599</attachid>
            <date>2011-09-07 10:51:45 -0700</date>
            <delta_ts>2011-09-07 11:42:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67689-20110907105144.patch</filename>
            <type>text/plain</type>
            <size>86716</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ2ODYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcAppbmRleCA5NTA0YWQ4MGQ4NTNmM2M2NTVm
ODQyOGQ3ZDE2YTY1ZmVjYjgzMDc3Li4xZjcyNzAxYzdmZWJiMjE3NDk4ODlkNDExNDg5OThkZWNm
YWRiYmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuY3BwCkBAIC0zNiwxMCArMzYsMTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAK
LWNvbnN0IENsYXNzSW5mbyBKU0NhbGxiYWNrQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkNhbGxi
YWNrQ29uc3RydWN0b3IiLCAmSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpzX2luZm8sIDAsIDAg
fTsKK2NvbnN0IENsYXNzSW5mbyBKU0NhbGxiYWNrQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkNh
bGxiYWNrQ29uc3RydWN0b3IiLCAmSlNOb25GaW5hbE9iamVjdDo6c19pbmZvLCAwLCAwIH07CiAK
IEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6SlNDYWxsYmFja0NvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0NsYXNzUmVmIGpzQ2xh
c3MsIEpTT2JqZWN0Q2FsbEFzQ29uc3RydWN0b3JDYWxsYmFjayBjYWxsYmFjaykKLSAgICA6IEpT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKKyAgICA6IEpT
Tm9uRmluYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKICAg
ICAsIG1fY2xhc3MoanNDbGFzcykKICAgICAsIG1fY2FsbGJhY2soY2FsbGJhY2spCiB7CkBAIC00
OCw3ICs0OCw3IEBAIEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6SlNDYWxsYmFja0NvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjCiAKIHZvaWQgSlNDYWxsYmFja0Nv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0NsYXNzUmVmIGpzQ2xhc3MpCiB7Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19p
bmZvKSk7CiAgICAgaWYgKG1fY2xhc3MpCiAgICAgICAgIEpTQ2xhc3NSZXRhaW4oanNDbGFzcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1
Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3Iu
aAppbmRleCA1OWE1YzQ0MzAzOGQ3NjUzY2Y4NTMyMGQ4NzVmZGU5YzI5ZDQ3OGYwLi5lNTEyN2Ex
YWQzYmUyNjQ3MWFlMzdmYjdhMjJiOTUyODNmNjg3OTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmgKQEAgLTI3LDEzICsyNywxMyBA
QAogI2RlZmluZSBKU0NhbGxiYWNrQ29uc3RydWN0b3JfaAogCiAjaW5jbHVkZSAiSlNPYmplY3RS
ZWYuaCIKLSNpbmNsdWRlIDxydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oPgorI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIEpT
Q2FsbGJhY2tDb25zdHJ1Y3RvciA6IHB1YmxpYyBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Qgewor
Y2xhc3MgSlNDYWxsYmFja0NvbnN0cnVjdG9yIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qgewog
cHVibGljOgotICAgIHR5cGVkZWYgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IEJhc2U7CisgICAg
dHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAKICAgICBzdGF0aWMgSlNDYWxsYmFja0Nv
bnN0cnVjdG9yKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNDbGFzc1JlZiBjbGFzc1JlZiwgSlNPYmpl
Y3RDYWxsQXNDb25zdHJ1Y3RvckNhbGxiYWNrIGNhbGxiYWNrKSAKICAgICB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmNwcAppbmRleCA2YTc0NjJhOTA0
MGY4Y2ExZDdmYjI0YWI5NTlmZDYwMDM1ODdjYjY0Li42M2I5MTA1NTBjNmUwZWEyNWMyOWI3YjNk
MmIyMWIwNmNjZTdhZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdC5jcHAKQEAgLTMyLDExICszMiwxMSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
QVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdD4pOworQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU0NhbGxiYWNrT2JqZWN0
PEpTTm9uRmluYWxPYmplY3Q+KTsKIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNDYWxsYmFj
a09iamVjdDxKU0dsb2JhbE9iamVjdD4pOwogCiAvLyBEZWZpbmUgdGhlIHR3byB0eXBlcyBvZiBK
U0NhbGxiYWNrT2JqZWN0cyB3ZSBzdXBwb3J0LgotdGVtcGxhdGUgPD4gY29uc3QgQ2xhc3NJbmZv
IEpTQ2FsbGJhY2tPYmplY3Q8SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Pjo6c19pbmZvID0geyAi
Q2FsbGJhY2tPYmplY3QiLCAmSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpzX2luZm8sIDAsIDAg
fTsKK3RlbXBsYXRlIDw+IGNvbnN0IENsYXNzSW5mbyBKU0NhbGxiYWNrT2JqZWN0PEpTTm9uRmlu
YWxPYmplY3Q+OjpzX2luZm8gPSB7ICJDYWxsYmFja09iamVjdCIsICZKU05vbkZpbmFsT2JqZWN0
OjpzX2luZm8sIDAsIDAgfTsKIHRlbXBsYXRlIDw+IGNvbnN0IENsYXNzSW5mbyBKU0NhbGxiYWNr
T2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvID0geyAiQ2FsbGJhY2tHbG9iYWxPYmplY3Qi
LCAmSlNHbG9iYWxPYmplY3Q6OnNfaW5mbywgMCwgMCB9OwogCiB2b2lkIEpTQ2FsbGJhY2tPYmpl
Y3REYXRhOjpmaW5hbGl6ZShIYW5kbGU8VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAppbmRleCAzOTNm
MTNmYzQ3ZmIxNWJmNTJlODJhOTc4OGY0MDFjM2JlNzdiNDA0Li4xMjZmZTVmNWJlYjExNTVmZDUz
YmY0NTI1MzIxZTY5YjQyZTU1MDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3QuaApAQCAtMTE3LDE0ICsxMTcsMTQgQEAgc3RydWN0IEpTQ2FsbGJhY2tP
YmplY3REYXRhIDogV2Vha0hhbmRsZU93bmVyIHsKIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+CiBj
bGFzcyBKU0NhbGxiYWNrT2JqZWN0IDogcHVibGljIFBhcmVudCB7CiBwcm90ZWN0ZWQ6Ci0gICAg
SlNDYWxsYmFja09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSos
IEpTQ2xhc3NSZWYsIHZvaWQqIGRhdGEpOworICAgIEpTQ2FsbGJhY2tPYmplY3QoRXhlY1N0YXRl
KiwgU3RydWN0dXJlKiwgSlNDbGFzc1JlZiwgdm9pZCogZGF0YSk7CiAgICAgSlNDYWxsYmFja09i
amVjdChKU0dsb2JhbERhdGEmLCBKU0NsYXNzUmVmLCBTdHJ1Y3R1cmUqKTsKICAgICAvLyBXZSdk
IGxpa2UgdG8gdXNlIHRoZSBwbGFjZW1lbnQgdmVyc2lvbiBvZiBvcGVyYXRvciBuZXcgZGVmaW5l
ZCBpbiBKU0NlbGwsIGJ1dCAKICAgICAvLyB3ZSBjYW4ndCBiZWNhdXNlIFBhcmVudCBpcyBhIHRl
bXBsYXRlIGFyZ3VtZW50LCBzbyB3ZSBqdXN0IGR1cGxpY2F0ZSB0aGUgc2FtZSAKICAgICAvLyBm
dW5jdGlvbmFsaXR5IGhlcmUuCiAgICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCwgdm9pZCog
cHRyKSB7IHJldHVybiBwdHI7IH0KIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRl
KiwgSlNHbG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSop
OwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oKTsKIAogcHVibGljOgpAQCAtMTMyLDcgKzEzMiw4
IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0NhbGxiYWNrT2JqZWN0KiBjcmVhdGUoRXhlY1N0
YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgSlNDbGFzc1JlZiBjbGFzc1JlZiwgdm9pZCogZGF0YSkKICAgICB7Ci0gICAgICAgIEpT
Q2FsbGJhY2tPYmplY3QqIGNhbGxiYWNrT2JqZWN0ID0gbmV3IChhbGxvY2F0ZUNlbGw8SlNDYWxs
YmFja09iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIEpTQ2FsbGJhY2tPYmplY3QoZXhlYywgZ2xvYmFs
T2JqZWN0LCBzdHJ1Y3R1cmUsIGNsYXNzUmVmLCBkYXRhKTsKKyAgICAgICAgQVNTRVJUKCFzdHJ1
Y3R1cmUtPmdsb2JhbE9iamVjdCgpIHx8IHN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCkgPT0gZ2xv
YmFsT2JqZWN0KTsKKyAgICAgICAgSlNDYWxsYmFja09iamVjdCogY2FsbGJhY2tPYmplY3QgPSBu
ZXcgKGFsbG9jYXRlQ2VsbDxKU0NhbGxiYWNrT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgSlNDYWxs
YmFja09iamVjdChleGVjLCBzdHJ1Y3R1cmUsIGNsYXNzUmVmLCBkYXRhKTsKICAgICAgICAgcmV0
dXJuIGNhbGxiYWNrT2JqZWN0OwogICAgIH0KICAgICBzdGF0aWMgSlNDYWxsYmFja09iamVjdCog
Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDbGFzc1JlZiBjbGFzc1JlZiwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oCmluZGV4IGMzMTIzYmRmNjdlOGQzZjcyMDRhNjcx
ODcyMmMwMzRmYTFhZmI4MDQuLmY2MjdjM2JmYjgwYzZlYWI2NWIzMDJjMTA3MzA5NWFiYjAxYjZm
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVj
dEZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09i
amVjdEZ1bmN0aW9ucy5oCkBAIC01MCwxMSArNTAsMTEgQEAgaW5saW5lIEpTQ2FsbGJhY2tPYmpl
Y3Q8UGFyZW50PiogSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+Ojphc0NhbGxiYWNrT2JqZWN0KEpT
VmEKIH0KIAogdGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KLUpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50
Pjo6SlNDYWxsYmFja09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0NsYXNzUmVmIGpzQ2xhc3MsIHZvaWQq
IGRhdGEpCi0gICAgOiBQYXJlbnQoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCitKU0NhbGxiYWNr
T2JqZWN0PFBhcmVudD46OkpTQ2FsbGJhY2tPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgSlNDbGFzc1JlZiBqc0NsYXNzLCB2b2lkKiBkYXRhKQorICAgIDogUGFy
ZW50KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogICAgICwgbV9jYWxsYmFja09iamVj
dERhdGEoYWRvcHRQdHIobmV3IEpTQ2FsbGJhY2tPYmplY3REYXRhKGRhdGEsIGpzQ2xhc3MpKSkK
IHsKLSAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QpOworICAgIGZpbmlzaENy
ZWF0aW9uKGV4ZWMpOwogfQogCiAvLyBHbG9iYWwgb2JqZWN0IGNvbnN0cnVjdG9yLgpAQCAtNjgs
OSArNjgsOSBAQCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OkpTQ2FsbGJhY2tPYmplY3QoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0NsYXNzUmVmCiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBQ
YXJlbnQ+Ci12b2lkIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6ZmluaXNoQ3JlYXRpb24oRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQordm9pZCBKU0NhbGxi
YWNrT2JqZWN0PFBhcmVudD46OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFs
T2JqZWN0KTsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOwog
ICAgIEFTU0VSVChQYXJlbnQ6OmluaGVyaXRzKCZzX2luZm8pKTsKICAgICBpbml0KGV4ZWMpOwog
fQpAQCAtNTc0LDcgKzU3NCw3IEBAIEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+Ojpz
dGF0aWNGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUKICAgICAgICAgICAg
IGlmIChTdGF0aWNGdW5jdGlvbkVudHJ5KiBlbnRyeSA9IHN0YXRpY0Z1bmN0aW9ucy0+Z2V0KHBy
b3BlcnR5TmFtZS5pbXBsKCkpKSB7CiAgICAgICAgICAgICAgICAgaWYgKEpTT2JqZWN0Q2FsbEFz
RnVuY3Rpb25DYWxsYmFjayBjYWxsQXNGdW5jdGlvbiA9IGVudHJ5LT5jYWxsQXNGdW5jdGlvbikg
ewogICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgSlNPYmplY3QqIG8g
PSBKU0NhbGxiYWNrRnVuY3Rpb246OmNyZWF0ZShleGVjLCBhc0dsb2JhbE9iamVjdCh0aGlzT2Jq
LT5nZXRBbm9ueW1vdXNWYWx1ZSgwKSksIGNhbGxBc0Z1bmN0aW9uLCBwcm9wZXJ0eU5hbWUpOwor
ICAgICAgICAgICAgICAgICAgICBKU09iamVjdCogbyA9IEpTQ2FsbGJhY2tGdW5jdGlvbjo6Y3Jl
YXRlKGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9iamVjdCgpLCBjYWxsQXNGdW5jdGlvbiwgcHJvcGVy
dHlOYW1lKTsKICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+cHV0RGlyZWN0KGV4ZWMtPmds
b2JhbERhdGEoKSwgcHJvcGVydHlOYW1lLCBvLCBlbnRyeS0+YXR0cmlidXRlcyk7CiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBvOwogICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCmluZGV4IGM3MWFkODljOWYwYzg0ZTUzOGQ2NGE1ODRk
ZjgxMmNhOTQ3MTlkYmIuLjE0YTk2MzkwZTlkZTdjYmQxZTUzY2VlN2I4NTViMGY4YmY1MThkMjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcApAQCAtMjUxLDcgKzI1
MSw3IEBAIEpTT2JqZWN0KiBPcGFxdWVKU0NsYXNzOjpwcm90b3R5cGUoRXhlY1N0YXRlKiBleGVj
KQogCiAgICAgaWYgKCFqc0NsYXNzRGF0YS5jYWNoZWRQcm90b3R5cGUpIHsKICAgICAgICAgLy8g
UmVjdXJzaXZlLCBidXQgc2hvdWxkIGJlIGdvb2QgZW5vdWdoIGZvciBvdXIgcHVycG9zZXMKLSAg
ICAgICAganNDbGFzc0RhdGEuY2FjaGVkUHJvdG90eXBlLnNldChleGVjLT5nbG9iYWxEYXRhKCks
IEpTQ2FsbGJhY2tPYmplY3Q8SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Pjo6Y3JlYXRlKGV4ZWMs
IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
LT5jYWxsYmFja09iamVjdFN0cnVjdHVyZSgpLCBwcm90b3R5cGVDbGFzcywgJmpzQ2xhc3NEYXRh
KSwgMCk7IC8vIHNldCBqc0NsYXNzRGF0YSBhcyB0aGUgb2JqZWN0J3MgcHJpdmF0ZSBkYXRhLCBz
byBpdCBjYW4gY2xlYXIgb3VyIHJlZmVyZW5jZSBvbiBkZXN0cnVjdGlvbgorICAgICAgICBqc0Ns
YXNzRGF0YS5jYWNoZWRQcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgSlNDYWxsYmFj
a09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pjo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5jYWxsYmFja09iamVjdFN0
cnVjdHVyZSgpLCBwcm90b3R5cGVDbGFzcywgJmpzQ2xhc3NEYXRhKSwgMCk7IC8vIHNldCBqc0Ns
YXNzRGF0YSBhcyB0aGUgb2JqZWN0J3MgcHJpdmF0ZSBkYXRhLCBzbyBpdCBjYW4gY2xlYXIgb3Vy
IHJlZmVyZW5jZSBvbiBkZXN0cnVjdGlvbgogICAgICAgICBpZiAocGFyZW50Q2xhc3MpIHsKICAg
ICAgICAgICAgIGlmIChKU09iamVjdCogcHJvdG90eXBlID0gcGFyZW50Q2xhc3MtPnByb3RvdHlw
ZShleGVjKSkKICAgICAgICAgICAgICAgICBqc0NsYXNzRGF0YS5jYWNoZWRQcm90b3R5cGUtPnNl
dFByb3RvdHlwZShleGVjLT5nbG9iYWxEYXRhKCksIHByb3RvdHlwZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCmluZGV4IDllZmU2NGZkZTQ0MDQ3OWE3NzFjMDAw
NTQ4NTIxZjYzMTkxYjI2NTcuLmNmMDMxZjcwZTNiMmM4NzQ0YjAwMDA1NTNhMGEyYjYxYTU5ZjJh
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCkBAIC04MSw3
ICs4MSw3IEBAIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZShKU0NvbnRleHRSZWYgY3R4LCBKU0Ns
YXNzUmVmIGpzQ2xhc3MsIHZvaWQqIGRhdGEpCiAgICAgaWYgKCFqc0NsYXNzKQogICAgICAgICBy
ZXR1cm4gdG9SZWYoY29uc3RydWN0RW1wdHlPYmplY3QoZXhlYykpOwogCi0gICAgSlNDYWxsYmFj
a09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+KiBvYmplY3QgPSBKU0NhbGxiYWNrT2Jq
ZWN0PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdD46OmNyZWF0ZShleGVjLCBleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Y2FsbGJhY2tPYmpl
Y3RTdHJ1Y3R1cmUoKSwganNDbGFzcywgZGF0YSk7CisgICAgSlNDYWxsYmFja09iamVjdDxKU05v
bkZpbmFsT2JqZWN0Piogb2JqZWN0ID0gSlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0
Pjo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpLT5jYWxsYmFja09iamVjdFN0cnVjdHVyZSgpLCBqc0NsYXNzLCBkYXRh
KTsKICAgICBpZiAoSlNPYmplY3QqIHByb3RvdHlwZSA9IGpzQ2xhc3MtPnByb3RvdHlwZShleGVj
KSkKICAgICAgICAgb2JqZWN0LT5zZXRQcm90b3R5cGUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm90
b3R5cGUpOwogCkBAIC0zNDIsOCArMzQyLDggQEAgdm9pZCogSlNPYmplY3RHZXRQcml2YXRlKEpT
T2JqZWN0UmVmIG9iamVjdCkKICAgICAKICAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKCZKU0Nh
bGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvKSkKICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5n
ZXRQcml2YXRlKCk7Ci0gICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cygmSlNDYWxsYmFja09iamVj
dDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+OjpzX2luZm8pKQotICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+Kj4oanNP
YmplY3QpLT5nZXRQcml2YXRlKCk7CisgICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cygmSlNDYWxs
YmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pjo6c19pbmZvKSkKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD4qPihqc09iamVjdCkt
PmdldFByaXZhdGUoKTsKICAgICAKICAgICByZXR1cm4gMDsKIH0KQEAgLTM1Niw4ICszNTYsOCBA
QCBib29sIEpTT2JqZWN0U2V0UHJpdmF0ZShKU09iamVjdFJlZiBvYmplY3QsIHZvaWQqIGRhdGEp
CiAgICAgICAgIHN0YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+Kj4o
anNPYmplY3QpLT5zZXRQcml2YXRlKGRhdGEpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
Ci0gICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cygmSlNDYWxsYmFja09iamVjdDxKU09iamVjdFdp
dGhHbG9iYWxPYmplY3Q+OjpzX2luZm8pKSB7Ci0gICAgICAgIHN0YXRpY19jYXN0PEpTQ2FsbGJh
Y2tPYmplY3Q8SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Pio+KGpzT2JqZWN0KS0+c2V0UHJpdmF0
ZShkYXRhKTsKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpT
Tm9uRmluYWxPYmplY3Q+OjpzX2luZm8pKSB7CisgICAgICAgIHN0YXRpY19jYXN0PEpTQ2FsbGJh
Y2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD4qPihqc09iamVjdCktPnNldFByaXZhdGUoZGF0YSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAgICAgCkBAIC0zNzMsOCArMzczLDgg
QEAgSlNWYWx1ZVJlZiBKU09iamVjdEdldFByaXZhdGVQcm9wZXJ0eShKU0NvbnRleHRSZWYgY3R4
LCBKU09iamVjdFJlZiBvYmplY3QsIEpTU3QKICAgICBJZGVudGlmaWVyIG5hbWUocHJvcGVydHlO
YW1lLT5pZGVudGlmaWVyKCZleGVjLT5nbG9iYWxEYXRhKCkpKTsKICAgICBpZiAoanNPYmplY3Qt
PmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvKSkKICAg
ICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVj
dD4qPihqc09iamVjdCktPmdldFByaXZhdGVQcm9wZXJ0eShuYW1lKTsKLSAgICBlbHNlIGlmIChq
c09iamVjdC0+aW5oZXJpdHMoJkpTQ2FsbGJhY2tPYmplY3Q8SlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0Pjo6c19pbmZvKSkKLSAgICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09i
amVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5nZXRQcml2YXRlUHJv
cGVydHkobmFtZSk7CisgICAgZWxzZSBpZiAoanNPYmplY3QtPmluaGVyaXRzKCZKU0NhbGxiYWNr
T2JqZWN0PEpTTm9uRmluYWxPYmplY3Q+OjpzX2luZm8pKQorICAgICAgICByZXN1bHQgPSBzdGF0
aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTTm9uRmluYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5n
ZXRQcml2YXRlUHJvcGVydHkobmFtZSk7CiAgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHJlc3VsdCk7
CiB9CiAKQEAgLTM4OSw4ICszODksOCBAQCBib29sIEpTT2JqZWN0U2V0UHJpdmF0ZVByb3BlcnR5
KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZQogICAgICAg
ICBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pio+KGpzT2JqZWN0
KS0+c2V0UHJpdmF0ZVByb3BlcnR5KGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFtZSwganNWYWx1ZSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBpZiAoanNPYmplY3QtPmluaGVyaXRz
KCZKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdD46OnNfaW5mbykpIHsK
LSAgICAgICAgc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxP
YmplY3Q+Kj4oanNPYmplY3QpLT5zZXRQcml2YXRlUHJvcGVydHkoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBuYW1lLCBqc1ZhbHVlKTsKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKCZKU0NhbGxiYWNr
T2JqZWN0PEpTTm9uRmluYWxPYmplY3Q+OjpzX2luZm8pKSB7CisgICAgICAgIHN0YXRpY19jYXN0
PEpTQ2FsbGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD4qPihqc09iamVjdCktPnNldFByaXZh
dGVQcm9wZXJ0eShleGVjLT5nbG9iYWxEYXRhKCksIG5hbWUsIGpzVmFsdWUpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDA2LDggKzQwNiw4IEBA
IGJvb2wgSlNPYmplY3REZWxldGVQcml2YXRlUHJvcGVydHkoSlNDb250ZXh0UmVmIGN0eCwgSlNP
YmplY3RSZWYgb2JqZWN0LCBKU1N0cmluCiAgICAgICAgIHN0YXRpY19jYXN0PEpTQ2FsbGJhY2tP
YmplY3Q8SlNHbG9iYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5kZWxldGVQcml2YXRlUHJvcGVydHko
bmFtZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBpZiAoanNPYmplY3QtPmlu
aGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdD46OnNfaW5m
bykpIHsKLSAgICAgICAgc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU09iamVjdFdpdGhH
bG9iYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5kZWxldGVQcml2YXRlUHJvcGVydHkobmFtZSk7Cisg
ICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cygmSlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2Jq
ZWN0Pjo6c19pbmZvKSkgeworICAgICAgICBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpT
Tm9uRmluYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5kZWxldGVQcml2YXRlUHJvcGVydHkobmFtZSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcAppbmRleCAxOGJiZDkxZTZhNGY4ODJlZTM3
MmI1YmUzMjE4ZjU0YzlhODEyZDE1Li44MDNjY2Q5MWZlOGNjNjE2NDhhODg4ZTg3ZDUzOGVjZGVk
Y2VlNDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKQEAgLTEz
MSw4ICsxMzEsOCBAQCBib29sIEpTVmFsdWVJc09iamVjdE9mQ2xhc3MoSlNDb250ZXh0UmVmIGN0
eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNDbGFzc1JlZiBqc0NsYQogICAgIGlmIChKU09iamVjdCog
byA9IGpzVmFsdWUuZ2V0T2JqZWN0KCkpIHsKICAgICAgICAgaWYgKG8tPmluaGVyaXRzKCZKU0Nh
bGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvKSkKICAgICAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pio+KG8pLT5pbmhl
cml0cyhqc0NsYXNzKTsKLSAgICAgICAgaWYgKG8tPmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0
PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdD46OnNfaW5mbykpCi0gICAgICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+Kj4o
byktPmluaGVyaXRzKGpzQ2xhc3MpOworICAgICAgICBpZiAoby0+aW5oZXJpdHMoJkpTQ2FsbGJh
Y2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD46OnNfaW5mbykpCisgICAgICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pio+KG8pLT5pbmhl
cml0cyhqc0NsYXNzKTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAK
aW5kZXggMTM5MDBjZjgzMjdiNGYwMjZlMjAzZjRhMTJjYjU4NDY0YzIwM2ExNC4uNDI5MmE2MGJk
OTg0YzEwMThhOTYxODBkOTk4YzFjZGI0NTdjYjU3YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTV2Vha09iamVjdE1hcFJlZlByaXZhdGUuY3BwCkBAIC01Nyw3
ICs1Nyw3IEBAIHZvaWQgSlNXZWFrT2JqZWN0TWFwU2V0KEpTQ29udGV4dFJlZiBjdHgsIEpTV2Vh
a09iamVjdE1hcFJlZiBtYXAsIHZvaWQqIGtleSwgSlNPCiAgICAgSlNPYmplY3QqIG9iaiA9IHRv
SlMob2JqZWN0KTsKICAgICBpZiAoIW9iaikKICAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVChv
YmotPmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvKSB8
fCBvYmotPmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dD46OnNfaW5mbykpOworICAgIEFTU0VSVChvYmotPmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0
PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvKSB8fCBvYmotPmluaGVyaXRzKCZKU0NhbGxiYWNrT2Jq
ZWN0PEpTTm9uRmluYWxPYmplY3Q+OjpzX2luZm8pKTsKICAgICBtYXAtPm1hcCgpLnNldChleGVj
LT5nbG9iYWxEYXRhKCksIGtleSwgb2JqKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDUyMWNkZTJkYmMyMDI4NmRlZDY3Y2Y5YzI0MTI5M2UzNjBhNjU1NzQuLjEw
ZTAyYmM0Y2QzMTQyNzUzZTZjNjJmMzliODJlMmI0OTczODlmZDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTEyNSw3ICsxMjUsNiBAQCBTRVQoSmF2YVNjcmlwdENvcmVf
U09VUkNFUwogICAgIHJ1bnRpbWUvSlNMb2NrLmNwcAogICAgIHJ1bnRpbWUvSlNOb3RBbk9iamVj
dC5jcHAKICAgICBydW50aW1lL0pTT2JqZWN0LmNwcAotICAgIHJ1bnRpbWUvSlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0LmNwcAogICAgIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHAKICAgICBydW50aW1l
L0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCiAgICAgcnVudGltZS9KU1N0YXRpY1Njb3BlT2Jq
ZWN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggYmJjYjYwYzE3YzMxOWUzMGFmMzc0
ODEyZDM4NTdjMDM1YmJhYjdlOC4uMjI5NTJkNTBiZDA0OWIzYWJkYmI3NmFmYTAyODdhZGE4Zjc2
ZGJjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTEgQEAKKzIwMTEtMDkt
MDYgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgSlNP
YmplY3RXaXRoR2xvYmFsT2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NzY4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbW92ZSBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QsIGFuZCB1cGRhdGUg
Y29kZSB0byBzdG9wIHVzaW5nIGFub255bW91cworICAgICAgICBzdG9yYWdlIHRvIGFjY2VzcyB0
aGUgZ2xvYmFsIG9iamVjdCB0aGF0IGEgSlNPYmplY3QgY29tZXMgZnJvbS4gIExhcmdlbHkKKyAg
ICAgICAgbWVjaGFuaWNhbCBjaGFuZ2UgdG8gcmVtb3ZlIHRoZSB1c2Ugb2YgYW5vbnltb3VzIHN0
b3JhZ2UgYW5kIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC4KKworICAgICAgICAqIEFQSS9KU0Nh
bGxiYWNrQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrQ29uc3RydWN0
b3I6OkpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tDb25z
dHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrQ29uc3Ry
dWN0b3IuaDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5jcHA6CisgICAgICAgICog
QVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDo6
Y3JlYXRlKToKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oOgorICAg
ICAgICAoSlNDOjo6OkpTQ2FsbGJhY2tPYmplY3QpOgorICAgICAgICAoSlNDOjo6OmZpbmlzaENy
ZWF0aW9uKToKKyAgICAgICAgKEpTQzo6OjpzdGF0aWNGdW5jdGlvbkdldHRlcik6CisgICAgICAg
ICogQVBJL0pTQ2xhc3NSZWYuY3BwOgorICAgICAgICAoT3BhcXVlSlNDbGFzczo6cHJvdG90eXBl
KToKKyAgICAgICAgKiBBUEkvSlNPYmplY3RSZWYuY3BwOgorICAgICAgICAoSlNPYmplY3RNYWtl
KToKKyAgICAgICAgKEpTT2JqZWN0R2V0UHJpdmF0ZSk6CisgICAgICAgIChKU09iamVjdFNldFBy
aXZhdGUpOgorICAgICAgICAoSlNPYmplY3RHZXRQcml2YXRlUHJvcGVydHkpOgorICAgICAgICAo
SlNPYmplY3RTZXRQcml2YXRlUHJvcGVydHkpOgorICAgICAgICAoSlNPYmplY3REZWxldGVQcml2
YXRlUHJvcGVydHkpOgorICAgICAgICAqIEFQSS9KU1ZhbHVlUmVmLmNwcDoKKyAgICAgICAgKEpT
VmFsdWVJc09iamVjdE9mQ2xhc3MpOgorICAgICAgICAqIEFQSS9KU1dlYWtPYmplY3RNYXBSZWZQ
cml2YXRlLmNwcDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBieXRlY29k
ZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKiBkZmcvREZHUmVwYXRjaC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6ZGZnUmVwYXRjaEdldE1ldGhvZEZhc3QpOgorICAgICAgICAoSlNDOjpERkc6OnRy
eUNhY2hlR2V0TWV0aG9kKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJ
VElubGluZU1ldGhvZHMuaDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0QWxsb2NhdGVKU0Z1bmN0
aW9uKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlND
OjpKSVQ6OnBhdGNoTWV0aG9kQ2FsbFByb3RvKToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3Bw
OgorICAgICAgICAoSlNDOjpERUZJTkVfU1RVQl9GVU5DVElPTik6CisgICAgICAgICogcnVudGlt
ZS9EYXRlUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0ludGVybmFsRnVuY3Rpb24u
Y3BwOgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKToK
KyAgICAgICAgKEpTQzo6SW50ZXJuYWxGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAg
ICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5j
dGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OkpTRnVuY3Rpb24pOgorICAgICAg
ICAoSlNDOjpKU0Z1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9K
U0Z1bmN0aW9uLmg6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmNyZWF0ZSk6CisgICAgICAg
IChKU0M6OkpTRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpyZXNldCk6
CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPTk9i
amVjdDo6SlNPTk9iamVjdCk6CisgICAgICAgIChKU0M6OkpTT05PYmplY3Q6OmZpbmlzaENyZWF0
aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1l
L0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnbG9iYWxPYmplY3QpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oOiBSZW1vdmVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSlNWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzVmFs
aWRDYWxsZWUpOgorICAgICAgICAqIHJ1bnRpbWUvTG9va3VwLmNwcDoKKyAgICAgICAgKEpTQzo6
c2V0VXBTdGF0aWNGdW5jdGlvblNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvTG9va3VwLmg6Cisg
ICAgICAgICogcnVudGltZS9NYXRoT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6TWF0aE9iamVj
dDo6TWF0aE9iamVjdCk6CisgICAgICAgIChKU0M6Ok1hdGhPYmplY3Q6OmZpbmlzaENyZWF0aW9u
KToKKyAgICAgICAgKiBydW50aW1lL01hdGhPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL051
bWJlclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuY3BwOgor
ICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OlJlZ0V4cE9iamVjdCk6CisgICAgICAgIChKU0M6
OlJlZ0V4cE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhw
T2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuY3BwOgorICAgICAgICAoSlND
OjpTdHJ1Y3R1cmU6OlN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuaDoK
KyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1
cmU6Omdsb2JhbE9iamVjdCk6CisKIDIwMTEtMDktMDcgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI5
NDYyNyBhbmQgcjk0NjMyLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQppbmRleCBlNjU2MTMxNjg3MGMwYmJiYWQ5NTQxMTE5ODYxYWUxNDg1OGVjOWU5Li4xYWU2NjM4
ZjYzZDYwYTlmY2RkMmU0NDlkODZkZWRhYjYzNTkzOGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzQ2LDggKzM0Niw2IEBAIGphdmFzY3JpcHRjb3Jl
X3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmpl
Y3QuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIFwKLQlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuY3BwIFwKLQlTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5kZXggNTY4ZTQwZjAyMzY4MmY3NDJlNDYwNjJiYTM4Y2Q1
MDRlYWI0OTU2NC4uYjA5NWI4YWE5MWQyY2UwZWRjYzIxYTAzOTExZWNhM2JlODM0ZGJlYSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCkBAIC0xMDksOCArMTA5LDcg
QEAgX19aTjNKU0MxMElkZW50aWZpZXIzYWRkRVBOU185RXhlY1N0YXRlRVBLYwogX19aTjNKU0Mx
MElkZW50aWZpZXI0ZnJvbUVQTlNfOUV4ZWNTdGF0ZUVpCiBfX1pOM0pTQzEwSWRlbnRpZmllcjRm
cm9tRVBOU185RXhlY1N0YXRlRWoKIF9fWk4zSlNDMTBJZGVudGlmaWVyOHRvVUludDMyRVJLTlNf
N1VTdHJpbmdFUmIKLV9fWk4zSlNDMTBKU0Z1bmN0aW9uMTRmaW5pc2hDcmVhdGlvbkVQTlNfOUV4
ZWNTdGF0ZUVQTlNfMTRKU0dsb2JhbE9iamVjdEVQTlNfMThGdW5jdGlvbkV4ZWN1dGFibGVFUE5T
XzE0U2NvcGVDaGFpbk5vZGVFCi1fX1pOM0pTQzEwSlNGdW5jdGlvbjE0ZmluaXNoQ3JlYXRpb25F
UE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RFaVJLTlNfMTBJZGVudGlmaWVyRVBO
U18xNEV4ZWN1dGFibGVCYXNlRQorX19aTjNKU0MxMEpTRnVuY3Rpb24xNGZpbmlzaENyZWF0aW9u
RVBOU185RXhlY1N0YXRlRWlSS05TXzEwSWRlbnRpZmllckVQTlNfMTRFeGVjdXRhYmxlQmFzZUUK
IF9fWk4zSlNDMTBKU0Z1bmN0aW9uNG5hbWVFUE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pTQzEwSlNG
dW5jdGlvbjZzX2luZm9FCiBfX1pOM0pTQzEwSlNGdW5jdGlvbkMxRVBOU185RXhlY1N0YXRlRVBO
U18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRQpAQCAtMjE4LDkgKzIxNyw2IEBAIF9f
Wk4zSlNDMjNBYnN0cmFjdFNhbXBsaW5nQ291bnRlcjRkdW1wRXYKIF9fWk4zSlNDMjNvYmplY3RQ
cm90b0Z1bmNUb1N0cmluZ0VQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDMjNzZXRVcFN0YXRpY0Z1
bmN0aW9uU2xvdEVQTlNfOUV4ZWNTdGF0ZUVQS05TXzlIYXNoRW50cnlFUE5TXzhKU09iamVjdEVS
S05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzI0RHluYW1pY0ds
b2JhbE9iamVjdFNjb3BlQzFFUk5TXzEySlNHbG9iYWxEYXRhRVBOU18xNEpTR2xvYmFsT2JqZWN0
RQotX19aTjNKU0MyNEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDE0ZmluaXNoQ3JlYXRpb25FUk5T
XzEySlNHbG9iYWxEYXRhRVBOU18xNEpTR2xvYmFsT2JqZWN0RQotX19aTjNKU0MyNEpTT2JqZWN0
V2l0aEdsb2JhbE9iamVjdEMyRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRQot
X19aTjNKU0MyNEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEMyRVJOU18xMkpTR2xvYmFsRGF0YUVQ
TlNfOVN0cnVjdHVyZUUKIF9fWk4zSlNDMjRjcmVhdGVTdGFja092ZXJmbG93RXJyb3JFUE5TXzlF
eGVjU3RhdGVFCiBfX1pOM0pTQzI1ZXZhbHVhdGVJbkdsb2JhbENhbGxGcmFtZUVSS05TXzdVU3Ry
aW5nRVJOU183SlNWYWx1ZUVQTlNfMTRKU0dsb2JhbE9iamVjdEUKIF9fWk4zSlNDMzVjcmVhdGVJ
bnRlcnJ1cHRlZEV4ZWN1dGlvbkV4Y2VwdGlvbkVQTlNfMTJKU0dsb2JhbERhdGFFCkBAIC0zNDMs
NyArMzM5LDcgQEAgX19aTjNKU0M5U3RydWN0dXJlMjhhZGRQcm9wZXJ0eVdpdGhvdXRUcmFuc2l0
aW9uRVJOU18xMkpTR2xvYmFsRGF0YUVSS05TXzEwSWRlbnQKIF9fWk4zSlNDOVN0cnVjdHVyZTNn
ZXRFUk5TXzEySlNHbG9iYWxEYXRhRVBOM1dURjEwU3RyaW5nSW1wbEVSalJQTlNfNkpTQ2VsbEUK
IF9fWk4zSlNDOVN0cnVjdHVyZTQwYWRkUHJvcGVydHlUcmFuc2l0aW9uVG9FeGlzdGluZ1N0cnVj
dHVyZUVQUzBfUktOU18xMElkZW50aWZpZXJFalBOU182SlNDZWxsRVJtCiBfX1pOM0pTQzlTdHJ1
Y3R1cmU2c19pbmZvRQotX19aTjNKU0M5U3RydWN0dXJlQzFFUk5TXzEySlNHbG9iYWxEYXRhRU5T
XzdKU1ZhbHVlRVJLTlNfOFR5cGVJbmZvRWpQS05TXzlDbGFzc0luZm9FCitfX1pOM0pTQzlTdHJ1
Y3R1cmVDMUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzE0SlNHbG9iYWxPYmplY3RFTlNfN0pTVmFs
dWVFUktOU184VHlwZUluZm9FalBLTlNfOUNsYXNzSW5mb0UKIF9fWk4zSlNDOVN0cnVjdHVyZUQx
RXYKIF9fWk4zSlNDOWNvbnN0cnVjdEVQTlNfOUV4ZWNTdGF0ZUVOU183SlNWYWx1ZUVOU18xM0Nv
bnN0cnVjdFR5cGVFUktOU18xM0NvbnN0cnVjdERhdGFFUktOU183QXJnTGlzdEUKIF9fWk4zSlND
ZXFFUktOU183VVN0cmluZ0VQS2MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5neXBpIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lmd5cGkKaW5kZXggNjcxNGRmMTM1OThmMzM5MmNmMTBlNzkwMmQ2OWZhNThmMDRkZjA4NC4uZjQ0
YzRmN2E2Y2FjOTlmM2FiZjcyNTE2YmFiNTFjMjk4ZWFlZDQ0MSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKQEAgLTg2LDcgKzg2LDYgQEAKICAgICAgICAgICAg
ICdydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgnLAogICAgICAgICAgICAgJ3J1bnRpbWUvSlNMb2Nr
LmgnLAogICAgICAgICAgICAgJ3J1bnRpbWUvSlNPYmplY3QuaCcsCi0gICAgICAgICAgICAncnVu
dGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaCcsCiAgICAgICAgICAgICAncnVudGltZS9K
U1N0cmluZy5oJywKICAgICAgICAgICAgICdydW50aW1lL0pTVHlwZS5oJywKICAgICAgICAgICAg
ICdydW50aW1lL0pTVHlwZUluZm8uaCcsCkBAIC01MjgsNyArNTI3LDYgQEAKICAgICAgICAgICAg
ICdydW50aW1lL0pTT05PYmplY3QuY3BwJywKICAgICAgICAgICAgICdydW50aW1lL0pTT05PYmpl
Y3QuaCcsCiAgICAgICAgICAgICAncnVudGltZS9KU09iamVjdC5jcHAnLAotICAgICAgICAgICAg
J3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcCcsCiAgICAgICAgICAgICAncnVu
dGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCcsCiAgICAgICAgICAgICAncnVudGltZS9K
U1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgnLAogICAgICAgICAgICAgJ3J1bnRpbWUvSlNTdGF0aWNT
Y29wZU9iamVjdC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnBybyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5wcm8K
aW5kZXggODFmZmVmZDdkZGZlODJjNjFhYjc1ZDM0ZjE5ZWQyNWM4ZTA3Nzk5MC4uMGQwODExMzhh
MWYzMzcwZGRjYzljMTQ0ZGNlZmQwOTQ5ZWI1ZDJhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnBybworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUucHJvCkBAIC0xNTYsNyArMTU2LDYgQEAgU09VUkNFUyArPSBcCiAgICAg
cnVudGltZS9KU0xvY2suY3BwIFwKICAgICBydW50aW1lL0pTTm90QW5PYmplY3QuY3BwIFwKICAg
ICBydW50aW1lL0pTT2JqZWN0LmNwcCBcCi0gICAgcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxP
YmplY3QuY3BwIFwKICAgICBydW50aW1lL0pTT05PYmplY3QuY3BwIFwKICAgICBydW50aW1lL0pT
UHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwIFwKICAgICBydW50aW1lL0pTU3RhdGljU2NvcGVPYmpl
Y3QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS5kZWYKaW5kZXggOTM2ODFiNzViNmRjZDMzMjc5MzEwNmUyOWVmNzIwY2UwZjJlZDMzYi4u
M2U2YzM0N2FjMjdmN2ZhZmM5YzA2YzYwMzMwODFkMDQ5NmVmN2QwNiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5kZWYKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKQEAgLTEyLDE1ICsx
MiwxMiBAQCBFWFBPUlRTCiAgICAgPz8wSlNCeXRlQXJyYXlASlNDQEBBQUVAUEFWRXhlY1N0YXRl
QDFAUEFWU3RydWN0dXJlQDFAUEFWQnl0ZUFycmF5QFdURkBAQFoKICAgICA/PzBKU0Z1bmN0aW9u
QEpTQ0BAQUFFQFBBVkV4ZWNTdGF0ZUAxQFBBVkpTR2xvYmFsT2JqZWN0QDFAUEFWU3RydWN0dXJl
QDFAQFoKICAgICA/PzBKU0xvY2tASlNDQEBRQUVAUEFWRXhlY1N0YXRlQDFAQFoKLSAgICA/PzBK
U09iamVjdFdpdGhHbG9iYWxPYmplY3RASlNDQEBJQUVAUEFWSlNHbG9iYWxPYmplY3RAMUBQQVZT
dHJ1Y3R1cmVAMUBAWgotICAgID8/MEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEBKU0NAQElBRUBB
QVZKU0dsb2JhbERhdGFAMUBQQVZTdHJ1Y3R1cmVAMUBAWgogICAgID8/ME1ENUBXVEZAQFFBRUBY
WgogICAgID8/ME11dGV4QFdURkBAUUFFQFhaCiAgICAgPz8wUmVmQ291bnRlZExlYWtDb3VudGVy
QFdURkBAUUFFQFBCREBaCiAgICAgPz8wUmVnRXhwT2JqZWN0QEpTQ0BASUFFQFBBVkpTR2xvYmFs
T2JqZWN0QDFAUEFWU3RydWN0dXJlQDFAUEFWUmVnRXhwQDFAQFoKICAgICA/PzBTSEExQFdURkBA
UUFFQFhaCiAgICAgPz8wU3RyaW5nT2JqZWN0QEpTQ0BASUFFQEFBVkpTR2xvYmFsRGF0YUAxQFBB
VlN0cnVjdHVyZUAxQFBBVkpTU3RyaW5nQDFAQFoKLSAgICA/PzBTdHJ1Y3R1cmVASlNDQEBBQUVA
QUFWSlNHbG9iYWxEYXRhQDFAVkpTVmFsdWVAMUBBQlZUeXBlSW5mb0AxQElQQlVDbGFzc0luZm9A
MUBAWgogICAgID8/MFRocmVhZENvbmRpdGlvbkBXVEZAQFFBRUBYWgogICAgID8/MFVTdHJpbmdA
SlNDQEBRQUVAUEJEQFoKICAgICA/PzBVU3RyaW5nQEpTQ0BAUUFFQFBCRElAWgpAQCAtMTc3LDgg
KzE3NCw2IEBAIEVYUE9SVFMKICAgICA/ZmluYWxpemVAV2Vha0hhbmRsZU93bmVyQEpTQ0BAVUFF
WFY/JEhhbmRsZUBXNFVua25vd25ASlNDQEBAMkBQQVhAWgogICAgID9maW5pc2hDcmVhdGlvbkBK
U0FycmF5QEpTQ0BASUFFWEFBVkpTR2xvYmFsRGF0YUAyQEBaCiAgICAgP2ZpbmlzaENyZWF0aW9u
QEpTQXJyYXlASlNDQEBJQUVYQUFWSlNHbG9iYWxEYXRhQDJAQUJWQXJnTGlzdEAyQEBaCi0gICAg
P2ZpbmlzaENyZWF0aW9uQEpTRnVuY3Rpb25ASlNDQEBJQUVYUEFWRXhlY1N0YXRlQDJAUEFWSlNH
bG9iYWxPYmplY3RAMkBIQUJWSWRlbnRpZmllckAyQFBBVkV4ZWN1dGFibGVCYXNlQDJAQFoKLSAg
ICA/ZmluaXNoQ3JlYXRpb25ASlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0QEpTQ0BASUFFWEFBVkpT
R2xvYmFsRGF0YUAyQFBBVkpTR2xvYmFsT2JqZWN0QDJAQFoKICAgICA/Zm9jdXNAUHJvZmlsZUBK
U0NAQFFBRVhQQlZQcm9maWxlTm9kZUAyQEBaCiAgICAgP2Zyb21ASWRlbnRpZmllckBKU0NAQFNB
P0FWMTJAUEFWRXhlY1N0YXRlQDJASEBaCiAgICAgP2Zyb21ASWRlbnRpZmllckBKU0NAQFNBP0FW
MTJAUEFWRXhlY1N0YXRlQDJASUBaCkBAIC0yMTgsNyArMjEzLDYgQEAgRVhQT1JUUwogICAgID9n
ZXRVSW50MzJASlNDZWxsQEpTQ0BAVUJFX05BQUlAWgogICAgID9nZXR0ZXJAUHJvcGVydHlEZXNj
cmlwdG9yQEpTQ0BAUUJFP0FWSlNWYWx1ZUAyQFhaCiAgICAgP2dsb2JhbEV4ZWNASlNHbG9iYWxP
YmplY3RASlNDQEBRQUVQQVZFeGVjU3RhdGVAMkBYWgotICAgID9nbG9iYWxPYmplY3RASlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0QEpTQ0BAUUJFUEFWSlNHbG9iYWxPYmplY3RAMkBYWgogICAgID9n
bG9iYWxPYmplY3RDb3VudEBIZWFwQEpTQ0BAUUFFSVhaCiAgICAgP2dyb3dASGFuZGxlSGVhcEBK
U0NAQEFBRVhYWgogICAgID9oYXNJbnN0YW5jZUBKU09iamVjdEBKU0NAQFVBRV9OUEFWRXhlY1N0
YXRlQDJAVkpTVmFsdWVAMkAxQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9q
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oKaW5kZXggNjI1YjA0Mjg5NThjMzA1ZmU0NTFjMmI1
ZjA2ODA4MWI1OWM5YWQzYy4uNzUwMmUwYjViN2FkODE0OWZjMmQyZjkxZjZhNjc1MDJjMTNiODcx
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJv
ai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3Byb2oKQEAgLTg0NiwxNCArODQ2LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8
RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccnVudGltZVxKU09iamVjdFdpdGhHbG9iYWxP
YmplY3QuY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRo
PSIuLlwuLlxydW50aW1lXEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oIgotCQkJCT4KLQkJCTwv
RmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxydW50aW1lXEpTT05PYmpl
Y3QuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggOTU2OTdmYTFhN2I0NmY4ZDk1ZDBiM2YxYjU4NTUxOGMxOTk1NTRjNy4uOWRkNDI4ZWFjNWEx
ZDllMjNkMTAwYjczZmVjMTkyMzc4NGJhN2RiMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTQxNSw4ICs0MTUsNiBAQAogCQlBNzY2QjQ0RjBFRThEQ0QxMDA5NTE4Q0EgLyogRXhl
Y3V0YWJsZUFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTdCNDhEQjUwRUU3NENGQzAwRENCREI2IC8qIEV4ZWN1dGFibGVBbGxvY2F0b3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzZD
NTE3NjExODI3NDhEMDA3MTVCMDUgLyogSlNJbnRlcmZhY2VKSVQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NkM1MTc0MTE4Mjc0OEQwMDcxNUIwNSAv
KiBKU0ludGVyZmFjZUpJVC5oICovOyB9OwogCQlBNzZGNTRBMzEzQjI4QUFCMDBFRjJCQ0UgLyog
SklUV3JpdGVCYXJyaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNzZGNTRBMjEzQjI4QUFCMDBFRjJCQ0UgLyogSklUV3JpdGVCYXJyaWVyLmggKi87
IH07Ci0JCUE3ODNBMEQxMTFBMzZEQ0EwMDU2M0QyMCAvKiBKU09iamVjdFdpdGhHbG9iYWxPYmpl
Y3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3ODNB
MEQwMTFBMzZEQ0EwMDU2M0QyMCAvKiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBNzgzQTJBQjExQTVC
RTg0MDA1NjNEMjAgLyogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3ODNBMkFBMTFBNUJFODQwMDU2M0Qy
MCAvKiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QuY3BwICovOyB9OwogCQlBNzg0QTI2MTExRDE2
NjIyMDA1Nzc2QUMgLyogQVNUQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTdBN0VFNzQxMUI5OEI4RDAwNjVBMTRGIC8qIEFTVEJ1aWxkZXIu
aCAqLzsgfTsKIAkJQTc4NEEyNjIxMUQxNjYyMjAwNTc3NkFDIC8qIEpTUGFyc2VyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QTdFRTc1MTFCOThC
OEQwMDY1QTE0RiAvKiBKU1BhcnNlci5jcHAgKi87IH07CiAJCUE3ODRBMjYzMTFEMTY2MjIwMDU3
NzZBQyAvKiBKU1BhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTdBN0VFNzYxMUI5OEI4RDAwNjVBMTRGIC8qIEpTUGFyc2VyLmggKi87IH07CkBA
IC0xMTgxLDggKzExNzksNiBAQAogCQlBNzU3MDZERDExOEEyQkNGMDA1N0Y4OEYgLyogSklUQXJp
dGhtZXRpYzMyXzY0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpJ
VEFyaXRobWV0aWMzMl82NC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NkM1
MTc0MTE4Mjc0OEQwMDcxNUIwNSAvKiBKU0ludGVyZmFjZUpJVC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU0ludGVyZmFjZUpJVC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBNzZGNTRBMjEzQjI4QUFCMDBFRjJCQ0UgLyogSklUV3JpdGVCYXJyaWVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpJVFdyaXRlQmFycmllci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlBNzgzQTBEMDExQTM2RENBMDA1NjNEMjAgLyogSlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
NzgzQTJBQTExQTVCRTg0MDA1NjNEMjAgLyogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTT2JqZWN0V2l0aEdsb2JhbE9i
amVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3OTFFRjI2MEYxMUUwNzkw
MEFFMUY2OCAvKiBKU0J5dGVBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0J5dGVBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzkxRUYyNzBG
MTFFMDc5MDBBRTFGNjggLyogSlNCeXRlQXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNCeXRlQXJyYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNzlFREIwODExNTMxQ0Q2MDAxOUU5MTIgLyogSlNPYmplY3RSZWZQcml2YXRlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTT2JqZWN0UmVmUHJpdmF0ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjAzNCw4ICsyMDMwLDYgQEAKIAkJCQlBNzI3MDA3
NzBEQUM2MDU2MDBFNTQ4RDcgLyogSlNOb3RBbk9iamVjdC5oICovLAogCQkJCUJDMjJBMzk4MEUx
NkUxNDgwMEFGMjFDOCAvKiBKU09iamVjdC5jcHAgKi8sCiAJCQkJQkMyMkEzOTkwRTE2RTE0ODAw
QUYyMUM4IC8qIEpTT2JqZWN0LmggKi8sCi0JCQkJQTc4M0EyQUExMUE1QkU4NDAwNTYzRDIwIC8q
IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5jcHAgKi8sCi0JCQkJQTc4M0EwRDAxMUEzNkRDQTAw
NTYzRDIwIC8qIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oICovLAogCQkJCUE3Rjk5MzVFMEZE
NzMyNTEwMEEwQjJEMCAvKiBKU09OT2JqZWN0LmNwcCAqLywKIAkJCQlBN0Y5OTM1RDBGRDczMjUx
MDBBMEIyRDAgLyogSlNPTk9iamVjdC5oICovLAogCQkJCUE3MjdGRjY2MERBMzA1M0IwMEU1NDhE
NyAvKiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCAqLywKQEAgLTI1MTgsNyArMjUxMiw2IEBA
CiAJCQkJQkMxOEM0MjQwRTE2RjVDRDAwQjM0NDYwIC8qIEpTT2JqZWN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzE4QzQyNTBFMTZGNUNEMDBCMzQ0NjAgLyogSlNPYmplY3RSZWYuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE3MjgwQTI4MTE1NTdFMzAwMEQ1Njk1NyAvKiBKU09iamVjdFJlZlByaXZh
dGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUE3ODNBMEQxMTFBMzZEQ0EwMDU2M0QyMCAvKiBKU09i
amVjdFdpdGhHbG9iYWxPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3Rjk5MzVGMEZENzMy
NTEwMEEwQjJEMCAvKiBKU09OT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzg3Q0RCOTEw
NzEyQUQ0MDAwNjE0Q0YgLyogSlNPTk9iamVjdC5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3
ODRBMjYzMTFEMTY2MjIwMDU3NzZBQyAvKiBKU1BhcnNlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0z
MTQzLDcgKzMxMzYsNiBAQAogCQkJCUE3MjcwMDkwMERBQzZCQkMwMEU1NDhENyAvKiBKU05vdEFu
T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUQ0MTA3RUMzNzYwMDQyN0E0OCAv
KiBKU09iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDgyQjdFNDBBNDMwNzYwMDA1MTdD
RkMgLyogSlNPYmplY3RSZWYuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTc4M0EyQUIxMUE1QkU4
NDAwNTYzRDIwIC8qIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBN0Y5OTM2MDBGRDczMjUxMDBBMEIyRDAgLyogSlNPTk9iamVjdC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBNzg0QTI2MjExRDE2NjIyMDA1Nzc2QUMgLyogSlNQYXJzZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTVGNkU2OTUwRTVCNUY5NzAwOTFFODYwIC8qIEpTUHJvZmlsZXJQcml2
YXRlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5oCmluZGV4IDgwOGEwNmIzNzZmYmViOGZiMGUwOTQ0MTk5NTRiYWVjMDI1ODIzY2Uu
LjZjMGQ2YTdiOWNhNzI0OGQ0MTY4ODEyNmEwMGE5MjZkM2M0YTgxNzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKQEAgLTE1Niw3ICsxNTYsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgSklUV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gY2FjaGVkUHJv
dG90eXBlU3RydWN0dXJlOwogICAgICAgICAvLyBXZSdkIGxpa2UgdGhpcyB0byBhY3R1YWxseSBi
ZSBKU0Z1bmN0aW9uLCBidXQgSW50ZXJuYWxGdW5jdGlvbiBhbmQgSlNGdW5jdGlvbgogICAgICAg
ICAvLyBkb24ndCBoYXZlIGEgY29tbW9uIHBhcmVudCBjbGFzcyBhbmQgd2UgYWxsb3cgc3BlY2lh
bGlzYXRpb24gb24gYm90aAotICAgICAgICBKSVRXcml0ZUJhcnJpZXI8SlNPYmplY3RXaXRoR2xv
YmFsT2JqZWN0PiBjYWNoZWRGdW5jdGlvbjsKKyAgICAgICAgSklUV3JpdGVCYXJyaWVyPEpTT2Jq
ZWN0PiBjYWNoZWRGdW5jdGlvbjsKICAgICAgICAgSklUV3JpdGVCYXJyaWVyPEpTT2JqZWN0PiBj
YWNoZWRQcm90b3R5cGU7CiAgICAgICAgIGJvb2wgc2VlbjsKICAgICB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdSZXBhdGNoLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUmVwYXRjaC5jcHAKaW5kZXggODk1MmUzNzJhN2I2ZDljN2MzMjdkMDJm
YWNlOTM0OTgzNzllNWNjZS4uNDFkYWZjYWY0NDI2OGU3OWZmOGI1MGNlNmZmNjMzZDU5NGIyMTQw
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdSZXBhdGNoLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1JlcGF0Y2guY3BwCkBAIC0yNDUsNyAr
MjQ1LDcgQEAgdm9pZCBkZmdSZXBhdGNoR2V0QnlJRChFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUg
YmFzZVZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiBwcm8KICAgICAgICAgZGZnUmVwYXRjaENhbGwo
ZXhlYy0+Y29kZUJsb2NrKCksIHN0dWJJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbiwgb3BlcmF0aW9u
R2V0QnlJZCk7CiB9CiAKLXN0YXRpYyB2b2lkIGRmZ1JlcGF0Y2hHZXRNZXRob2RGYXN0KEpTR2xv
YmFsRGF0YSogZ2xvYmFsRGF0YSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIE1ldGhvZENhbGxMaW5r
SW5mbyYgbWV0aG9kSW5mbywgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KiBjYWxsZWUsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBKU09iamVjdCogc2xvdEJhc2VPYmplY3QpCitzdGF0aWMgdm9pZCBk
ZmdSZXBhdGNoR2V0TWV0aG9kRmFzdChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIENvZGVCbG9j
ayogY29kZUJsb2NrLCBNZXRob2RDYWxsTGlua0luZm8mIG1ldGhvZEluZm8sIEpTT2JqZWN0KiBj
YWxsZWUsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU09iamVjdCogc2xvdEJhc2VPYmplY3QpCiB7
CiAgICAgU2NyaXB0RXhlY3V0YWJsZSogb3duZXIgPSBjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJs
ZSgpOwogICAgIApAQCAtMjc0LDcgKzI3NCw3IEBAIHN0YXRpYyBib29sIHRyeUNhY2hlR2V0TWV0
aG9kKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IElkZW50aWZpCiAg
ICAgICAgICYmIChzbG90QmFzZU9iamVjdCA9IGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpLT5n
ZXRQcm9wZXJ0eVNwZWNpZmljVmFsdWUoZXhlYywgcHJvcGVydHlOYW1lLCBzcGVjaWZpYykKICAg
ICAgICAgJiYgc3BlY2lmaWMpIHsKICAgICAgICAgCi0gICAgICAgIEpTT2JqZWN0V2l0aEdsb2Jh
bE9iamVjdCogY2FsbGVlID0gKEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCopc3BlY2lmaWM7Cisg
ICAgICAgIEpTT2JqZWN0KiBjYWxsZWUgPSBhc09iamVjdChzcGVjaWZpYyk7CiAgICAgICAgIAog
ICAgICAgICAvLyBTaW5jZSB3ZSdyZSBhY2Nlc3NpbmcgYSBwcm90b3R5cGUgaW4gYSBsb29wLCBp
dCdzIGEgZ29vZCBiZXQgdGhhdCBpdAogICAgICAgICAvLyBzaG91bGQgbm90IGJlIHRyZWF0ZWQg
YXMgYSBkaWN0aW9uYXJ5LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKaW5kZXggOGU5MTk5NmI4N2Jl
YjVkNzJlMGUyODcyNDhjMGRjMTg3OTczNjNkYi4uMzcxOWNkYmMyNTVjMmFlMDkxOGU1YTdiZTA0
OGJmMmNkNzM4Yjk1YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCkBAIC0yMzksNyArMjM5LDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIHZvaWQgcGF0Y2hHZXRCeUlkU2Vs
ZihDb2RlQmxvY2sqIGNvZGVibG9jaywgU3RydWN0dXJlU3R1YkluZm8qLCBTdHJ1Y3R1cmUqLCBz
aXplX3QgY2FjaGVkT2Zmc2V0LCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpOwogICAg
ICAgICBzdGF0aWMgdm9pZCBwYXRjaFB1dEJ5SWRSZXBsYWNlKENvZGVCbG9jayogY29kZWJsb2Nr
LCBTdHJ1Y3R1cmVTdHViSW5mbyosIFN0cnVjdHVyZSosIHNpemVfdCBjYWNoZWRPZmZzZXQsIFJl
dHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgYm9vbCBkaXJlY3QpOwotICAgICAgICBzdGF0
aWMgdm9pZCBwYXRjaE1ldGhvZENhbGxQcm90byhKU0dsb2JhbERhdGEmLCBDb2RlQmxvY2sqIGNv
ZGVibG9jaywgTWV0aG9kQ2FsbExpbmtJbmZvJiwgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlKiwgSlNPYmplY3QqLCBSZXR1cm5BZGRyZXNzUHRyKTsKKyAgICAgICAgc3RhdGlj
IHZvaWQgcGF0Y2hNZXRob2RDYWxsUHJvdG8oSlNHbG9iYWxEYXRhJiwgQ29kZUJsb2NrKiBjb2Rl
YmxvY2ssIE1ldGhvZENhbGxMaW5rSW5mbyYsIEpTT2JqZWN0KiwgU3RydWN0dXJlKiwgSlNPYmpl
Y3QqLCBSZXR1cm5BZGRyZXNzUHRyKTsKIAogICAgICAgICBzdGF0aWMgdm9pZCBjb21waWxlUGF0
Y2hHZXRBcnJheUxlbmd0aChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIENvZGVCbG9jayogY29k
ZUJsb2NrLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MpCiAgICAgICAgIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRob2RzLmgKaW5kZXggMTFjYjAwZWVi
ODcyNzE3NjFmMjk5MDRmN2YzNTBiZmY1ZDE2MTEwYi4uNzdlZGMyZWM4MDNmMjRiZjVkYWIzOTlm
ZjgyYTU2NmI2N2RiZTQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRJbmxpbmVNZXRob2RzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxp
bmVNZXRob2RzLmgKQEAgLTQxOCwxNCArNDE4LDYgQEAgaW5saW5lIHZvaWQgSklUOjplbWl0QWxs
b2NhdGVKU0Z1bmN0aW9uKEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgUmVnaXN0ZXIK
ICAgICAvLyBzdG9yZSB0aGUgZnVuY3Rpb24ncyBleGVjdXRhYmxlIG1lbWJlcgogICAgIHN0b3Jl
UHRyKFRydXN0ZWRJbW1QdHIoZXhlY3V0YWJsZSksIEFkZHJlc3MocmVzdWx0LCBKU0Z1bmN0aW9u
OjpvZmZzZXRPZkV4ZWN1dGFibGUoKSkpOwogCi0gICAgCi0gICAgLy8gc3RvcmUgdGhlIGZ1bmN0
aW9uJ3MgZ2xvYmFsIG9iamVjdAotICAgIGludCBnbG9iYWxPYmplY3RPZmZzZXQgPSBzaXplb2Yo
SlNWYWx1ZSkgKiBKU0Z1bmN0aW9uOjpHbG9iYWxPYmplY3RTbG90OwotICAgIHN0b3JlUHRyKFRy
dXN0ZWRJbW1QdHIobV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpKSwgQWRkcmVzcyhyZWdUMSwg
Z2xvYmFsT2JqZWN0T2Zmc2V0ICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBh
eWxvYWQpKSk7Ci0jaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICBzdG9yZTMyKFRydXN0ZWRJbW0z
MihKU1ZhbHVlOjpDZWxsVGFnKSwgQWRkcmVzcyhyZWdUMSwgZ2xvYmFsT2JqZWN0T2Zmc2V0ICsg
T0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnRhZykpKTsKLSNlbmRpZgotCiAgICAg
Ly8gc3RvcmUgdGhlIGZ1bmN0aW9uJ3MgbmFtZQogICAgIEFTU0VSVChleGVjdXRhYmxlLT5uYW1l
VmFsdWUoKSk7CiAgICAgaW50IGZ1bmN0aW9uTmFtZU9mZnNldCA9IHNpemVvZihKU1ZhbHVlKSAq
IG1fY29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKS0+ZnVuY3Rpb25OYW1lT2Zmc2V0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCmluZGV4IDEz
NGZhYTEwZmYyMmUyZTI0ZWY1YTNhNWYxZTU1NDkyZjY0NGFhZGIuLjYyY2Y5MmVmODliODU0YmE2
NDFiOWFhMzVhYjNmN2VhMjE2YzQzNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCkBAIC0xMDQ3LDcgKzEwNDcsNyBAQCB2b2lkIEpJVDo6
dGVzdFByb3RvdHlwZShKU1ZhbHVlIHByb3RvdHlwZSwgSnVtcExpc3QmIGZhaWx1cmVDYXNlcykK
ICAgICBmYWlsdXJlQ2FzZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwgQWRkcmVzcyhyZWdU
MywgSlNDZWxsOjpzdHJ1Y3R1cmVPZmZzZXQoKSksIFRydXN0ZWRJbW1QdHIocHJvdG90eXBlLmFz
Q2VsbCgpLT5zdHJ1Y3R1cmUoKSkpKTsKIH0KIAotdm9pZCBKSVQ6OnBhdGNoTWV0aG9kQ2FsbFBy
b3RvKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIE1ldGhv
ZENhbGxMaW5rSW5mbyYgbWV0aG9kQ2FsbExpbmtJbmZvLCBKU09iamVjdFdpdGhHbG9iYWxPYmpl
Y3QqIGNhbGxlZSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTT2JqZWN0KiBwcm90bywgUmV0dXJu
QWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQordm9pZCBKSVQ6OnBhdGNoTWV0aG9kQ2FsbFByb3Rv
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIE1ldGhvZENh
bGxMaW5rSW5mbyYgbWV0aG9kQ2FsbExpbmtJbmZvLCBKU09iamVjdCogY2FsbGVlLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgSlNPYmplY3QqIHByb3RvLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFk
ZHJlc3MpCiB7CiAgICAgUmVwYXRjaEJ1ZmZlciByZXBhdGNoQnVmZmVyKGNvZGVCbG9jayk7CiAg
ICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCmluZGV4IGJlMWRjMGYxM2Nk
NjAxZjAyNTdiMjBmODU0ZTJlZjRlMDY2YzdiMmYuLmVjMjg1MjIyYzk4NjhmMjNmNzk0MzZhYmI1
MzVhYWRlMDgxNjQ5Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
U3R1YnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCkBA
IC0xNTI2LDcgKzE1MjYsNyBAQCBERUZJTkVfU1RVQl9GVU5DVElPTihFbmNvZGVkSlNWYWx1ZSwg
b3BfZ2V0X2J5X2lkX21ldGhvZF9jaGVjaykKICAgICAgICAgJiYgc3BlY2lmaWMKICAgICAgICAg
KSB7CiAKLSAgICAgICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KiBjYWxsZWUgPSAoSlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0KilzcGVjaWZpYzsKKyAgICAgICAgSlNPYmplY3QqIGNhbGxlZSA9
IGFzT2JqZWN0KHNwZWNpZmljKTsKIAogICAgICAgICAvLyBTaW5jZSB3ZSdyZSBhY2Nlc3Npbmcg
YSBwcm90b3R5cGUgaW4gYSBsb29wLCBpdCdzIGEgZ29vZCBiZXQgdGhhdCBpdAogICAgICAgICAv
LyBzaG91bGQgbm90IGJlIHRyZWF0ZWQgYXMgYSBkaWN0aW9uYXJ5LgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAppbmRleCBkZGEyOTQxNjM4NDFj
ZGVkYzU0Zjc2OTU3ZDRhYzg0ZTMwZmE3ZTIxLi40MDM0MTViNWFiOGU4NTQyYzMzY2E2YjA2Mzdh
NmU2ZGE3MWU3YWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
UHJvdG90eXBlLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkRhdGVDb252ZXJzaW9u
LmgiCiAjaW5jbHVkZSAiRGF0ZUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKKyNpbmNs
dWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTU3RyaW5nLmgiCiAjaW5jbHVkZSAi
SlNTdHJpbmdCdWlsZGVyLmgiCiAjaW5jbHVkZSAiTG9va3VwLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCmluZGV4IDA3YzBmN2Y1
YmY2NWEzZTc1NmI1MWMyNDAzN2NhY2MzM2M0MmU2MjIuLjEwYWFhNjBlZTdjOGVjMzRmNmY0MDM4
OTI0ZDI4MDM4MWE5ZjMwYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGVybmFsRnVuY3Rpb24uY3BwCkBAIC0zNCwyMiArMzQsMjIgQEAgdm9pZCBJbnRlcm5h
bEZ1bmN0aW9uOjp2dGFibGVBbmNob3IoKSB7fQogCiBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxM
KEludGVybmFsRnVuY3Rpb24pOwogCi1jb25zdCBDbGFzc0luZm8gSW50ZXJuYWxGdW5jdGlvbjo6
c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpzX2luZm8s
IDAsIDAgfTsKK2NvbnN0IENsYXNzSW5mbyBJbnRlcm5hbEZ1bmN0aW9uOjpzX2luZm8gPSB7ICJG
dW5jdGlvbiIsICZKU05vbkZpbmFsT2JqZWN0OjpzX2luZm8sIDAsIDAgfTsKIAogSW50ZXJuYWxG
dW5jdGlvbjo6SW50ZXJuYWxGdW5jdGlvbihWUHRyU3RlYWxpbmdIYWNrVHlwZSkKLSAgICA6IEpT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdChWUHRyU3RlYWxpbmdIYWNrKQorICAgIDogSlNOb25GaW5h
bE9iamVjdChWUHRyU3RlYWxpbmdIYWNrKQogewogfQogCi1JbnRlcm5hbEZ1bmN0aW9uOjpJbnRl
cm5hbEZ1bmN0aW9uKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElkZW50aWZpZXImIG5hbWUp
Ci0gICAgOiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUp
CitJbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKEpTR2xvYmFsRGF0YSogZ2xvYmFs
RGF0YSwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRlbnRp
ZmllciYgbmFtZSkKKyAgICA6IEpTTm9uRmluYWxPYmplY3QoKmdsb2JhbERhdGEsIHN0cnVjdHVy
ZSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbigqZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBuYW1l
KTsKKyAgICBmaW5pc2hDcmVhdGlvbigqZ2xvYmFsRGF0YSwgbmFtZSk7CiB9CiAKLXZvaWQgSW50
ZXJuYWxGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKQordm9p
ZCBJbnRlcm5hbEZ1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIGNvbnN0IElkZW50aWZpZXImIG5hbWUpCiB7Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
Z2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0KTsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9i
YWxEYXRhKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHB1dERpcmVjdChn
bG9iYWxEYXRhLCBnbG9iYWxEYXRhLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzU3RyaW5nKCZnbG9i
YWxEYXRhLCBuYW1lLmlzTnVsbCgpID8gIiIgOiBuYW1lLnVzdHJpbmcoKSksIERvbnREZWxldGUg
fCBSZWFkT25seSB8IERvbnRFbnVtKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAppbmRleCA3NDYxZTY2Y2NiNTQwNWI3MGUzYjc1NmM1
NTkwYjE3MDJlYjQ2ODI5Li5lMDViYjEzNDk5MGU3M2JhM2MyNTZjNzI5ZGIzODE1NGJlYWJiZDRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0
aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlv
bi5oCkBAIC0yNCwxNiArMjQsMTYgQEAKICNpZm5kZWYgSW50ZXJuYWxGdW5jdGlvbl9oCiAjZGVm
aW5lIEludGVybmFsRnVuY3Rpb25faAogCi0jaW5jbHVkZSAiSlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0LmgiCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJJZGVudGlmaWVyLmgiCiAK
IG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgRnVuY3Rpb25Qcm90b3R5cGU7CiAKLSAgICBj
bGFzcyBJbnRlcm5hbEZ1bmN0aW9uIDogcHVibGljIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCB7
CisgICAgY2xhc3MgSW50ZXJuYWxGdW5jdGlvbiA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsK
ICAgICBwdWJsaWM6Ci0gICAgICAgIHR5cGVkZWYgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IEJh
c2U7CisgICAgICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwogCiAgICAgICAgIHN0
YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKQEAgLTU0LDcgKzU0
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgSW50ZXJuYWxGdW5jdGlvbihKU0dsb2Jh
bERhdGEqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGNvbnN0IElkZW50aWZpZXImKTsK
IAotICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIEpTR2xvYmFsT2Jq
ZWN0KiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSk7CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oSlNHbG9iYWxEYXRhJiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSk7CiAKICAgICBwcml2YXRl
OgogICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJikgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCBkYWY0
Y2E5NTgyOTdmMzE4N2M3YTZjY2NjZjQzOTYwNTgwYzhlY2RkLi5kZmU5YzI5ZjM1ZjQ2MzBhYmJk
OWQwNzM1MjQ2OTJiYTVhOGRkNTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmNwcApAQCAtNjIsMzEgKzYyLDMxIEBAIEpTRnVuY3Rpb246OkpTRnVuY3Rp
b24oVlB0clN0ZWFsaW5nSGFja1R5cGUpCiB9CiAKIEpTRnVuY3Rpb246OkpTRnVuY3Rpb24oRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkKLSAgICA6IEJhc2UoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCisgICAgOiBCYXNl
KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogICAgICwgbV9leGVjdXRhYmxlKCkKICAg
ICAsIG1fc2NvcGVDaGFpbihleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIGdsb2JhbE9iamVjdC0+
Z2xvYmFsU2NvcGVDaGFpbigpKQogewogfQogCiBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNT
dGF0ZSogZXhlYywgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBTY29wZUNoYWluTm9k
ZSogc2NvcGVDaGFpbk5vZGUpCi0gICAgOiBCYXNlKHNjb3BlQ2hhaW5Ob2RlLT5nbG9iYWxPYmpl
Y3QuZ2V0KCksIHNjb3BlQ2hhaW5Ob2RlLT5nbG9iYWxPYmplY3QtPmZ1bmN0aW9uU3RydWN0dXJl
KCkpCisgICAgOiBCYXNlKGV4ZWMtPmdsb2JhbERhdGEoKSwgc2NvcGVDaGFpbk5vZGUtPmdsb2Jh
bE9iamVjdC0+ZnVuY3Rpb25TdHJ1Y3R1cmUoKSkKICAgICAsIG1fZXhlY3V0YWJsZShleGVjLT5n
bG9iYWxEYXRhKCksIHRoaXMsIGV4ZWN1dGFibGUpCiAgICAgLCBtX3Njb3BlQ2hhaW4oZXhlYy0+
Z2xvYmFsRGF0YSgpLCB0aGlzLCBzY29wZUNoYWluTm9kZSkKIHsKIH0KIAotdm9pZCBKU0Z1bmN0
aW9uOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEV4ZWN1dGFibGVC
YXNlKiBleGVjdXRhYmxlKQordm9pZCBKU0Z1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbihFeGVjU3Rh
dGUqIGV4ZWMsIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEV4ZWN1dGFibGVC
YXNlKiBleGVjdXRhYmxlKQogewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVj
dC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KGV4ZWMtPmdsb2JhbERhdGEoKSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAg
ICBtX2V4ZWN1dGFibGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgZXhlY3V0YWJsZSk7
CiAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+Z2xvYmFsRGF0YSgpLnBy
b3BlcnR5TmFtZXMtPm5hbWUsIGpzU3RyaW5nKGV4ZWMsIG5hbWUuaXNOdWxsKCkgPyAiIiA6IG5h
bWUudXN0cmluZygpKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgIHB1
dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgs
IGpzTnVtYmVyKGxlbmd0aCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKIH0K
IAotdm9pZCBKU0Z1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwg
U2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW5Ob2RlKQordm9pZCBKU0Z1bmN0aW9uOjpmaW5pc2hD
cmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwg
U2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW5Ob2RlKQogewotICAgIEJhc2U6OmZpbmlzaENyZWF0
aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOworICAgIEJhc2U6
OmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CiAgICAgQVNTRVJUKGluaGVyaXRz
KCZzX2luZm8pKTsKICAgICBzZXRTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzY29wZUNo
YWluTm9kZS0+Z2xvYmFsT2JqZWN0LT5uYW1lZEZ1bmN0aW9uU3RydWN0dXJlKCkpOwogICAgIHB1
dERpcmVjdE9mZnNldChleGVjLT5nbG9iYWxEYXRhKCksIHNjb3BlQ2hhaW5Ob2RlLT5nbG9iYWxP
YmplY3QtPmZ1bmN0aW9uTmFtZU9mZnNldCgpLCBleGVjdXRhYmxlLT5uYW1lVmFsdWUoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKaW5kZXggMWMzNjgxNmMx
N2QxMGVmNzE5ZjMwYWU5ZjBmYzY4ZjdhZDYzMDA4My4uMWRiM2M4MGRiNmM0MDQyYzEyYWJhZDI3
MzI1YmFjZTVhY2YxOWFmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVu
Y3Rpb24uaApAQCAtMjQsNyArMjQsNyBAQAogI2lmbmRlZiBKU0Z1bmN0aW9uX2gKICNkZWZpbmUg
SlNGdW5jdGlvbl9oCiAKLSNpbmNsdWRlICJKU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaCIKKyNp
bmNsdWRlICJKU09iamVjdC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNDEsNyArNDEsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bEhvc3RGdW5jdGlvbkFzQ29uc3RydWN0b3IoRXhlY1N0YXRlKik7CiAKLSAgICBjbGFzcyBKU0Z1
bmN0aW9uIDogcHVibGljIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCB7CisgICAgY2xhc3MgSlNG
dW5jdGlvbiA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICAgICAgZnJpZW5kIGNsYXNz
IEpJVDsKICAgICAgICAgZnJpZW5kIGNsYXNzIERGRzo6SklUQ29kZUdlbmVyYXRvcjsKICAgICAg
ICAgZnJpZW5kIGNsYXNzIEpTR2xvYmFsRGF0YTsKQEAgLTUwLDI4ICs1MCwzNSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgSlNGdW5jdGlvbihFeGVjU3RhdGUqLCBGdW5jdGlvbkV4ZWN1dGFi
bGUqLCBTY29wZUNoYWluTm9kZSopOwogICAgICAgICAKICAgICBwdWJsaWM6Ci0gICAgICAgIHR5
cGVkZWYgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IEJhc2U7CisgICAgICAgIHR5cGVkZWYgSlNO
b25GaW5hbE9iamVjdCBCYXNlOwogCiAgICAgICAgIHN0YXRpYyBKU0Z1bmN0aW9uKiBjcmVhdGUo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgTmF0aXZlRnVu
Y3Rpb24gbmF0aXZlRnVuY3Rpb24pCiAgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChzdHJ1
Y3R1cmUtPmdsb2JhbE9iamVjdCgpKTsKKyAgICAgICAgICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmds
b2JhbE9iamVjdCgpID09IGdsb2JhbE9iamVjdCk7CisgICAgICAgICAgICAKICAgICAgICAgICAg
IEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlID0gKEV4ZWN1dGFibGVCYXNlKilleGVjLT5nbG9i
YWxEYXRhKCkuZ2V0SG9zdEZ1bmN0aW9uKG5hdGl2ZUZ1bmN0aW9uKTsKICAgICAgICAgICAgIEpT
RnVuY3Rpb24qIGZ1bmN0aW9uID0gbmV3IChhbGxvY2F0ZUNlbGw8SlNGdW5jdGlvbj4oKmV4ZWMt
PmhlYXAoKSkpIEpTRnVuY3Rpb24oZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpOwogICAg
ICAgICAgICAgLy8gQ2FuJ3QgZG8gdGhpcyBkdXJpbmcgaW5pdGlhbGl6YXRpb24gYmVjYXVzZSBn
ZXRIb3N0RnVuY3Rpb24gbWlnaHQgZG8gYSBHQyBhbGxvY2F0aW9uLgotICAgICAgICAgICAgZnVu
Y3Rpb24tPmZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgbGVuZ3RoLCBuYW1lLCBl
eGVjdXRhYmxlKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uLT5maW5pc2hDcmVhdGlvbihleGVjLCBs
ZW5ndGgsIG5hbWUsIGV4ZWN1dGFibGUpOwogICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uOwog
ICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIEpTRnVuY3Rpb24qIGNyZWF0ZShFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBOYXRpdmVFeGVjdXRhYmxlKiBu
YXRpdmVFeGVjdXRhYmxlKQogICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQoc3RydWN0dXJl
LT5nbG9iYWxPYmplY3QoKSk7CisgICAgICAgICAgICBBU1NFUlQoc3RydWN0dXJlLT5nbG9iYWxP
YmplY3QoKSA9PSBnbG9iYWxPYmplY3QpOworCiAgICAgICAgICAgICBKU0Z1bmN0aW9uKiBmdW5j
dGlvbiA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTRnVuY3Rpb24+KCpleGVjLT5oZWFwKCkpKSBKU0Z1
bmN0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKLSAgICAgICAgICAgIGZ1bmN0
aW9uLT5maW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIGxlbmd0aCwgbmFtZSwgKEV4
ZWN1dGFibGVCYXNlKiluYXRpdmVFeGVjdXRhYmxlKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uLT5m
aW5pc2hDcmVhdGlvbihleGVjLCBsZW5ndGgsIG5hbWUsIChFeGVjdXRhYmxlQmFzZSopbmF0aXZl
RXhlY3V0YWJsZSk7CiAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb247CiAgICAgICAgIH0KIAog
ICAgICAgICBzdGF0aWMgSlNGdW5jdGlvbiogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgRnVuY3Rp
b25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbikKICAg
ICAgICAgewogICAgICAgICAgICAgSlNGdW5jdGlvbiogZnVuY3Rpb24gPSBuZXcgKGFsbG9jYXRl
Q2VsbDxKU0Z1bmN0aW9uPigqZXhlYy0+aGVhcCgpKSkgSlNGdW5jdGlvbihleGVjLCBleGVjdXRh
YmxlLCBzY29wZUNoYWluKTsKLSAgICAgICAgICAgIGZ1bmN0aW9uLT5maW5pc2hDcmVhdGlvbihl
eGVjLCBzY29wZUNoYWluLT5nbG9iYWxPYmplY3QuZ2V0KCksIGV4ZWN1dGFibGUsIHNjb3BlQ2hh
aW4pOworICAgICAgICAgICAgQVNTRVJUKGZ1bmN0aW9uLT5zdHJ1Y3R1cmUoKS0+Z2xvYmFsT2Jq
ZWN0KCkpOworICAgICAgICAgICAgZnVuY3Rpb24tPmZpbmlzaENyZWF0aW9uKGV4ZWMsIGV4ZWN1
dGFibGUsIHNjb3BlQ2hhaW4pOwogICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uOwogICAgICAg
ICB9CiAgICAgICAgIApAQCAtMTEwLDcgKzExNyw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBzdGF0aWMgSlNfRVhQT1JUREFUQSBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCiAgICAgICAg
IHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKSAKLSAg
ICAgICAgeyAKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKGdsb2JhbE9iamVjdCk7CiAg
ICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5v
bnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgCiAgICAgICAgIH0KIApAQCAtMTMyLDggKzE0MCw4
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByb3RlY3RlZDoKICAgICAgICAgY29uc3Qgc3RhdGlj
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwg
SW1wbGVtZW50c0hhc0luc3RhbmNlIHwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92ZXJyaWRl
c0dldFByb3BlcnR5TmFtZXMgfCBKU09iamVjdDo6U3RydWN0dXJlRmxhZ3M7CiAKLSAgICAgICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIGludCBsZW5n
dGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEV4ZWN1dGFibGVCYXNlKik7Ci0gICAgICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBGdW5jdGlvbkV4
ZWN1dGFibGUqLCBTY29wZUNoYWluTm9kZSopOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9u
KEV4ZWNTdGF0ZSosIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEV4ZWN1dGFi
bGVCYXNlKik7CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgRnVuY3Rp
b25FeGVjdXRhYmxlKiwgU2NvcGVDaGFpbk5vZGUqKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAg
IGV4cGxpY2l0IEpTRnVuY3Rpb24oVlB0clN0ZWFsaW5nSGFja1R5cGUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDI5YmNhODFi
OGViOWRjNjdmODMzMTY3MDk3NTc1YmNhM2RhNDAyY2EuLjNkZGVhMjM0MDk2ZjQ4MWIzMzhmNGVl
MWIwMTFkNzFjYjE2OWUxY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIEpTR2xvYmFsT2Jq
ZWN0OjpyZXNldChKU1ZhbHVlIHByb3RvdHlwZSkKICAgICBtX2NhbGxiYWNrRnVuY3Rpb25TdHJ1
Y3R1cmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgSlNDYWxsYmFja0Z1bmN0aW9uOjpj
cmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBtX2Z1bmN0aW9uUHJvdG90
eXBlLmdldCgpKSk7CiAgICAgbV9hcmd1bWVudHNTdHJ1Y3R1cmUuc2V0KGV4ZWMtPmdsb2JhbERh
dGEoKSwgdGhpcywgQXJndW1lbnRzOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgp
LCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpOwogICAgIG1fY2FsbGJhY2tDb25zdHJ1
Y3RvclN0cnVjdHVyZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBKU0NhbGxiYWNrQ29u
c3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG1fb2Jq
ZWN0UHJvdG90eXBlLmdldCgpKSk7Ci0gICAgbV9jYWxsYmFja09iamVjdFN0cnVjdHVyZS5zZXQo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdD46OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIG1f
b2JqZWN0UHJvdG90eXBlLmdldCgpKSk7CisgICAgbV9jYWxsYmFja09iamVjdFN0cnVjdHVyZS5z
ZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBKU0NhbGxiYWNrT2JqZWN0PEpTTm9uRmluYWxP
YmplY3Q+OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBtX29iamVj
dFByb3RvdHlwZS5nZXQoKSkpOwogCiAgICAgbV9hcnJheVByb3RvdHlwZS5zZXQoZXhlYy0+Z2xv
YmFsRGF0YSgpLCB0aGlzLCBBcnJheVByb3RvdHlwZTo6Y3JlYXRlKGV4ZWMsIHRoaXMsIEFycmF5
UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBtX29i
amVjdFByb3RvdHlwZS5nZXQoKSkpKTsKICAgICBtX2FycmF5U3RydWN0dXJlLnNldChleGVjLT5n
bG9iYWxEYXRhKCksIHRoaXMsIEpTQXJyYXk6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5nbG9iYWxE
YXRhKCksIHRoaXMsIG1fYXJyYXlQcm90b3R5cGUuZ2V0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKaW5kZXggMTczMTUyYjI5MTkzZGYyMDI0NTgx
MjM3Njc2OGZiZDg5ZGU3MzYwYy4uZmQ4MzZhZjA5MDUzZjEzMTA1OWNjMDEzMzJkOGU4N2JkNTY2
OTI5MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVj
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAK
QEAgLTU0LDE0ICs1NCwxNCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBK
U09OUHJvdG9GdW5jU3RyaW5naWZ5KEV4ZWNTdGF0ZSopOwogbmFtZXNwYWNlIEpTQyB7CiAKIEpT
T05PYmplY3Q6OkpTT05PYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsT2Jq
ZWN0LCBzdHJ1Y3R1cmUpCisgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+Z2xv
YmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7CiAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0
KTsKIH0KIAogdm9pZCBKU09OT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQogewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+
Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGds
b2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykp
OwogfQogCkBAIC01ODksNyArNTg5LDcgQEAgYm9vbCBTdHJpbmdpZmllcjo6SG9sZGVyOjphcHBl
bmROZXh0UHJvcGVydHkoU3RyaW5naWZpZXImIHN0cmluZ2lmaWVyLCBVU3RyaW5nQnUKIAogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEpTT05PYmplY3QgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KIAotY29uc3QgQ2xhc3NJbmZvIEpTT05PYmplY3Q6OnNfaW5mbyA9
IHsgIkpTT04iLCAmSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpzX2luZm8sIDAsIEV4ZWNTdGF0
ZTo6anNvblRhYmxlIH07Citjb25zdCBDbGFzc0luZm8gSlNPTk9iamVjdDo6c19pbmZvID0geyAi
SlNPTiIsICZKU05vbkZpbmFsT2JqZWN0OjpzX2luZm8sIDAsIEV4ZWNTdGF0ZTo6anNvblRhYmxl
IH07CiAKIC8qIFNvdXJjZSBmb3IgSlNPTk9iamVjdC5sdXQuaAogQGJlZ2luIGpzb25UYWJsZQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCmluZGV4IGMzNTUxNjky
Y2E2NzAzYTYzMzJkZjQwZmNlZDdkYzNlMzAzMmVjMzAuLjRlODViZjExYWIyYzEzZTYxMzMwNTcw
MmEzOGE2ZGUxMWIwMTlhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT05PYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09O
T2JqZWN0LmgKQEAgLTI2LDE1ICsyNiwxNSBAQAogI2lmbmRlZiBKU09OT2JqZWN0X2gKICNkZWZp
bmUgSlNPTk9iamVjdF9oCiAKLSNpbmNsdWRlICJKU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaCIK
KyNpbmNsdWRlICJKU09iamVjdC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIFN0
cmluZ2lmaWVyOwogCi0gICAgY2xhc3MgSlNPTk9iamVjdCA6IHB1YmxpYyBKU09iamVjdFdpdGhH
bG9iYWxPYmplY3QgeworICAgIGNsYXNzIEpTT05PYmplY3QgOiBwdWJsaWMgSlNOb25GaW5hbE9i
amVjdCB7CiAgICAgcHVibGljOgotICAgICAgICB0eXBlZGVmIEpTT2JqZWN0V2l0aEdsb2JhbE9i
amVjdCBCYXNlOworICAgICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKIAogICAg
ICAgICBzdGF0aWMgSlNPTk9iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgICAgIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IGE3ZDhjYjc5ZDI2NWYw
N2QxMWU3NmNmYjE2ZWNhNzI1NzIxYzY5NjQuLmQ3NmJlZmNjZjVmNjdmM2M5NzZjNDI4NGVlMjUw
OTY1ZWZiNDMzMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApA
QCAtMjUyLDYgKzI1MiwxMyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBs
b2NhdGlvbkZvck9mZnNldChpbmRleCktPmdldCgpOwogICAgICAgICB9CiAKKyAgICAgICAgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAg
IEFTU0VSVChzdHJ1Y3R1cmUoKS0+Z2xvYmFsT2JqZWN0KCkpOworICAgICAgICAgICAgQVNTRVJU
KCFpc0dsb2JhbE9iamVjdCgpIHx8ICgoSlNPYmplY3QqKXN0cnVjdHVyZSgpLT5nbG9iYWxPYmpl
Y3QoKSkgPT0gdGhpcyk7CisgICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlKCktPmdsb2JhbE9i
amVjdCgpOworICAgICAgICB9CisgICAgICAgIAogICAgICAgICBzdGF0aWMgc2l6ZV90IG9mZnNl
dE9mSW5saW5lU3RvcmFnZSgpOwogICAgICAgICBzdGF0aWMgc2l6ZV90IG9mZnNldE9mUHJvcGVy
dHlTdG9yYWdlKCk7CiAgICAgICAgIHN0YXRpYyBzaXplX3Qgb2Zmc2V0T2ZJbmhlcml0b3JJRCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
V2l0aEdsb2JhbE9iamVjdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3YjMy
MTljNjM0YmZhNWViMDI3YTYzNDNmNjUxMTE3NDE3YjYxMjguLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNPYmplY3RX
aXRoR2xvYmFsT2JqZWN0LmgiCi0KLSNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgotCi1uYW1l
c3BhY2UgSlNDIHsKLQotSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpKU09iamVjdFdpdGhHbG9i
YWxPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCi0gICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBz
dHJ1Y3R1cmUpCi17Ci19Ci0KLUpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6SlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCi0gICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKLXsKLX0K
LQotdm9pZCBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICBC
YXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKLSAgICBDT01QSUxFX0FTU0VSVChBbm9u
eW1vdXNTbG90Q291bnQgPT0gMSwgQW5vbnltb3VzU2xvdENvdW50X211c3RfYmVfb25lKTsKLSAg
ICBBU1NFUlQoIWdsb2JhbE9iamVjdCB8fCBnbG9iYWxPYmplY3QtPmlzR2xvYmFsT2JqZWN0KCkp
OwotICAgIGlmICghZ2xvYmFsT2JqZWN0KQotICAgICAgICBjbGVhckFub255bW91c1ZhbHVlKEds
b2JhbE9iamVjdFNsb3QpOwotICAgIGVsc2UKLSAgICAgICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xv
YmFsRGF0YSwgR2xvYmFsT2JqZWN0U2xvdCwgZ2xvYmFsT2JqZWN0KTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdFdpdGhHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1
ZjlhMjQzZWM0OWU5MzM5YjYxYWNkOTQ2OGNkZmRjYTBlODM5YWM4Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0X2gKLSNk
ZWZpbmUgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0X2gKLQotI2luY2x1ZGUgIkpTR2xvYmFsT2Jq
ZWN0LmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1jbGFzcyBKU0dsb2JhbE9iamVjdDsKLQotY2xh
c3MgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qgewot
cHVibGljOgotICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwotCi0gICAgc3RhdGlj
IFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykKLSAgICB7Ci0gICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3Rv
LCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCwgJnNfaW5mbyk7Ci0gICAgfQotCi0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCgp
IGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gYXNHbG9iYWxPYmplY3QoKGdldEFub255bW91
c1ZhbHVlKEdsb2JhbE9iamVjdFNsb3QpLmFzQ2VsbCgpKSk7Ci0gICAgfQotCi1wcm90ZWN0ZWQ6
Ci0gICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
Kik7Ci0gICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVy
ZSopOwotCi0gICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KFZQdHJTdGVhbGluZ0hhY2tUeXBl
KQotICAgICAgICA6IEpTTm9uRmluYWxPYmplY3QoVlB0clN0ZWFsaW5nSGFjaykKLSAgICB7Ci0g
ICAgICAgIC8vIFNob3VsZCBvbmx5IGJlIHVzZWQgYnkgSlNGdW5jdGlvbiB3aGVuIHdlIGFxdWly
ZSB0aGUgSlNGdW5jdGlvbiB2cHRyLgotICAgIH0KLQotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
SlNHbG9iYWxEYXRhJiwgSlNHbG9iYWxPYmplY3QqKTsKLQotICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBBbm9ueW1vdXNTbG90Q291bnQgPSBKU09iamVjdDo6QW5vbnltb3VzU2xvdENvdW50ICsg
MTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgR2xvYmFsT2JqZWN0U2xvdCA9IDA7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBKU0MKLQotI2VuZGlmIC8vIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuY3BwCmluZGV4IDU4MWI5
MmIzMDU2MWY4NzdiY2ZkM2E5NGFjYzg2ZDZmNDNjZWVjYjMuLjQ2YTU1ZGU2NTBmZWFmOTk0NWUw
MDNhNGFmZjI5MjM1MDdmNGM2MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
VmFsdWUuY3BwCkBAIC0yMDEsNyArMjAxLDcgQEAgaW50MzJfdCB0b0ludDMyKGRvdWJsZSBudW1i
ZXIpCiAKIGJvb2wgSlNWYWx1ZTo6aXNWYWxpZENhbGxlZSgpCiB7Ci0gICAgcmV0dXJuIGFzT2Jq
ZWN0KGFzT2JqZWN0KGFzQ2VsbCgpKS0+Z2V0QW5vbnltb3VzVmFsdWUoMCkpLT5pc0dsb2JhbE9i
amVjdCgpOworICAgIHJldHVybiBhc09iamVjdChhc0NlbGwoKSktPmdsb2JhbE9iamVjdCgpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0xvb2t1cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29r
dXAuY3BwCmluZGV4IGYwY2RiYmE5NTdjZTY1MzM5ZmM3ZGIwNTgzOTY0ODYyNWZkNzExNDcuLjgw
ZWRiZGRhYjgxODExM2FkYzRhMmU3NDc1MWY1YTBjZWVkOWIwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTG9va3VwLmNwcApAQCAtNzAsMTQgKzcwLDEzIEBAIHZvaWQgSGFzaFRh
YmxlOjpkZWxldGVUYWJsZSgpIGNvbnN0CiAKIHZvaWQgc2V0VXBTdGF0aWNGdW5jdGlvblNsb3Qo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBIYXNoRW50cnkqIGVudHJ5LCBKU09iamVjdCogdGhpc09i
aiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7
Ci0gICAgQVNTRVJUKHRoaXNPYmotPnN0cnVjdHVyZSgpLT5hbm9ueW1vdXNTbG90Q291bnQoKSA+
IDApOwotICAgIEFTU0VSVCh0aGlzT2JqLT5nZXRBbm9ueW1vdXNWYWx1ZSgwKS5pc0NlbGwoKSAm
JiBhc09iamVjdCh0aGlzT2JqLT5nZXRBbm9ueW1vdXNWYWx1ZSgwKS5hc0NlbGwoKSktPmlzR2xv
YmFsT2JqZWN0KCkpOworICAgIEFTU0VSVCh0aGlzT2JqLT5nbG9iYWxPYmplY3QoKSk7CiAgICAg
QVNTRVJUKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBGdW5jdGlvbik7CiAgICAgV3JpdGVCYXJyaWVy
QmFzZTxVbmtub3duPiogbG9jYXRpb24gPSB0aGlzT2JqLT5nZXREaXJlY3RMb2NhdGlvbihleGVj
LT5nbG9iYWxEYXRhKCksIHByb3BlcnR5TmFtZSk7CiAKICAgICBpZiAoIWxvY2F0aW9uKSB7CiAg
ICAgICAgIEpTRnVuY3Rpb24qIGZ1bmN0aW9uOwotICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0ID0gYXNHbG9iYWxPYmplY3QodGhpc09iai0+Z2V0QW5vbnltb3VzVmFsdWUoMCku
YXNDZWxsKCkpOworICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdGhpc09i
ai0+Z2xvYmFsT2JqZWN0KCk7CiAjaWYgRU5BQkxFKEpJVCkKICAgICAgICAgaWYgKGVudHJ5LT5n
ZW5lcmF0b3IoKSkKICAgICAgICAgICAgIGZ1bmN0aW9uID0gSlNGdW5jdGlvbjo6Y3JlYXRlKGV4
ZWMsIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5mdW5jdGlvblN0cnVjdHVyZSgpLCBlbnRy
eS0+ZnVuY3Rpb25MZW5ndGgoKSwgcHJvcGVydHlOYW1lLCBleGVjLT5nbG9iYWxEYXRhKCkuZ2V0
SG9zdEZ1bmN0aW9uKGVudHJ5LT5mdW5jdGlvbigpLCBlbnRyeS0+Z2VuZXJhdG9yKCkpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKaW5kZXggMmZhNDJkMDQ3ZDQ5MDhlNmQ2
NTg3NThmNjJlNmY0MTlmNzhlY2MyZi4uYzAwMTNkNmQxNzk0YjFlN2U0OTdiYmMyYzFmNThmYWU1
Mjc0NGZlYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3Vw
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKQEAgLTI0LDcg
KzI0LDYgQEAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKLSNpbmNsdWRlICJKU09iamVjdC5oIgogI2lu
Y2x1ZGUgIlByb3BlcnR5U2xvdC5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L01hdGhPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVj
dC5jcHAKaW5kZXggNWVjNTZhMzZlNzM3NTU5YTMwZGZiMTIwOGEwYzEzY2ViYTk4N2I2ZC4uMzE5
Yzk3Y2FlZmM0YmJkZTk3OWI3OGI5NGIzZDBmYWQ5Y2ZiODBmYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY1RhbihFeGVjU3RhdGUq
KTsKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNvbnN0IENsYXNzSW5mbyBNYXRoT2JqZWN0OjpzX2lu
Zm8gPSB7ICJNYXRoIiwgJkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6c19pbmZvLCAwLCBFeGVj
U3RhdGU6Om1hdGhUYWJsZSB9OworY29uc3QgQ2xhc3NJbmZvIE1hdGhPYmplY3Q6OnNfaW5mbyA9
IHsgIk1hdGgiLCAmSlNOb25GaW5hbE9iamVjdDo6c19pbmZvLCAwLCBFeGVjU3RhdGU6Om1hdGhU
YWJsZSB9OwogCiAvKiBTb3VyY2UgZm9yIE1hdGhPYmplY3QubHV0LmgKIEBiZWdpbiBtYXRoVGFi
bGUKQEAgLTg1LDE0ICs4NSwxNCBAQCBjb25zdCBDbGFzc0luZm8gTWF0aE9iamVjdDo6c19pbmZv
ID0geyAiTWF0aCIsICZKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OnNfaW5mbwogKi8KIAogTWF0
aE9iamVjdDo6TWF0aE9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogSlNPYmplY3RXaXRoR2xvYmFs
T2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQorICAgIDogSlNOb25GaW5hbE9iamVjdChn
bG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogewogICAgIGZpbmlzaENyZWF0
aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiB9CiAKIHZvaWQgTWF0aE9iamVjdDo6ZmluaXNoQ3Jl
YXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewot
ICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9i
YWxPYmplY3QpOworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFs
RGF0YSgpKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogCiAgICAgcHV0RGlyZWN0
V2l0aG91dFRyYW5zaXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBJZGVudGlmaWVyKGV4ZWMsICJF
IiksIGpzTnVtYmVyKGV4cCgxLjApKSwgRG9udERlbGV0ZSB8IERvbnRFbnVtIHwgUmVhZE9ubHkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCmluZGV4IGU0MTBh
NmVlOWE3N2YwYjA3NTMyZGZkODg0YWY5ZDNmOTA0NjJjZTMuLmJlZjkzMTBhYzhiMGU1YjJlNjI3
NDdmYWM5YzY0ZmRiYTg2M2RjMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL01hdGhPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9N
YXRoT2JqZWN0LmgKQEAgLTIxLDE2ICsyMSwxNiBAQAogI2lmbmRlZiBNYXRoT2JqZWN0X2gKICNk
ZWZpbmUgTWF0aE9iamVjdF9oCiAKLSNpbmNsdWRlICJKU09iamVjdFdpdGhHbG9iYWxPYmplY3Qu
aCIKKyNpbmNsdWRlICJKU09iamVjdC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAotICAgIGNsYXNz
IE1hdGhPYmplY3QgOiBwdWJsaWMgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IHsKKyAgICBjbGFz
cyBNYXRoT2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHByaXZhdGU6CiAg
ICAgICAgIE1hdGhPYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
KTsKIAogICAgIHB1YmxpYzoKLSAgICAgICAgdHlwZWRlZiBKU09iamVjdFdpdGhHbG9iYWxPYmpl
Y3QgQmFzZTsKKyAgICAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAKICAgICAg
ICAgc3RhdGljIE1hdGhPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgICAgICB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAppbmRl
eCA2YjNhMzc2ODM1M2EyMzExMzUxZmY2ZjIwZjZhMjZiZjlkMzA4YWUxLi41Mjc2ODE3ODY0ZDli
MzUwMDI5ODQ3M2QzMTU4Mzk1NjI5ODZhNjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNs
dWRlICJCaWdJbnRlZ2VyLmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJKU0Z1bmN0
aW9uLmgiCisjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0cmluZy5o
IgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJVaW50MTZXaXRoRnJhY3Rpb24u
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVj
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCmlu
ZGV4IDg0MWQ5Mzk0MTE3YWIwOTExNzM4ZDBjNDg1ZTNmZTUwYjVhMWRkMTYuLjcwYjcwN2MyNzg1
ZmE0OGUxNmI0NWYxMzVjYmJmOTZiMTE1NjBjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApAQCAtNTAsNyArNTAsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChSZWdFeHBPYmplY3QpOwogCi1jb25z
dCBDbGFzc0luZm8gUmVnRXhwT2JqZWN0OjpzX2luZm8gPSB7ICJSZWdFeHAiLCAmSlNPYmplY3RX
aXRoR2xvYmFsT2JqZWN0OjpzX2luZm8sIDAsIEV4ZWNTdGF0ZTo6cmVnRXhwVGFibGUgfTsKK2Nv
bnN0IENsYXNzSW5mbyBSZWdFeHBPYmplY3Q6OnNfaW5mbyA9IHsgIlJlZ0V4cCIsICZKU05vbkZp
bmFsT2JqZWN0OjpzX2luZm8sIDAsIEV4ZWNTdGF0ZTo6cmVnRXhwVGFibGUgfTsKIAogLyogU291
cmNlIGZvciBSZWdFeHBPYmplY3QubHV0LmgKIEBiZWdpbiByZWdFeHBUYWJsZQpAQCAtNjMsNyAr
NjMsNyBAQCBjb25zdCBDbGFzc0luZm8gUmVnRXhwT2JqZWN0OjpzX2luZm8gPSB7ICJSZWdFeHAi
LCAmSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpzXwogKi8KIAogUmVnRXhwT2JqZWN0OjpSZWdF
eHBPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIFJlZ0V4cCogcmVnRXhwKQotICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2Jh
bE9iamVjdCwgc3RydWN0dXJlKQorICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxPYmplY3Qt
Pmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogICAgICwgZChhZG9wdFB0cihuZXcgUmVnRXhwT2Jq
ZWN0RGF0YShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgdGhpcywgcmVnRXhwKSkpCiB7CiAg
ICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0KTsKQEAgLTcxLDcgKzcxLDcgQEAgUmVnRXhw
T2JqZWN0OjpSZWdFeHBPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIFIKIAogdm9pZCBSZWdFeHBPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
Z2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CisgICAgQmFzZTo6Zmlu
aXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhl
cml0cygmc19pbmZvKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwT2JqZWN0LmgKaW5kZXggZTEzMWZjNWM0Nzg2YWQ5NDc2ZTMzYmVkMDU5OWZkNDRkODc3MjVk
NC4uMmYwNzc1ZjFjZWJkNDZkN2Q5NmNlZjM0NzRmM2ZlOWViYzVhNzdmOCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKQEAgLTIxLDE0ICsyMSwxNCBA
QAogI2lmbmRlZiBSZWdFeHBPYmplY3RfaAogI2RlZmluZSBSZWdFeHBPYmplY3RfaAogCi0jaW5j
bHVkZSAiSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAiSlNPYmplY3QuaCIK
ICNpbmNsdWRlICJSZWdFeHAuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAgICAgCi0gICAgY2xhc3Mg
UmVnRXhwT2JqZWN0IDogcHVibGljIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCB7CisgICAgY2xh
c3MgUmVnRXhwT2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHB1YmxpYzoK
LSAgICAgICAgdHlwZWRlZiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QgQmFzZTsKKyAgICAgICAg
dHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAKICAgICAgICAgc3RhdGljIFJlZ0V4cE9i
amVjdCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZ0V4cCogcmVnRXhwKQogICAgICAgICB7CkBAIC03
NSw3ICs3NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByb3RlY3RlZDoKICAgICAgICAgUmVn
RXhwT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgUmVnRXhwKik7CiAgICAgICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqKTsKLSAgICAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92
ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6U3Ry
dWN0dXJlRmxhZ3M7CisgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Qg
fCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwg
dm9pZCB2aXNpdENoaWxkcmVuKFNsb3RWaXNpdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlLmNwcAppbmRleCA0YmNjNjcyM2NkYjVmZWFjZDQ0MjUzMWM4MDk1
Yjk3N2Y4Y2JmMDkzLi4yYmRmNWZkMjljYzQ4ZGE1MDcxM2FjNjdlNDRiYjYyZjc3ZmM2NmE5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKQEAgLTE1OSw5
ICsxNTksMTAgQEAgdm9pZCBTdHJ1Y3R1cmU6OmR1bXBTdGF0aXN0aWNzKCkKICNlbmRpZgogfQog
Ci1TdHJ1Y3R1cmU6OlN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUg
cHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYgdHlwZUluZm8sIHVuc2lnbmVkIGFub255bW91c1Ns
b3RDb3VudCwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCitTdHJ1Y3R1cmU6OlN0cnVjdHVy
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYgdHlwZUluZm8sIHVuc2lnbmVkIGFu
b255bW91c1Nsb3RDb3VudCwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCiAgICAgOiBKU0Nl
bGwoZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUuZ2V0KCkpCiAgICAg
LCBtX3R5cGVJbmZvKHR5cGVJbmZvKQorICAgICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwg
dGhpcywgZ2xvYmFsT2JqZWN0LCBXcml0ZUJhcnJpZXI8SlNHbG9iYWxPYmplY3Q+OjpNYXlCZU51
bGwpCiAgICAgLCBtX3Byb3RvdHlwZShnbG9iYWxEYXRhLCB0aGlzLCBwcm90b3R5cGUpCiAgICAg
LCBtX2NsYXNzSW5mbyhjbGFzc0luZm8pCiAgICAgLCBtX3Byb3BlcnR5U3RvcmFnZUNhcGFjaXR5
KHR5cGVJbmZvLmlzRmluYWwoKSA/IEpTRmluYWxPYmplY3RfaW5saW5lU3RvcmFnZUNhcGFjaXR5
IDogSlNOb25GaW5hbE9iamVjdF9pbmxpbmVTdG9yYWdlQ2FwYWNpdHkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCmluZGV4IGY0ZTBiYzhkMTJjYzIxNjMyYzAxNzdh
NjQxOWRiYWI4MGRkZTU5YWMuLjBmNGY0OGM4MzQxMmMxMzUwZDA5MzRjMWI1ZmY2MzM3NjgyOTZm
YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCkBAIC02Miwx
MSArNjIsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgdHlwZWRlZiBKU0NlbGwgQmFz
ZTsKIAotICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5m
byYgdHlwZUluZm8sIHVuc2lnbmVkIGFub255bW91c1Nsb3RDb3VudCwgY29uc3QgQ2xhc3NJbmZv
KiBjbGFzc0luZm8pCisgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZShKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJv
dG90eXBlLCBjb25zdCBUeXBlSW5mbyYgdHlwZUluZm8sIHVuc2lnbmVkIGFub255bW91c1Nsb3RD
b3VudCwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8pCiAgICAgICAgIHsKICAgICAgICAgICAg
IEFTU0VSVChnbG9iYWxEYXRhLnN0cnVjdHVyZVN0cnVjdHVyZSk7CiAgICAgICAgICAgICBBU1NF
UlQoY2xhc3NJbmZvKTsKLSAgICAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gbmV3IChh
bGxvY2F0ZUNlbGw8U3RydWN0dXJlPihnbG9iYWxEYXRhLmhlYXApKSBTdHJ1Y3R1cmUoZ2xvYmFs
RGF0YSwgcHJvdG90eXBlLCB0eXBlSW5mbywgYW5vbnltb3VzU2xvdENvdW50LCBjbGFzc0luZm8p
OworICAgICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxT
dHJ1Y3R1cmU+KGdsb2JhbERhdGEuaGVhcCkpIFN0cnVjdHVyZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgdHlwZUluZm8sIGFub255bW91c1Nsb3RDb3VudCwgY2xhc3NJbmZv
KTsKICAgICAgICAgICAgIHN0cnVjdHVyZS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAg
ICAgICAgICAgICByZXR1cm4gc3RydWN0dXJlOwogICAgICAgICB9CkBAIC0xMjEsNyArMTIxLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgY29uc3QgVHlwZUluZm8mIHR5cGVJbmZvKCkg
Y29uc3QgeyBBU1NFUlQoc3RydWN0dXJlKCktPmNsYXNzSW5mbygpID09ICZzX2luZm8pOyByZXR1
cm4gbV90eXBlSW5mbzsgfQogCi0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qo
KSB7IHJldHVybiBtX2dsb2JhbE9iamVjdC5nZXQoKTsgfQorICAgICAgICBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxPYmplY3QuZ2V0KCk7IH0K
ICAgICAgICAgdm9pZCBzZXRHbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSB7IG1fZ2xvYmFsT2JqZWN0LnNldChnbG9iYWxE
YXRhLCB0aGlzLCBnbG9iYWxPYmplY3QpOyB9CiAgICAgICAgIAogICAgICAgICBKU1ZhbHVlIHN0
b3JlZFByb3RvdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvdG90eXBlLmdldCgpOyB9CkBAIC0x
OTEsNyArMTkxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBKU19FWFBPUlRE
QVRBIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKICAgICBwcml2YXRlOgotICAgICAgICBTdHJ1
Y3R1cmUoSlNHbG9iYWxEYXRhJiwgSlNWYWx1ZSBwcm90b3R5cGUsIGNvbnN0IFR5cGVJbmZvJiwg
dW5zaWduZWQgYW5vbnltb3VzU2xvdENvdW50LCBjb25zdCBDbGFzc0luZm8qKTsKKyAgICAgICAg
U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBwcm90b3R5
cGUsIGNvbnN0IFR5cGVJbmZvJiwgdW5zaWduZWQgYW5vbnltb3VzU2xvdENvdW50LCBjb25zdCBD
bGFzc0luZm8qKTsKICAgICAgICAgU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYpOwogICAgICAgICBT
dHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiwgY29uc3QgU3RydWN0dXJlKik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA5MmFiMDI1YjYwZGU2MTRkZDRhYzg2ZjFhZDE5ODZiY2JhNGJjNGYxLi43OTRhODM2NGJhYzU1
ZWVjYTkyMzI0MWYwYTNkNWIxNzUyYTg1ZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAK
KzIwMTEtMDktMDYgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW1vdmUgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzY4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB1c2Ugb2YgYW5vbnltb3VzIHN0b3JhZ2UgYW5k
IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCBmb3IKKyAgICAgICAgYWNjZXNzaW5nIGEgSlNPYmpl
Y3QncyBnbG9iYWwgb2JqZWN0IG5vdyB0aGF0IHRoZXkncmUgYXZhaWxhYmxlCisgICAgICAgIG9u
IHRoZSBvYmplY3QncyBzdHJ1Y3R1cmUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd1NoZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OnNldFdp
bmRvdyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpKU0RPTVdyYXBwZXI6Omdsb2JhbE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpK
U0RPTVdyYXBwZXI6OkpTRE9NV3JhcHBlcik6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2Vy
U2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250
cm9sbGVyOjppbml0U2NyaXB0KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRl
SW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5oOgor
ICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbToKKyAgICAgICAgKEpTQzo6Qmlu
ZGluZ3M6Ok9iamNGYWxsYmFja09iamVjdEltcDo6T2JqY0ZhbGxiYWNrT2JqZWN0SW1wKToKKyAg
ICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iamNGYWxsYmFja09iamVjdEltcDo6ZmluaXNoQ3JlYXRp
b24pOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5jcHA6CisgICAgICAgIChKU0M6
OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0OjpSdW50aW1lT2JqZWN0KToKKyAgICAgICAgKEpTQzo6
QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBicmlk
Z2UvcnVudGltZV9vYmplY3QuaDoKKwogMjAxMS0wOS0wNSAgSm9jZWx5biBUdXJjb3R0ZSAgPGpv
Y2VseW4udHVyY290dGVAbm9raWEuY29tPgogCiAgICAgICAgIFtRdF1bV0syXSBNYWtlIFRpbGVk
RHJhd2luZ0FyZWEgcmVxdWVzdCB0aWxlcyBvbmx5IGluIHRoZSBkaXJlY3Rpb24gdGhlIHZpZXdw
b3J0IGlzIHBhbm5lZCB0by4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dTaGVsbC5jcHAKaW5kZXggNDllMWI0YTQ5NThhZmE3OGI1OTYxYjc3YWZiMDI5MTc5ZjU1
Yjc0ZS4uMWVkZmQyZTZhNzM0MjZjYTdlNjkwZWE3Njk4ZThlYzI5NzRhMzJiYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKQEAgLTczLDkg
KzczLDEwIEBAIHZvaWQgSlNET01XaW5kb3dTaGVsbDo6c2V0V2luZG93KFBhc3NSZWZQdHI8RE9N
V2luZG93PiBkb21XaW5kb3cpCiAKICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTRE9NV2lu
ZG93OjpjcmVhdGVTdHJ1Y3R1cmUoKkpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSwg
MCwgcHJvdG90eXBlLmdldCgpKTsKICAgICBKU0RPTVdpbmRvdyoganNET01XaW5kb3cgPSBKU0RP
TVdpbmRvdzo6Y3JlYXRlKCpKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCksIHN0cnVj
dHVyZSwgZG9tV2luZG93LCB0aGlzKTsKLSAgICBwcm90b3R5cGVTdHJ1Y3R1cmUtPnNldEdsb2Jh
bE9iamVjdCgqSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLCBqc0RPTVdpbmRvdyk7
Ci0gICAgcHJvdG90eXBlLT5wdXRBbm9ueW1vdXNWYWx1ZSgqSlNET01XaW5kb3c6OmNvbW1vbkpT
R2xvYmFsRGF0YSgpLCAwLCBqc0RPTVdpbmRvdyk7CisgICAgcHJvdG90eXBlLT5zdHJ1Y3R1cmUo
KS0+c2V0R2xvYmFsT2JqZWN0KCpKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCksIGpz
RE9NV2luZG93KTsKICAgICBzZXRXaW5kb3coKkpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERh
dGEoKSwganNET01XaW5kb3cpOworICAgIEFTU0VSVChqc0RPTVdpbmRvdy0+Z2xvYmFsT2JqZWN0
KCkgPT0ganNET01XaW5kb3cpOworICAgIEFTU0VSVChwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgp
ID09IGpzRE9NV2luZG93KTsKIH0KIAogLy8gLS0tLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdyYXBwZXIuaAppbmRleCA4ZjJjMDhlMmIxODYwZDgwMjM0YmE4ZjczNTdmNmE4NGM3
ZGI0ZWEzLi42YTFiNDM4OTM4ZmExNDFiNDgwYzAxZWI4ZGY0MDE3Zjk2ZjEzZTliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaApAQCAtMjMsMTcgKzIzLDE3IEBA
CiAjZGVmaW5lIEpTRE9NV3JhcHBlcl9oCiAKICNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5o
IgotI2luY2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Lmg+CisjaW5jbHVk
ZSA8cnVudGltZS9KU09iamVjdC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKLWNsYXNzIEpTRE9NV3JhcHBlciA6IHB1YmxpYyBKU0M6
OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCB7CitjbGFzcyBKU0RPTVdyYXBwZXIgOiBwdWJsaWMg
SlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpnbG9iYWxP
YmplY3QoKSk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+
KEpTQzo6SlNOb25GaW5hbE9iamVjdDo6Z2xvYmFsT2JqZWN0KCkpOwogICAgIH0KIAogICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdApAQCAt
NTMsMTMgKzUzLDEzIEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgdmlydHVhbEZ1bmN0
aW9uVG9QcmV2ZW50V2Vha1Z0YWJsZSgpOwogCiAgICAgZXhwbGljaXQgSlNET01XcmFwcGVyKEpT
Qzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkgCi0gICAgICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3Ry
dWN0dXJlKQorICAgICAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5nbG9iYWxE
YXRhKCksIHN0cnVjdHVyZSkKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIEFTU0VSVCBp
cyB2YWxpZCwgYnV0IGZpcmVzIGluIGZhc3QvZG9tL2djLTYuaHRtbCB3aGVuIHRyeWluZyB0byBj
cmVhdGUKICAgICAgICAgLy8gbmV3IEphdmFTY3JpcHQgb2JqZWN0cyBvbiBkZXRhY2hlZCB3aW5k
b3dzIGR1ZSB0byBET01XaW5kb3c6OmRvY3VtZW50KCkKICAgICAgICAgLy8gbmVlZGluZyB0byBy
ZWFjaCB0aHJvdWdoIHRoZSBmcmFtZSB0byBnZXQgdG8gdGhlIERvY3VtZW50Ki4gIFNlZSBidWcg
Mjc2NDAuCiAgICAgICAgIC8vIEFTU0VSVChnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSk7Ci0gICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0
YSgpLCBnbG9iYWxPYmplY3QpOworICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3Qt
Pmdsb2JhbERhdGEoKSk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCAxNzAyNGUyYzk0OTc3
NWIyZmNkNGM2OTY3NTc4MmVkNGUyNTFhMTY0Li4wNDdkNzRhMTgwNTE4MWM1N2EwNThkZjQ3NzZi
ODU1N2ZkMDgzOWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3Jr
ZXJTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
b3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtOTIsOCArOTIsNiBAQCB2b2lkIFdvcmtlclNj
cmlwdENvbnRyb2xsZXI6OmluaXRTY3JpcHQoKQogICAgICAgICBBU1NFUlQobV93b3JrZXJDb250
ZXh0V3JhcHBlci0+c3RydWN0dXJlKCktPmdsb2JhbE9iamVjdCgpID09IG1fd29ya2VyQ29udGV4
dFdyYXBwZXIpOwogICAgICAgICB3b3JrZXJDb250ZXh0UHJvdG90eXBlLT5zdHJ1Y3R1cmUoKS0+
c2V0R2xvYmFsT2JqZWN0KCptX2dsb2JhbERhdGEsIG1fd29ya2VyQ29udGV4dFdyYXBwZXIuZ2V0
KCkpOwogICAgICAgICBkZWRpY2F0ZWRDb250ZXh0UHJvdG90eXBlLT5zdHJ1Y3R1cmUoKS0+c2V0
R2xvYmFsT2JqZWN0KCptX2dsb2JhbERhdGEsIG1fd29ya2VyQ29udGV4dFdyYXBwZXIuZ2V0KCkp
OwotICAgICAgICB3b3JrZXJDb250ZXh0UHJvdG90eXBlLT5wdXRBbm9ueW1vdXNWYWx1ZSgqbV9n
bG9iYWxEYXRhLCAwLCBtX3dvcmtlckNvbnRleHRXcmFwcGVyLmdldCgpKTsKLSAgICAgICAgZGVk
aWNhdGVkQ29udGV4dFByb3RvdHlwZS0+cHV0QW5vbnltb3VzVmFsdWUoKm1fZ2xvYmFsRGF0YSwg
MCwgbV93b3JrZXJDb250ZXh0V3JhcHBlci5nZXQoKSk7CiAjaWYgRU5BQkxFKFNIQVJFRF9XT1JL
RVJTKQogICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VSVChtX3dvcmtlckNvbnRleHQtPmlzU2hh
cmVkV29ya2VyQ29udGV4dCgpKTsKQEAgLTEwMiwxMiArMTAwLDEyIEBAIHZvaWQgV29ya2VyU2Ny
aXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdCgpCiAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJl
ID0gSlNTaGFyZWRXb3JrZXJDb250ZXh0OjpjcmVhdGVTdHJ1Y3R1cmUoKm1fZ2xvYmFsRGF0YSwg
MCwgc2hhcmVkQ29udGV4dFByb3RvdHlwZS5nZXQoKSk7CiAKICAgICAgICAgbV93b3JrZXJDb250
ZXh0V3JhcHBlci5zZXQoKm1fZ2xvYmFsRGF0YSwgSlNTaGFyZWRXb3JrZXJDb250ZXh0OjpjcmVh
dGUoKm1fZ2xvYmFsRGF0YSwgc3RydWN0dXJlLCBtX3dvcmtlckNvbnRleHQtPnRvU2hhcmVkV29y
a2VyQ29udGV4dCgpKSk7Ci0gICAgICAgIG1fd29ya2VyQ29udGV4dFdyYXBwZXItPnN0cnVjdHVy
ZSgpLT5zZXRHbG9iYWxPYmplY3QoKm1fZ2xvYmFsRGF0YSwgbV93b3JrZXJDb250ZXh0V3JhcHBl
ci5nZXQoKSk7CisgICAgICAgIHdvcmtlckNvbnRleHRQcm90b3R5cGUtPnN0cnVjdHVyZSgpLT5z
ZXRHbG9iYWxPYmplY3QoKm1fZ2xvYmFsRGF0YSwgbV93b3JrZXJDb250ZXh0V3JhcHBlci5nZXQo
KSk7CiAgICAgICAgIHNoYXJlZENvbnRleHRQcm90b3R5cGUtPnN0cnVjdHVyZSgpLT5zZXRHbG9i
YWxPYmplY3QoKm1fZ2xvYmFsRGF0YSwgbV93b3JrZXJDb250ZXh0V3JhcHBlci5nZXQoKSk7Ci0g
ICAgICAgIHdvcmtlckNvbnRleHRQcm90b3R5cGUtPnB1dEFub255bW91c1ZhbHVlKCptX2dsb2Jh
bERhdGEsIDAsIG1fd29ya2VyQ29udGV4dFdyYXBwZXIuZ2V0KCkpOwotICAgICAgICBzaGFyZWRD
b250ZXh0UHJvdG90eXBlLT5wdXRBbm9ueW1vdXNWYWx1ZSgqbV9nbG9iYWxEYXRhLCAwLCBtX3dv
cmtlckNvbnRleHRXcmFwcGVyLmdldCgpKTsKICNlbmRpZgogICAgIH0KKyAgICBBU1NFUlQobV93
b3JrZXJDb250ZXh0V3JhcHBlci0+Z2xvYmFsT2JqZWN0KCkgPT0gbV93b3JrZXJDb250ZXh0V3Jh
cHBlcik7CisgICAgQVNTRVJUKGFzT2JqZWN0KG1fd29ya2VyQ29udGV4dFdyYXBwZXItPnByb3Rv
dHlwZSgpKS0+Z2xvYmFsT2JqZWN0KCkgPT0gbV93b3JrZXJDb250ZXh0V3JhcHBlcik7CiB9CiAK
IFNjcmlwdFZhbHVlIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlw
dFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDdhMTFhMDE0MWQzZjRhN2FiMzVhZjFi
NWMwMmViODMyNDRkZWQwOWIuLjAwNDNjYmQxZDkxZDM1NjI2YzAwZTU5MzkxNWRiZDNmOTcyYTFj
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCkBAIC02OTMsNyArNjkzLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAg
ICRoZWFkZXJJbmNsdWRlc3siJGltcGxDbGFzc05hbWUuaCJ9ID0gMTsKICAgICB9CiAgICAgCi0g
ICAgJGhlYWRlckluY2x1ZGVzeyI8cnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaD4i
fSA9IDE7CisgICAgJGhlYWRlckluY2x1ZGVzeyI8cnVudGltZS9KU09iamVjdC5oPiJ9ID0gMTsK
ICAgICAkaGVhZGVySW5jbHVkZXN7IlNWR0VsZW1lbnQuaCJ9ID0gMSBpZiAkY2xhc3NOYW1lID1+
IC9eSlNTVkcvOwogCiAgICAgbXkgJGltcGxUeXBlID0gJGltcGxDbGFzc05hbWU7CkBAIC0xMDIw
LDkgKzEwMjAsOSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKIAogICAgICMgQWRkIHByb3RvdHlwZSBk
ZWNsYXJhdGlvbi4KICAgICAlc3RydWN0dXJlRmxhZ3MgPSAoKTsKLSAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiY2xhc3MgJHtjbGFzc05hbWV9UHJvdG90eXBlIDogcHVibGljIEpTQzo6SlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0IHtcbiIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJjbGFz
cyAke2NsYXNzTmFtZX1Qcm90b3R5cGUgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHtc
biIpOwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJwdWJsaWM6XG4iKTsKLSAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIHR5cGVkZWYgSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Qg
QmFzZTtcbiIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdHlwZWRlZiBKU0M6OkpT
Tm9uRmluYWxPYmplY3QgQmFzZTtcbiIpOwogICAgIGlmICgkaW50ZXJmYWNlTmFtZSBuZSAiRE9N
V2luZG93IiAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSXNXb3JrZXJDb250
ZXh0In0pIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgSlNDOjpK
U09iamVjdCogc2VsZihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTtcbiIp
OwogICAgIH0KQEAgLTEwNTcsNyArMTA1Nyw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIGRlZmluZUdldHRlcihKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTT2Jq
ZWN0KiBnZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcyk7XG4iKSBpZiAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Qcm90b3R5cGVEZWZpbmVHZXR0ZXIifTsK
IAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJcbnByaXZhdGU6XG4iKTsKLSAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfVByb3RvdHlwZShKU0M6OkpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OlN0
cnVjdHVyZSogc3RydWN0dXJlKSA6IEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2Jh
bERhdGEsIHN0cnVjdHVyZSkgeyBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBnbG9iYWxPYmpl
Y3QpOyB9XG4iKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfVBy
b3RvdHlwZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpIDogSlNDOjpKU05vbkZpbmFsT2JqZWN0KGds
b2JhbERhdGEsIHN0cnVjdHVyZSkgeyBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsgfVxuIik7
CiAKICAgICAjIHN0cnVjdHVyZSBmbGFncwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJwcm90
ZWN0ZWQ6XG4iKTsKQEAgLTE0MjAsOSArMTQyMCw5IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHJldHVybiBnZXRIYXNoVGFibGVGb3JHbG9iYWxEYXRhKGV4ZWMtPmds
b2JhbERhdGEoKSwgJiR7Y2xhc3NOYW1lfVByb3RvdHlwZVRhYmxlKTtcbiIpOwogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
Y29uc3QgQ2xhc3NJbmZvICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6c19pbmZvID0geyBcIiR7dmlz
aWJsZUNsYXNzTmFtZX1Qcm90b3R5cGVcIiwgJkpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0
OjpzX2luZm8sIDAsIGdldCR7Y2xhc3NOYW1lfVByb3RvdHlwZVRhYmxlIH07XG5cbiIpOworICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgImNvbnN0IENsYXNzSW5mbyAke2NsYXNzTmFtZX1Qcm90
b3R5cGU6OnNfaW5mbyA9IHsgXCIke3Zpc2libGVDbGFzc05hbWV9UHJvdG90eXBlXCIsICZKU0M6
OkpTTm9uRmluYWxPYmplY3Q6OnNfaW5mbywgMCwgZ2V0JHtjbGFzc05hbWV9UHJvdG90eXBlVGFi
bGUgfTtcblxuIik7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJj
b25zdCBDbGFzc0luZm8gJHtjbGFzc05hbWV9UHJvdG90eXBlOjpzX2luZm8gPSB7IFwiJHt2aXNp
YmxlQ2xhc3NOYW1lfVByb3RvdHlwZVwiLCAmSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6
OnNfaW5mbywgJiR7Y2xhc3NOYW1lfVByb3RvdHlwZVRhYmxlLCAwIH07XG5cbiIpOworICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgImNvbnN0IENsYXNzSW5mbyAke2NsYXNzTmFtZX1Qcm90b3R5
cGU6OnNfaW5mbyA9IHsgXCIke3Zpc2libGVDbGFzc05hbWV9UHJvdG90eXBlXCIsICZKU0M6OkpT
Tm9uRmluYWxPYmplY3Q6OnNfaW5mbywgJiR7Y2xhc3NOYW1lfVByb3RvdHlwZVRhYmxlLCAwIH07
XG5cbiIpOwogICAgIH0KICAgICBpZiAoJGludGVyZmFjZU5hbWUgbmUgIkRPTVdpbmRvdyIgJiYg
ISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IklzV29ya2VyQ29udGV4dCJ9KSB7CiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNPYmplY3QqICR7Y2xhc3NOYW1lfVByb3RvdHlw
ZTo6c2VsZihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpXG4i
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5o
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKaW5kZXggYTVhNjcy
NTJjZjUzNmZjZTc2MzcyNjI2ZDZiMjBjM2EyYmI3OTgyOC4uNWY2MWFkZmQ3MTc2ZGZhZWViOWY0
ZGNmMzFlOTIzZTkzYmZiMmQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29i
amMvb2JqY19ydW50aW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19y
dW50aW1lLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNp
bmNsdWRlICJvYmpjX2hlYWRlci5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
aD4KLSNpbmNsdWRlIDxydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oPgogI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC05MSw5ICs5MCw5IEBA
IHByaXZhdGU6CiAgICAgUmV0YWluUHRyPE9iamVjdFN0cnVjdFB0cj4gX2FycmF5OwogfTsKIAot
Y2xhc3MgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wIDogcHVibGljIEpTT2JqZWN0V2l0aEdsb2JhbE9i
amVjdCB7CitjbGFzcyBPYmpjRmFsbGJhY2tPYmplY3RJbXAgOiBwdWJsaWMgSlNOb25GaW5hbE9i
amVjdCB7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QgQmFz
ZTsKKyAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKIAogICAgIHN0YXRpYyBPYmpj
RmFsbGJhY2tPYmplY3RJbXAqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIE9iamNJbnN0YW5jZSogaW5zdGFuY2UsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
b2JqYy9vYmpjX3J1bnRpbWUubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1
bnRpbWUubW0KaW5kZXggZGYwZTcxYzdmZWNiNjJlMTZmNzVkYTkxMjAzMWZhOTZiMWEyYTdjNi4u
NGY5ZDUwNTQ5MDVlNjQzMmZiNjI4NTg2NWY0ZWY5ODkxZGMwOTk2ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQpAQCAtMTk0LDE5ICsxOTQsMjAgQEAgdW5z
aWduZWQgaW50IE9iamNBcnJheTo6Z2V0TGVuZ3RoKCkgY29uc3QKICAgICByZXR1cm4gW19hcnJh
eS5nZXQoKSBjb3VudF07CiB9CiAKLWNvbnN0IENsYXNzSW5mbyBPYmpjRmFsbGJhY2tPYmplY3RJ
bXA6OnNfaW5mbyA9IHsgIk9iamNGYWxsYmFja09iamVjdCIsICZKU09iamVjdFdpdGhHbG9iYWxP
YmplY3Q6OnNfaW5mbywgMCwgMCB9OworY29uc3QgQ2xhc3NJbmZvIE9iamNGYWxsYmFja09iamVj
dEltcDo6c19pbmZvID0geyAiT2JqY0ZhbGxiYWNrT2JqZWN0IiwgJkpTTm9uRmluYWxPYmplY3Q6
OnNfaW5mbywgMCwgMCB9OwogCiBPYmpjRmFsbGJhY2tPYmplY3RJbXA6Ok9iamNGYWxsYmFja09i
amVjdEltcChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgT2JqY0luc3RhbmNlKiBpLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCi0gICAg
OiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCisgICAg
OiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUp
CiAgICAgLCBfaW5zdGFuY2UoaSkKICAgICAsIF9pdGVtKHByb3BlcnR5TmFtZSkKIHsKICAgICBm
aW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QpOworICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmdsb2Jh
bE9iamVjdCgpID09IGdsb2JhbE9iamVjdCk7CiB9CiAKIHZvaWQgT2JqY0ZhbGxiYWNrT2JqZWN0
SW1wOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewotICAg
IEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxP
YmplY3QpOworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0
YSgpKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAppbmRleCA5NjY0MGYwMDhmYWMxYWM0NzE3NjRmZjg1
ZTNiOGY2NDViOTJiZjJjLi5iYTFlN2U1MzFiYzg5YWQyM2NmMDEwNjM5NWQ3MmI4YTk0ZGQxZDE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKQEAgLTM1LDE4ICsz
NSwxOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIG5hbWVzcGFjZSBKU0MgewogbmFtZXNw
YWNlIEJpbmRpbmdzIHsKIAotY29uc3QgQ2xhc3NJbmZvIFJ1bnRpbWVPYmplY3Q6OnNfaW5mbyA9
IHsgIlJ1bnRpbWVPYmplY3QiLCAmSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpzX2luZm8sIDAs
IDAgfTsKK2NvbnN0IENsYXNzSW5mbyBSdW50aW1lT2JqZWN0OjpzX2luZm8gPSB7ICJSdW50aW1l
T2JqZWN0IiwgJkpTTm9uRmluYWxPYmplY3Q6OnNfaW5mbywgMCwgMCB9OwogCiBSdW50aW1lT2Jq
ZWN0OjpSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSkK
LSAgICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkK
KyAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHN0cnVj
dHVyZSkKICAgICAsIG1faW5zdGFuY2UoaW5zdGFuY2UpCiB7CisgICAgQVNTRVJUKHN0cnVjdHVy
ZS0+Z2xvYmFsT2JqZWN0KCkgPT0gZ2xvYmFsT2JqZWN0KTsKICAgICBmaW5pc2hDcmVhdGlvbihn
bG9iYWxPYmplY3QpOwogfQogCiB2b2lkIFJ1bnRpbWVPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
Z2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CisgICAgQmFzZTo6Zmlu
aXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhl
cml0cygmc19pbmZvKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX29iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgK
aW5kZXggZDhlMDBmYzM0NzdhOTk3N2U4YWI0MDc5ZGFhY2U0MjlmOGEzZmY1OC4uYjEyZTg2MTFl
NTBiMzczYTNiMDE2M2Q5Y2U2ZDIxYjZhNzVkZWQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfb2JqZWN0LmgKQEAgLTI4LDE0ICsyOCwxMyBAQAogCiAjaW5jbHVkZSAiQnJpZGdlSlND
LmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0dsb2JhbE9iamVjdC5oPgotI2luY2x1ZGUgPHJ1bnRp
bWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Lmg+CiAKIG5hbWVzcGFjZSBKU0MgewogbmFtZXNw
YWNlIEJpbmRpbmdzIHsKIAotY2xhc3MgUnVudGltZU9iamVjdCA6IHB1YmxpYyBKU09iamVjdFdp
dGhHbG9iYWxPYmplY3QgeworY2xhc3MgUnVudGltZU9iamVjdCA6IHB1YmxpYyBKU05vbkZpbmFs
T2JqZWN0IHsKIHB1YmxpYzoKLSAgICB0eXBlZGVmIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCBC
YXNlOworICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwogCiAgICAgc3RhdGljIFJ1
bnRpbWVPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPEluc3RhbmNlPiBpbnN0
YW5jZSkKICAgICB7CkBAIC03NSw3ICs3NCw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBS
dW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgUGFz
c1JlZlB0cjxJbnN0YW5jZT4pOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmpl
Y3QqKTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlk
ZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVy
cmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKIHByaXZhdGU6
CiAgICAgc3RhdGljIEpTVmFsdWUgZmFsbGJhY2tPYmplY3RHZXR0ZXIoRXhlY1N0YXRlKiwgSlNW
YWx1ZSwgY29uc3QgSWRlbnRpZmllciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDEwMmYwY2UzNzQyN2MyMzEy
ZmY5OTM0YjQ0MGI3NzM1YTNhOWIzMDQuLmZiNTcxM2MwY2FmZDAyZGFkNDMwYjQ1MDY0NDgyODUw
YmRhZmExZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wOS0wNiAgT2xpdmVy
IEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBKU09iamVjdFdpdGhH
bG9iYWxPYmplY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTY3Njg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVtb3ZlIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCB1c2FnZS4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6SlNOUE9iamVjdDo6SlNOUE9iamVjdCk6CisgICAgICAgIChXZWJLaXQ6OkpTTlBPYmplY3Q6
OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
SlNOUE9iamVjdC5oOgorCiAyMDExLTA5LTA1ICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5bi50
dXJjb3R0ZUBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XVtXSzJdIE1ha2UgVGlsZWREcmF3aW5n
QXJlYSByZXF1ZXN0IHRpbGVzIG9ubHkgaW4gdGhlIGRpcmVjdGlvbiB0aGUgdmlld3BvcnQgaXMg
cGFubmVkIHRvLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL0pTTlBPYmplY3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCmluZGV4IDZlZDY5YTE5YzYwOWMwYTYzODdhMGFl
MDQyM2NkMGY1ZGU1OTVmMzQuLmJiYWYwNGY4OGYyNmMzZWY3MDFmNTZmMjE2MDIwNzFlOTM1NzQ2
YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKQEAgLTQ4LDE5ICs0OCwyMCBAQCBzdGF0aWMgTlBJZGVu
dGlmaWVyIG5wSWRlbnRpZmllckZyb21JZGVudGlmaWVyKGNvbnN0IElkZW50aWZpZXImIGlkZW50
aWZpZXIpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PE5QSWRlbnRpZmllcj4oSWRlbnRpZmllclJl
cDo6Z2V0KGlkZW50aWZpZXIudXN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKIH0KIAotY29uc3Qg
Q2xhc3NJbmZvIEpTTlBPYmplY3Q6OnNfaW5mbyA9IHsgIk5QT2JqZWN0IiwgJkpTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdDo6c19pbmZvLCAwLCAwIH07Citjb25zdCBDbGFzc0luZm8gSlNOUE9iamVj
dDo6c19pbmZvID0geyAiTlBPYmplY3QiLCAmSlNOb25GaW5hbE9iamVjdDo6c19pbmZvLCAwLCAw
IH07CiAKIEpTTlBPYmplY3Q6OkpTTlBPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgTlBSdW50aW1lT2JqZWN0TWFwKiBvYmplY3RNYXAsIE5QT2JqZWN0KiBucE9iamVjdCwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFs
T2JqZWN0LCBzdHJ1Y3R1cmUpCisgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+
Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiAgICAgLCBtX29iamVjdE1hcChvYmplY3RNYXApCiAg
ICAgLCBtX25wT2JqZWN0KG5wT2JqZWN0KQogeworICAgIEFTU0VSVChnbG9iYWxPYmplY3QgPT0g
c3RydWN0dXJlLT5nbG9iYWxPYmplY3QoKSk7CiAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2Jq
ZWN0KTsKIH0KIAogdm9pZCBKU05QT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQogewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVj
dC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5m
bykpOwogCiAgICAgLy8gV2Ugc2hvdWxkIG5ldmVyIGhhdmUgYW4gTlBKU09iamVjdCBpbnNpZGUg
YSBKU05QT2JqZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKaW5kZXggMGJiZDViNTYyOWQ3YjlkYmMwODI5NjU3
YmY0MmQ4YmQ1OWRmMjc3MS4uZjA2MWU5ZjMxNzAwZTEwMTE2MGFjMjQxMjRhMjk1NDhkMzdkYjMz
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvSlNOUE9iamVjdC5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIEpTTlBPYmplY3Rf
aAogI2RlZmluZSBKU05QT2JqZWN0X2gKIAotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTT2Jq
ZWN0V2l0aEdsb2JhbE9iamVjdC5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTT2JqZWN0
Lmg+CiAKIHR5cGVkZWYgdm9pZCogTlBJZGVudGlmaWVyOwogc3RydWN0IE5QT2JqZWN0OwpAQCAt
MzcsOSArMzcsOSBAQCBjbGFzcyBOUFJ1bnRpbWVPYmplY3RNYXA7CiAgICAgCiAvLyBKU05QT2Jq
ZWN0IGlzIGEgSlNPYmplY3QgdGhhdCB3cmFwcyBhbiBOUE9iamVjdC4KIAotY2xhc3MgSlNOUE9i
amVjdCA6IHB1YmxpYyBKU0M6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCB7CitjbGFzcyBKU05Q
T2JqZWN0IDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6Ci0gICAgdHlw
ZWRlZiBKU0M6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCBCYXNlOworICAgIHR5cGVkZWYgSlND
OjpKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAKICAgICBzdGF0aWMgSlNOUE9iamVjdCogY3JlYXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBOUFJ1bnRpbWVPYmplY3RNYXAqLCBOUE9iamVjdCopOwog
ICAgIH5KU05QT2JqZWN0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106611</attachid>
            <date>2011-09-07 11:42:10 -0700</date>
            <delta_ts>2011-09-07 13:25:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67689-20110907114209.patch</filename>
            <type>text/plain</type>
            <size>86936</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ2ODgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcAppbmRleCA5NTA0YWQ4MGQ4NTNmM2M2NTVm
ODQyOGQ3ZDE2YTY1ZmVjYjgzMDc3Li4xZjcyNzAxYzdmZWJiMjE3NDk4ODlkNDExNDg5OThkZWNm
YWRiYmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuY3BwCkBAIC0zNiwxMCArMzYsMTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAK
LWNvbnN0IENsYXNzSW5mbyBKU0NhbGxiYWNrQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkNhbGxi
YWNrQ29uc3RydWN0b3IiLCAmSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpzX2luZm8sIDAsIDAg
fTsKK2NvbnN0IENsYXNzSW5mbyBKU0NhbGxiYWNrQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkNh
bGxiYWNrQ29uc3RydWN0b3IiLCAmSlNOb25GaW5hbE9iamVjdDo6c19pbmZvLCAwLCAwIH07CiAK
IEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6SlNDYWxsYmFja0NvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0NsYXNzUmVmIGpzQ2xh
c3MsIEpTT2JqZWN0Q2FsbEFzQ29uc3RydWN0b3JDYWxsYmFjayBjYWxsYmFjaykKLSAgICA6IEpT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKKyAgICA6IEpT
Tm9uRmluYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKICAg
ICAsIG1fY2xhc3MoanNDbGFzcykKICAgICAsIG1fY2FsbGJhY2soY2FsbGJhY2spCiB7CkBAIC00
OCw3ICs0OCw3IEBAIEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6SlNDYWxsYmFja0NvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjCiAKIHZvaWQgSlNDYWxsYmFja0Nv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0NsYXNzUmVmIGpzQ2xhc3MpCiB7Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19p
bmZvKSk7CiAgICAgaWYgKG1fY2xhc3MpCiAgICAgICAgIEpTQ2xhc3NSZXRhaW4oanNDbGFzcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1
Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3Iu
aAppbmRleCA1OWE1YzQ0MzAzOGQ3NjUzY2Y4NTMyMGQ4NzVmZGU5YzI5ZDQ3OGYwLi5lNTEyN2Ex
YWQzYmUyNjQ3MWFlMzdmYjdhMjJiOTUyODNmNjg3OTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmgKQEAgLTI3LDEzICsyNywxMyBA
QAogI2RlZmluZSBKU0NhbGxiYWNrQ29uc3RydWN0b3JfaAogCiAjaW5jbHVkZSAiSlNPYmplY3RS
ZWYuaCIKLSNpbmNsdWRlIDxydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oPgorI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNzIEpT
Q2FsbGJhY2tDb25zdHJ1Y3RvciA6IHB1YmxpYyBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Qgewor
Y2xhc3MgSlNDYWxsYmFja0NvbnN0cnVjdG9yIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qgewog
cHVibGljOgotICAgIHR5cGVkZWYgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IEJhc2U7CisgICAg
dHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAKICAgICBzdGF0aWMgSlNDYWxsYmFja0Nv
bnN0cnVjdG9yKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNDbGFzc1JlZiBjbGFzc1JlZiwgSlNPYmpl
Y3RDYWxsQXNDb25zdHJ1Y3RvckNhbGxiYWNrIGNhbGxiYWNrKSAKICAgICB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmNwcAppbmRleCA2YTc0NjJhOTA0
MGY4Y2ExZDdmYjI0YWI5NTlmZDYwMDM1ODdjYjY0Li42M2I5MTA1NTBjNmUwZWEyNWMyOWI3YjNk
MmIyMWIwNmNjZTdhZDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja09iamVjdC5jcHAKQEAgLTMyLDExICszMiwxMSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
QVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdD4pOworQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU0NhbGxiYWNrT2JqZWN0
PEpTTm9uRmluYWxPYmplY3Q+KTsKIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNDYWxsYmFj
a09iamVjdDxKU0dsb2JhbE9iamVjdD4pOwogCiAvLyBEZWZpbmUgdGhlIHR3byB0eXBlcyBvZiBK
U0NhbGxiYWNrT2JqZWN0cyB3ZSBzdXBwb3J0LgotdGVtcGxhdGUgPD4gY29uc3QgQ2xhc3NJbmZv
IEpTQ2FsbGJhY2tPYmplY3Q8SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Pjo6c19pbmZvID0geyAi
Q2FsbGJhY2tPYmplY3QiLCAmSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpzX2luZm8sIDAsIDAg
fTsKK3RlbXBsYXRlIDw+IGNvbnN0IENsYXNzSW5mbyBKU0NhbGxiYWNrT2JqZWN0PEpTTm9uRmlu
YWxPYmplY3Q+OjpzX2luZm8gPSB7ICJDYWxsYmFja09iamVjdCIsICZKU05vbkZpbmFsT2JqZWN0
OjpzX2luZm8sIDAsIDAgfTsKIHRlbXBsYXRlIDw+IGNvbnN0IENsYXNzSW5mbyBKU0NhbGxiYWNr
T2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvID0geyAiQ2FsbGJhY2tHbG9iYWxPYmplY3Qi
LCAmSlNHbG9iYWxPYmplY3Q6OnNfaW5mbywgMCwgMCB9OwogCiB2b2lkIEpTQ2FsbGJhY2tPYmpl
Y3REYXRhOjpmaW5hbGl6ZShIYW5kbGU8VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAppbmRleCAzOTNm
MTNmYzQ3ZmIxNWJmNTJlODJhOTc4OGY0MDFjM2JlNzdiNDA0Li4xMjZmZTVmNWJlYjExNTVmZDUz
YmY0NTI1MzIxZTY5YjQyZTU1MDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3QuaApAQCAtMTE3LDE0ICsxMTcsMTQgQEAgc3RydWN0IEpTQ2FsbGJhY2tP
YmplY3REYXRhIDogV2Vha0hhbmRsZU93bmVyIHsKIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+CiBj
bGFzcyBKU0NhbGxiYWNrT2JqZWN0IDogcHVibGljIFBhcmVudCB7CiBwcm90ZWN0ZWQ6Ci0gICAg
SlNDYWxsYmFja09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSos
IEpTQ2xhc3NSZWYsIHZvaWQqIGRhdGEpOworICAgIEpTQ2FsbGJhY2tPYmplY3QoRXhlY1N0YXRl
KiwgU3RydWN0dXJlKiwgSlNDbGFzc1JlZiwgdm9pZCogZGF0YSk7CiAgICAgSlNDYWxsYmFja09i
amVjdChKU0dsb2JhbERhdGEmLCBKU0NsYXNzUmVmLCBTdHJ1Y3R1cmUqKTsKICAgICAvLyBXZSdk
IGxpa2UgdG8gdXNlIHRoZSBwbGFjZW1lbnQgdmVyc2lvbiBvZiBvcGVyYXRvciBuZXcgZGVmaW5l
ZCBpbiBKU0NlbGwsIGJ1dCAKICAgICAvLyB3ZSBjYW4ndCBiZWNhdXNlIFBhcmVudCBpcyBhIHRl
bXBsYXRlIGFyZ3VtZW50LCBzbyB3ZSBqdXN0IGR1cGxpY2F0ZSB0aGUgc2FtZSAKICAgICAvLyBm
dW5jdGlvbmFsaXR5IGhlcmUuCiAgICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCwgdm9pZCog
cHRyKSB7IHJldHVybiBwdHI7IH0KIAotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRl
KiwgSlNHbG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSop
OwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oKTsKIAogcHVibGljOgpAQCAtMTMyLDcgKzEzMiw4
IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0NhbGxiYWNrT2JqZWN0KiBjcmVhdGUoRXhlY1N0
YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgSlNDbGFzc1JlZiBjbGFzc1JlZiwgdm9pZCogZGF0YSkKICAgICB7Ci0gICAgICAgIEpT
Q2FsbGJhY2tPYmplY3QqIGNhbGxiYWNrT2JqZWN0ID0gbmV3IChhbGxvY2F0ZUNlbGw8SlNDYWxs
YmFja09iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIEpTQ2FsbGJhY2tPYmplY3QoZXhlYywgZ2xvYmFs
T2JqZWN0LCBzdHJ1Y3R1cmUsIGNsYXNzUmVmLCBkYXRhKTsKKyAgICAgICAgQVNTRVJUKCFzdHJ1
Y3R1cmUtPmdsb2JhbE9iamVjdCgpIHx8IHN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCkgPT0gZ2xv
YmFsT2JqZWN0KTsKKyAgICAgICAgSlNDYWxsYmFja09iamVjdCogY2FsbGJhY2tPYmplY3QgPSBu
ZXcgKGFsbG9jYXRlQ2VsbDxKU0NhbGxiYWNrT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgSlNDYWxs
YmFja09iamVjdChleGVjLCBzdHJ1Y3R1cmUsIGNsYXNzUmVmLCBkYXRhKTsKICAgICAgICAgcmV0
dXJuIGNhbGxiYWNrT2JqZWN0OwogICAgIH0KICAgICBzdGF0aWMgSlNDYWxsYmFja09iamVjdCog
Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDbGFzc1JlZiBjbGFzc1JlZiwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oCmluZGV4IGMzMTIzYmRmNjdlOGQzZjcyMDRhNjcx
ODcyMmMwMzRmYTFhZmI4MDQuLmY2MjdjM2JmYjgwYzZlYWI2NWIzMDJjMTA3MzA5NWFiYjAxYjZm
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVj
dEZ1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09i
amVjdEZ1bmN0aW9ucy5oCkBAIC01MCwxMSArNTAsMTEgQEAgaW5saW5lIEpTQ2FsbGJhY2tPYmpl
Y3Q8UGFyZW50PiogSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+Ojphc0NhbGxiYWNrT2JqZWN0KEpT
VmEKIH0KIAogdGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KLUpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50
Pjo6SlNDYWxsYmFja09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0NsYXNzUmVmIGpzQ2xhc3MsIHZvaWQq
IGRhdGEpCi0gICAgOiBQYXJlbnQoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCitKU0NhbGxiYWNr
T2JqZWN0PFBhcmVudD46OkpTQ2FsbGJhY2tPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgSlNDbGFzc1JlZiBqc0NsYXNzLCB2b2lkKiBkYXRhKQorICAgIDogUGFy
ZW50KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogICAgICwgbV9jYWxsYmFja09iamVj
dERhdGEoYWRvcHRQdHIobmV3IEpTQ2FsbGJhY2tPYmplY3REYXRhKGRhdGEsIGpzQ2xhc3MpKSkK
IHsKLSAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QpOworICAgIGZpbmlzaENy
ZWF0aW9uKGV4ZWMpOwogfQogCiAvLyBHbG9iYWwgb2JqZWN0IGNvbnN0cnVjdG9yLgpAQCAtNjgs
OSArNjgsOSBAQCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OkpTQ2FsbGJhY2tPYmplY3QoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0NsYXNzUmVmCiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBQ
YXJlbnQ+Ci12b2lkIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6ZmluaXNoQ3JlYXRpb24oRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQordm9pZCBKU0NhbGxi
YWNrT2JqZWN0PFBhcmVudD46OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFs
T2JqZWN0KTsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOwog
ICAgIEFTU0VSVChQYXJlbnQ6OmluaGVyaXRzKCZzX2luZm8pKTsKICAgICBpbml0KGV4ZWMpOwog
fQpAQCAtNTc0LDcgKzU3NCw3IEBAIEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+Ojpz
dGF0aWNGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUKICAgICAgICAgICAg
IGlmIChTdGF0aWNGdW5jdGlvbkVudHJ5KiBlbnRyeSA9IHN0YXRpY0Z1bmN0aW9ucy0+Z2V0KHBy
b3BlcnR5TmFtZS5pbXBsKCkpKSB7CiAgICAgICAgICAgICAgICAgaWYgKEpTT2JqZWN0Q2FsbEFz
RnVuY3Rpb25DYWxsYmFjayBjYWxsQXNGdW5jdGlvbiA9IGVudHJ5LT5jYWxsQXNGdW5jdGlvbikg
ewogICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgSlNPYmplY3QqIG8g
PSBKU0NhbGxiYWNrRnVuY3Rpb246OmNyZWF0ZShleGVjLCBhc0dsb2JhbE9iamVjdCh0aGlzT2Jq
LT5nZXRBbm9ueW1vdXNWYWx1ZSgwKSksIGNhbGxBc0Z1bmN0aW9uLCBwcm9wZXJ0eU5hbWUpOwor
ICAgICAgICAgICAgICAgICAgICBKU09iamVjdCogbyA9IEpTQ2FsbGJhY2tGdW5jdGlvbjo6Y3Jl
YXRlKGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9iamVjdCgpLCBjYWxsQXNGdW5jdGlvbiwgcHJvcGVy
dHlOYW1lKTsKICAgICAgICAgICAgICAgICAgICAgdGhpc09iai0+cHV0RGlyZWN0KGV4ZWMtPmds
b2JhbERhdGEoKSwgcHJvcGVydHlOYW1lLCBvLCBlbnRyeS0+YXR0cmlidXRlcyk7CiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBvOwogICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCmluZGV4IGM3MWFkODljOWYwYzg0ZTUzOGQ2NGE1ODRk
ZjgxMmNhOTQ3MTlkYmIuLjE0YTk2MzkwZTlkZTdjYmQxZTUzY2VlN2I4NTViMGY4YmY1MThkMjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcApAQCAtMjUxLDcgKzI1
MSw3IEBAIEpTT2JqZWN0KiBPcGFxdWVKU0NsYXNzOjpwcm90b3R5cGUoRXhlY1N0YXRlKiBleGVj
KQogCiAgICAgaWYgKCFqc0NsYXNzRGF0YS5jYWNoZWRQcm90b3R5cGUpIHsKICAgICAgICAgLy8g
UmVjdXJzaXZlLCBidXQgc2hvdWxkIGJlIGdvb2QgZW5vdWdoIGZvciBvdXIgcHVycG9zZXMKLSAg
ICAgICAganNDbGFzc0RhdGEuY2FjaGVkUHJvdG90eXBlLnNldChleGVjLT5nbG9iYWxEYXRhKCks
IEpTQ2FsbGJhY2tPYmplY3Q8SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Pjo6Y3JlYXRlKGV4ZWMs
IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
LT5jYWxsYmFja09iamVjdFN0cnVjdHVyZSgpLCBwcm90b3R5cGVDbGFzcywgJmpzQ2xhc3NEYXRh
KSwgMCk7IC8vIHNldCBqc0NsYXNzRGF0YSBhcyB0aGUgb2JqZWN0J3MgcHJpdmF0ZSBkYXRhLCBz
byBpdCBjYW4gY2xlYXIgb3VyIHJlZmVyZW5jZSBvbiBkZXN0cnVjdGlvbgorICAgICAgICBqc0Ns
YXNzRGF0YS5jYWNoZWRQcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgSlNDYWxsYmFj
a09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pjo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5jYWxsYmFja09iamVjdFN0
cnVjdHVyZSgpLCBwcm90b3R5cGVDbGFzcywgJmpzQ2xhc3NEYXRhKSwgMCk7IC8vIHNldCBqc0Ns
YXNzRGF0YSBhcyB0aGUgb2JqZWN0J3MgcHJpdmF0ZSBkYXRhLCBzbyBpdCBjYW4gY2xlYXIgb3Vy
IHJlZmVyZW5jZSBvbiBkZXN0cnVjdGlvbgogICAgICAgICBpZiAocGFyZW50Q2xhc3MpIHsKICAg
ICAgICAgICAgIGlmIChKU09iamVjdCogcHJvdG90eXBlID0gcGFyZW50Q2xhc3MtPnByb3RvdHlw
ZShleGVjKSkKICAgICAgICAgICAgICAgICBqc0NsYXNzRGF0YS5jYWNoZWRQcm90b3R5cGUtPnNl
dFByb3RvdHlwZShleGVjLT5nbG9iYWxEYXRhKCksIHByb3RvdHlwZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCmluZGV4IDllZmU2NGZkZTQ0MDQ3OWE3NzFjMDAw
NTQ4NTIxZjYzMTkxYjI2NTcuLmNmMDMxZjcwZTNiMmM4NzQ0YjAwMDA1NTNhMGEyYjYxYTU5ZjJh
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCkBAIC04MSw3
ICs4MSw3IEBAIEpTT2JqZWN0UmVmIEpTT2JqZWN0TWFrZShKU0NvbnRleHRSZWYgY3R4LCBKU0Ns
YXNzUmVmIGpzQ2xhc3MsIHZvaWQqIGRhdGEpCiAgICAgaWYgKCFqc0NsYXNzKQogICAgICAgICBy
ZXR1cm4gdG9SZWYoY29uc3RydWN0RW1wdHlPYmplY3QoZXhlYykpOwogCi0gICAgSlNDYWxsYmFj
a09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+KiBvYmplY3QgPSBKU0NhbGxiYWNrT2Jq
ZWN0PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdD46OmNyZWF0ZShleGVjLCBleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Y2FsbGJhY2tPYmpl
Y3RTdHJ1Y3R1cmUoKSwganNDbGFzcywgZGF0YSk7CisgICAgSlNDYWxsYmFja09iamVjdDxKU05v
bkZpbmFsT2JqZWN0Piogb2JqZWN0ID0gSlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0
Pjo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpLT5jYWxsYmFja09iamVjdFN0cnVjdHVyZSgpLCBqc0NsYXNzLCBkYXRh
KTsKICAgICBpZiAoSlNPYmplY3QqIHByb3RvdHlwZSA9IGpzQ2xhc3MtPnByb3RvdHlwZShleGVj
KSkKICAgICAgICAgb2JqZWN0LT5zZXRQcm90b3R5cGUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBwcm90
b3R5cGUpOwogCkBAIC0zNDIsOCArMzQyLDggQEAgdm9pZCogSlNPYmplY3RHZXRQcml2YXRlKEpT
T2JqZWN0UmVmIG9iamVjdCkKICAgICAKICAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKCZKU0Nh
bGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvKSkKICAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5n
ZXRQcml2YXRlKCk7Ci0gICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cygmSlNDYWxsYmFja09iamVj
dDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+OjpzX2luZm8pKQotICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+Kj4oanNP
YmplY3QpLT5nZXRQcml2YXRlKCk7CisgICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cygmSlNDYWxs
YmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pjo6c19pbmZvKSkKKyAgICAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD4qPihqc09iamVjdCkt
PmdldFByaXZhdGUoKTsKICAgICAKICAgICByZXR1cm4gMDsKIH0KQEAgLTM1Niw4ICszNTYsOCBA
QCBib29sIEpTT2JqZWN0U2V0UHJpdmF0ZShKU09iamVjdFJlZiBvYmplY3QsIHZvaWQqIGRhdGEp
CiAgICAgICAgIHN0YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+Kj4o
anNPYmplY3QpLT5zZXRQcml2YXRlKGRhdGEpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
Ci0gICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cygmSlNDYWxsYmFja09iamVjdDxKU09iamVjdFdp
dGhHbG9iYWxPYmplY3Q+OjpzX2luZm8pKSB7Ci0gICAgICAgIHN0YXRpY19jYXN0PEpTQ2FsbGJh
Y2tPYmplY3Q8SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Pio+KGpzT2JqZWN0KS0+c2V0UHJpdmF0
ZShkYXRhKTsKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpT
Tm9uRmluYWxPYmplY3Q+OjpzX2luZm8pKSB7CisgICAgICAgIHN0YXRpY19jYXN0PEpTQ2FsbGJh
Y2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD4qPihqc09iamVjdCktPnNldFByaXZhdGUoZGF0YSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAgICAgCkBAIC0zNzMsOCArMzczLDgg
QEAgSlNWYWx1ZVJlZiBKU09iamVjdEdldFByaXZhdGVQcm9wZXJ0eShKU0NvbnRleHRSZWYgY3R4
LCBKU09iamVjdFJlZiBvYmplY3QsIEpTU3QKICAgICBJZGVudGlmaWVyIG5hbWUocHJvcGVydHlO
YW1lLT5pZGVudGlmaWVyKCZleGVjLT5nbG9iYWxEYXRhKCkpKTsKICAgICBpZiAoanNPYmplY3Qt
PmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvKSkKICAg
ICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVj
dD4qPihqc09iamVjdCktPmdldFByaXZhdGVQcm9wZXJ0eShuYW1lKTsKLSAgICBlbHNlIGlmIChq
c09iamVjdC0+aW5oZXJpdHMoJkpTQ2FsbGJhY2tPYmplY3Q8SlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0Pjo6c19pbmZvKSkKLSAgICAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09i
amVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5nZXRQcml2YXRlUHJv
cGVydHkobmFtZSk7CisgICAgZWxzZSBpZiAoanNPYmplY3QtPmluaGVyaXRzKCZKU0NhbGxiYWNr
T2JqZWN0PEpTTm9uRmluYWxPYmplY3Q+OjpzX2luZm8pKQorICAgICAgICByZXN1bHQgPSBzdGF0
aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTTm9uRmluYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5n
ZXRQcml2YXRlUHJvcGVydHkobmFtZSk7CiAgICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHJlc3VsdCk7
CiB9CiAKQEAgLTM4OSw4ICszODksOCBAQCBib29sIEpTT2JqZWN0U2V0UHJpdmF0ZVByb3BlcnR5
KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG9iamVjdCwgSlNTdHJpbmdSZQogICAgICAg
ICBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pio+KGpzT2JqZWN0
KS0+c2V0UHJpdmF0ZVByb3BlcnR5KGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFtZSwganNWYWx1ZSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBpZiAoanNPYmplY3QtPmluaGVyaXRz
KCZKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdD46OnNfaW5mbykpIHsK
LSAgICAgICAgc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxP
YmplY3Q+Kj4oanNPYmplY3QpLT5zZXRQcml2YXRlUHJvcGVydHkoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBuYW1lLCBqc1ZhbHVlKTsKKyAgICBpZiAoanNPYmplY3QtPmluaGVyaXRzKCZKU0NhbGxiYWNr
T2JqZWN0PEpTTm9uRmluYWxPYmplY3Q+OjpzX2luZm8pKSB7CisgICAgICAgIHN0YXRpY19jYXN0
PEpTQ2FsbGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD4qPihqc09iamVjdCktPnNldFByaXZh
dGVQcm9wZXJ0eShleGVjLT5nbG9iYWxEYXRhKCksIG5hbWUsIGpzVmFsdWUpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDA2LDggKzQwNiw4IEBA
IGJvb2wgSlNPYmplY3REZWxldGVQcml2YXRlUHJvcGVydHkoSlNDb250ZXh0UmVmIGN0eCwgSlNP
YmplY3RSZWYgb2JqZWN0LCBKU1N0cmluCiAgICAgICAgIHN0YXRpY19jYXN0PEpTQ2FsbGJhY2tP
YmplY3Q8SlNHbG9iYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5kZWxldGVQcml2YXRlUHJvcGVydHko
bmFtZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBpZiAoanNPYmplY3QtPmlu
aGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdD46OnNfaW5m
bykpIHsKLSAgICAgICAgc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU09iamVjdFdpdGhH
bG9iYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5kZWxldGVQcml2YXRlUHJvcGVydHkobmFtZSk7Cisg
ICAgaWYgKGpzT2JqZWN0LT5pbmhlcml0cygmSlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2Jq
ZWN0Pjo6c19pbmZvKSkgeworICAgICAgICBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpT
Tm9uRmluYWxPYmplY3Q+Kj4oanNPYmplY3QpLT5kZWxldGVQcml2YXRlUHJvcGVydHkobmFtZSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcAppbmRleCAxOGJiZDkxZTZhNGY4ODJlZTM3
MmI1YmUzMjE4ZjU0YzlhODEyZDE1Li44MDNjY2Q5MWZlOGNjNjE2NDhhODg4ZTg3ZDUzOGVjZGVk
Y2VlNDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKQEAgLTEz
MSw4ICsxMzEsOCBAQCBib29sIEpTVmFsdWVJc09iamVjdE9mQ2xhc3MoSlNDb250ZXh0UmVmIGN0
eCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNDbGFzc1JlZiBqc0NsYQogICAgIGlmIChKU09iamVjdCog
byA9IGpzVmFsdWUuZ2V0T2JqZWN0KCkpIHsKICAgICAgICAgaWYgKG8tPmluaGVyaXRzKCZKU0Nh
bGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvKSkKICAgICAgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pio+KG8pLT5pbmhl
cml0cyhqc0NsYXNzKTsKLSAgICAgICAgaWYgKG8tPmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0
PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdD46OnNfaW5mbykpCi0gICAgICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q+Kj4o
byktPmluaGVyaXRzKGpzQ2xhc3MpOworICAgICAgICBpZiAoby0+aW5oZXJpdHMoJkpTQ2FsbGJh
Y2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD46OnNfaW5mbykpCisgICAgICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pio+KG8pLT5pbmhl
cml0cyhqc0NsYXNzKTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAK
aW5kZXggMTM5MDBjZjgzMjdiNGYwMjZlMjAzZjRhMTJjYjU4NDY0YzIwM2ExNC4uNDI5MmE2MGJk
OTg0YzEwMThhOTYxODBkOTk4YzFjZGI0NTdjYjU3YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTV2Vha09iamVjdE1hcFJlZlByaXZhdGUuY3BwCkBAIC01Nyw3
ICs1Nyw3IEBAIHZvaWQgSlNXZWFrT2JqZWN0TWFwU2V0KEpTQ29udGV4dFJlZiBjdHgsIEpTV2Vh
a09iamVjdE1hcFJlZiBtYXAsIHZvaWQqIGtleSwgSlNPCiAgICAgSlNPYmplY3QqIG9iaiA9IHRv
SlMob2JqZWN0KTsKICAgICBpZiAoIW9iaikKICAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVChv
YmotPmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvKSB8
fCBvYmotPmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0PEpTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dD46OnNfaW5mbykpOworICAgIEFTU0VSVChvYmotPmluaGVyaXRzKCZKU0NhbGxiYWNrT2JqZWN0
PEpTR2xvYmFsT2JqZWN0Pjo6c19pbmZvKSB8fCBvYmotPmluaGVyaXRzKCZKU0NhbGxiYWNrT2Jq
ZWN0PEpTTm9uRmluYWxPYmplY3Q+OjpzX2luZm8pKTsKICAgICBtYXAtPm1hcCgpLnNldChleGVj
LT5nbG9iYWxEYXRhKCksIGtleSwgb2JqKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDUyMWNkZTJkYmMyMDI4NmRlZDY3Y2Y5YzI0MTI5M2UzNjBhNjU1NzQuLjEw
ZTAyYmM0Y2QzMTQyNzUzZTZjNjJmMzliODJlMmI0OTczODlmZDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTEyNSw3ICsxMjUsNiBAQCBTRVQoSmF2YVNjcmlwdENvcmVf
U09VUkNFUwogICAgIHJ1bnRpbWUvSlNMb2NrLmNwcAogICAgIHJ1bnRpbWUvSlNOb3RBbk9iamVj
dC5jcHAKICAgICBydW50aW1lL0pTT2JqZWN0LmNwcAotICAgIHJ1bnRpbWUvSlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0LmNwcAogICAgIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHAKICAgICBydW50aW1l
L0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCiAgICAgcnVudGltZS9KU1N0YXRpY1Njb3BlT2Jq
ZWN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggODA0M2E4MDEzNDlmZmNjMjE5Yzc4
NGJiMDA4YTliMTE1MjFlNjRkZC4uYjdiYzZhODI4YjM5MTU4MmYyZjI4YmI1NDFkNGI4ZTBlM2Mz
M2FkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTEgQEAKKzIwMTEtMDkt
MDYgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgSlNP
YmplY3RXaXRoR2xvYmFsT2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02NzY4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbW92ZSBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QsIGFuZCB1cGRhdGUg
Y29kZSB0byBzdG9wIHVzaW5nIGFub255bW91cworICAgICAgICBzdG9yYWdlIHRvIGFjY2VzcyB0
aGUgZ2xvYmFsIG9iamVjdCB0aGF0IGEgSlNPYmplY3QgY29tZXMgZnJvbS4gIExhcmdlbHkKKyAg
ICAgICAgbWVjaGFuaWNhbCBjaGFuZ2UgdG8gcmVtb3ZlIHRoZSB1c2Ugb2YgYW5vbnltb3VzIHN0
b3JhZ2UgYW5kIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC4KKworICAgICAgICAqIEFQSS9KU0Nh
bGxiYWNrQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrQ29uc3RydWN0
b3I6OkpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tDb25z
dHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrQ29uc3Ry
dWN0b3IuaDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5jcHA6CisgICAgICAgICog
QVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDo6
Y3JlYXRlKToKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oOgorICAg
ICAgICAoSlNDOjo6OkpTQ2FsbGJhY2tPYmplY3QpOgorICAgICAgICAoSlNDOjo6OmZpbmlzaENy
ZWF0aW9uKToKKyAgICAgICAgKEpTQzo6OjpzdGF0aWNGdW5jdGlvbkdldHRlcik6CisgICAgICAg
ICogQVBJL0pTQ2xhc3NSZWYuY3BwOgorICAgICAgICAoT3BhcXVlSlNDbGFzczo6cHJvdG90eXBl
KToKKyAgICAgICAgKiBBUEkvSlNPYmplY3RSZWYuY3BwOgorICAgICAgICAoSlNPYmplY3RNYWtl
KToKKyAgICAgICAgKEpTT2JqZWN0R2V0UHJpdmF0ZSk6CisgICAgICAgIChKU09iamVjdFNldFBy
aXZhdGUpOgorICAgICAgICAoSlNPYmplY3RHZXRQcml2YXRlUHJvcGVydHkpOgorICAgICAgICAo
SlNPYmplY3RTZXRQcml2YXRlUHJvcGVydHkpOgorICAgICAgICAoSlNPYmplY3REZWxldGVQcml2
YXRlUHJvcGVydHkpOgorICAgICAgICAqIEFQSS9KU1ZhbHVlUmVmLmNwcDoKKyAgICAgICAgKEpT
VmFsdWVJc09iamVjdE9mQ2xhc3MpOgorICAgICAgICAqIEFQSS9KU1dlYWtPYmplY3RNYXBSZWZQ
cml2YXRlLmNwcDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5leHA6CisgICAgICAgICogSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBieXRlY29k
ZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKiBkZmcvREZHUmVwYXRjaC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6ZGZnUmVwYXRjaEdldE1ldGhvZEZhc3QpOgorICAgICAgICAoSlNDOjpERkc6OnRy
eUNhY2hlR2V0TWV0aG9kKToKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJ
VElubGluZU1ldGhvZHMuaDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0QWxsb2NhdGVKU0Z1bmN0
aW9uKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlND
OjpKSVQ6OnBhdGNoTWV0aG9kQ2FsbFByb3RvKToKKyAgICAgICAgKiBqaXQvSklUU3R1YnMuY3Bw
OgorICAgICAgICAoSlNDOjpERUZJTkVfU1RVQl9GVU5DVElPTik6CisgICAgICAgICogcnVudGlt
ZS9EYXRlUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0ludGVybmFsRnVuY3Rpb24u
Y3BwOgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKToK
KyAgICAgICAgKEpTQzo6SW50ZXJuYWxGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAg
ICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5j
dGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OkpTRnVuY3Rpb24pOgorICAgICAg
ICAoSlNDOjpKU0Z1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9K
U0Z1bmN0aW9uLmg6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmNyZWF0ZSk6CisgICAgICAg
IChKU0M6OkpTRnVuY3Rpb246OmNyZWF0ZVN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpyZXNldCk6
CisgICAgICAgICogcnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPTk9i
amVjdDo6SlNPTk9iamVjdCk6CisgICAgICAgIChKU0M6OkpTT05PYmplY3Q6OmZpbmlzaENyZWF0
aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1l
L0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnbG9iYWxPYmplY3QpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oOiBSZW1vdmVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSlNWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OmlzVmFs
aWRDYWxsZWUpOgorICAgICAgICAqIHJ1bnRpbWUvTG9va3VwLmNwcDoKKyAgICAgICAgKEpTQzo6
c2V0VXBTdGF0aWNGdW5jdGlvblNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvTG9va3VwLmg6Cisg
ICAgICAgICogcnVudGltZS9NYXRoT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6TWF0aE9iamVj
dDo6TWF0aE9iamVjdCk6CisgICAgICAgIChKU0M6Ok1hdGhPYmplY3Q6OmZpbmlzaENyZWF0aW9u
KToKKyAgICAgICAgKiBydW50aW1lL01hdGhPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL051
bWJlclByb3RvdHlwZS5jcHA6CisgICAgICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuY3BwOgor
ICAgICAgICAoSlNDOjpSZWdFeHBPYmplY3Q6OlJlZ0V4cE9iamVjdCk6CisgICAgICAgIChKU0M6
OlJlZ0V4cE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhw
T2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuY3BwOgorICAgICAgICAoSlND
OjpTdHJ1Y3R1cmU6OlN0cnVjdHVyZSk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuaDoK
KyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1
cmU6Omdsb2JhbE9iamVjdCk6CisKIDIwMTEtMDktMDcgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFy
cmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9yIEpJVCBjaGVja3MgZm9yIE9i
amVjdFR5cGUgaW50byBoZWxwZXIgZnVuY3Rpb25zLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQppbmRleCBlNjU2MTMxNjg3MGMwYmJiYWQ5NTQxMTE5ODYxYWUxNDg1
OGVjOWU5Li4xYWU2NjM4ZjYzZDYwYTlmY2RkMmU0NDlkODZkZWRhYjYzNTkzOGM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzQ2LDggKzM0Niw2IEBA
IGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTTm90QW5PYmplY3QuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3QuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIFwK
LQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3Qu
Y3BwIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxP
YmplY3QuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAg
XAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaCBcCiAJU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAgXApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5kZXggNTY4ZTQwZjAyMzY4MmY3
NDJlNDYwNjJiYTM4Y2Q1MDRlYWI0OTU2NC4uYjA5NWI4YWE5MWQyY2UwZWRjYzIxYTAzOTExZWNh
M2JlODM0ZGJlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmV4cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCkBA
IC0xMDksOCArMTA5LDcgQEAgX19aTjNKU0MxMElkZW50aWZpZXIzYWRkRVBOU185RXhlY1N0YXRl
RVBLYwogX19aTjNKU0MxMElkZW50aWZpZXI0ZnJvbUVQTlNfOUV4ZWNTdGF0ZUVpCiBfX1pOM0pT
QzEwSWRlbnRpZmllcjRmcm9tRVBOU185RXhlY1N0YXRlRWoKIF9fWk4zSlNDMTBJZGVudGlmaWVy
OHRvVUludDMyRVJLTlNfN1VTdHJpbmdFUmIKLV9fWk4zSlNDMTBKU0Z1bmN0aW9uMTRmaW5pc2hD
cmVhdGlvbkVQTlNfOUV4ZWNTdGF0ZUVQTlNfMTRKU0dsb2JhbE9iamVjdEVQTlNfMThGdW5jdGlv
bkV4ZWN1dGFibGVFUE5TXzE0U2NvcGVDaGFpbk5vZGVFCi1fX1pOM0pTQzEwSlNGdW5jdGlvbjE0
ZmluaXNoQ3JlYXRpb25FUE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RFaVJLTlNf
MTBJZGVudGlmaWVyRVBOU18xNEV4ZWN1dGFibGVCYXNlRQorX19aTjNKU0MxMEpTRnVuY3Rpb24x
NGZpbmlzaENyZWF0aW9uRVBOU185RXhlY1N0YXRlRWlSS05TXzEwSWRlbnRpZmllckVQTlNfMTRF
eGVjdXRhYmxlQmFzZUUKIF9fWk4zSlNDMTBKU0Z1bmN0aW9uNG5hbWVFUE5TXzlFeGVjU3RhdGVF
CiBfX1pOM0pTQzEwSlNGdW5jdGlvbjZzX2luZm9FCiBfX1pOM0pTQzEwSlNGdW5jdGlvbkMxRVBO
U185RXhlY1N0YXRlRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRQpAQCAtMjE4
LDkgKzIxNyw2IEBAIF9fWk4zSlNDMjNBYnN0cmFjdFNhbXBsaW5nQ291bnRlcjRkdW1wRXYKIF9f
Wk4zSlNDMjNvYmplY3RQcm90b0Z1bmNUb1N0cmluZ0VQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlND
MjNzZXRVcFN0YXRpY0Z1bmN0aW9uU2xvdEVQTlNfOUV4ZWNTdGF0ZUVQS05TXzlIYXNoRW50cnlF
UE5TXzhKU09iamVjdEVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNsb3RFCiBfX1pO
M0pTQzI0RHluYW1pY0dsb2JhbE9iamVjdFNjb3BlQzFFUk5TXzEySlNHbG9iYWxEYXRhRVBOU18x
NEpTR2xvYmFsT2JqZWN0RQotX19aTjNKU0MyNEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDE0Zmlu
aXNoQ3JlYXRpb25FUk5TXzEySlNHbG9iYWxEYXRhRVBOU18xNEpTR2xvYmFsT2JqZWN0RQotX19a
TjNKU0MyNEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEMyRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBO
U185U3RydWN0dXJlRQotX19aTjNKU0MyNEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEMyRVJOU18x
MkpTR2xvYmFsRGF0YUVQTlNfOVN0cnVjdHVyZUUKIF9fWk4zSlNDMjRjcmVhdGVTdGFja092ZXJm
bG93RXJyb3JFUE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pTQzI1ZXZhbHVhdGVJbkdsb2JhbENhbGxG
cmFtZUVSS05TXzdVU3RyaW5nRVJOU183SlNWYWx1ZUVQTlNfMTRKU0dsb2JhbE9iamVjdEUKIF9f
Wk4zSlNDMzVjcmVhdGVJbnRlcnJ1cHRlZEV4ZWN1dGlvbkV4Y2VwdGlvbkVQTlNfMTJKU0dsb2Jh
bERhdGFFCkBAIC0zNDMsNyArMzM5LDcgQEAgX19aTjNKU0M5U3RydWN0dXJlMjhhZGRQcm9wZXJ0
eVdpdGhvdXRUcmFuc2l0aW9uRVJOU18xMkpTR2xvYmFsRGF0YUVSS05TXzEwSWRlbnQKIF9fWk4z
SlNDOVN0cnVjdHVyZTNnZXRFUk5TXzEySlNHbG9iYWxEYXRhRVBOM1dURjEwU3RyaW5nSW1wbEVS
alJQTlNfNkpTQ2VsbEUKIF9fWk4zSlNDOVN0cnVjdHVyZTQwYWRkUHJvcGVydHlUcmFuc2l0aW9u
VG9FeGlzdGluZ1N0cnVjdHVyZUVQUzBfUktOU18xMElkZW50aWZpZXJFalBOU182SlNDZWxsRVJt
CiBfX1pOM0pTQzlTdHJ1Y3R1cmU2c19pbmZvRQotX19aTjNKU0M5U3RydWN0dXJlQzFFUk5TXzEy
SlNHbG9iYWxEYXRhRU5TXzdKU1ZhbHVlRVJLTlNfOFR5cGVJbmZvRWpQS05TXzlDbGFzc0luZm9F
CitfX1pOM0pTQzlTdHJ1Y3R1cmVDMUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzE0SlNHbG9iYWxP
YmplY3RFTlNfN0pTVmFsdWVFUktOU184VHlwZUluZm9FalBLTlNfOUNsYXNzSW5mb0UKIF9fWk4z
SlNDOVN0cnVjdHVyZUQxRXYKIF9fWk4zSlNDOWNvbnN0cnVjdEVQTlNfOUV4ZWNTdGF0ZUVOU183
SlNWYWx1ZUVOU18xM0NvbnN0cnVjdFR5cGVFUktOU18xM0NvbnN0cnVjdERhdGFFUktOU183QXJn
TGlzdEUKIF9fWk4zSlNDZXFFUktOU183VVN0cmluZ0VQS2MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLmd5cGkKaW5kZXggNjcxNGRmMTM1OThmMzM5MmNmMTBlNzkwMmQ2OWZh
NThmMDRkZjA4NC4uZjQ0YzRmN2E2Y2FjOTlmM2FiZjcyNTE2YmFiNTFjMjk4ZWFlZDQ0MSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKQEAgLTg2LDcgKzg2LDYg
QEAKICAgICAgICAgICAgICdydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgnLAogICAgICAgICAgICAg
J3J1bnRpbWUvSlNMb2NrLmgnLAogICAgICAgICAgICAgJ3J1bnRpbWUvSlNPYmplY3QuaCcsCi0g
ICAgICAgICAgICAncnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaCcsCiAgICAgICAg
ICAgICAncnVudGltZS9KU1N0cmluZy5oJywKICAgICAgICAgICAgICdydW50aW1lL0pTVHlwZS5o
JywKICAgICAgICAgICAgICdydW50aW1lL0pTVHlwZUluZm8uaCcsCkBAIC01MjgsNyArNTI3LDYg
QEAKICAgICAgICAgICAgICdydW50aW1lL0pTT05PYmplY3QuY3BwJywKICAgICAgICAgICAgICdy
dW50aW1lL0pTT05PYmplY3QuaCcsCiAgICAgICAgICAgICAncnVudGltZS9KU09iamVjdC5jcHAn
LAotICAgICAgICAgICAgJ3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcCcsCiAg
ICAgICAgICAgICAncnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCcsCiAgICAgICAg
ICAgICAncnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgnLAogICAgICAgICAgICAgJ3J1
bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnBybyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5wcm8KaW5kZXggODFmZmVmZDdkZGZlODJjNjFhYjc1ZDM0ZjE5ZWQyNWM4ZTA3
Nzk5MC4uMGQwODExMzhhMWYzMzcwZGRjYzljMTQ0ZGNlZmQwOTQ5ZWI1ZDJhOCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnBybworKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUucHJvCkBAIC0xNTYsNyArMTU2LDYgQEAgU09V
UkNFUyArPSBcCiAgICAgcnVudGltZS9KU0xvY2suY3BwIFwKICAgICBydW50aW1lL0pTTm90QW5P
YmplY3QuY3BwIFwKICAgICBydW50aW1lL0pTT2JqZWN0LmNwcCBcCi0gICAgcnVudGltZS9KU09i
amVjdFdpdGhHbG9iYWxPYmplY3QuY3BwIFwKICAgICBydW50aW1lL0pTT05PYmplY3QuY3BwIFwK
ICAgICBydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwIFwKICAgICBydW50aW1lL0pT
U3RhdGljU2NvcGVPYmplY3QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVm
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKaW5kZXggOTM2ODFiNzViNmRjZDMzMjc5MzEwNmUyOWVm
NzIwY2UwZjJlZDMzYi4uYzNiNWQ5MmE0MzI3MjQxODRkYTI4NmZjNDVjZGU2MTliNjA2NTg3ZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5k
ZWYKQEAgLTEyLDE1ICsxMiwxMyBAQCBFWFBPUlRTCiAgICAgPz8wSlNCeXRlQXJyYXlASlNDQEBB
QUVAUEFWRXhlY1N0YXRlQDFAUEFWU3RydWN0dXJlQDFAUEFWQnl0ZUFycmF5QFdURkBAQFoKICAg
ICA/PzBKU0Z1bmN0aW9uQEpTQ0BAQUFFQFBBVkV4ZWNTdGF0ZUAxQFBBVkpTR2xvYmFsT2JqZWN0
QDFAUEFWU3RydWN0dXJlQDFAQFoKICAgICA/PzBKU0xvY2tASlNDQEBRQUVAUEFWRXhlY1N0YXRl
QDFAQFoKLSAgICA/PzBKU09iamVjdFdpdGhHbG9iYWxPYmplY3RASlNDQEBJQUVAUEFWSlNHbG9i
YWxPYmplY3RAMUBQQVZTdHJ1Y3R1cmVAMUBAWgotICAgID8/MEpTT2JqZWN0V2l0aEdsb2JhbE9i
amVjdEBKU0NAQElBRUBBQVZKU0dsb2JhbERhdGFAMUBQQVZTdHJ1Y3R1cmVAMUBAWgogICAgID8/
ME1ENUBXVEZAQFFBRUBYWgogICAgID8/ME11dGV4QFdURkBAUUFFQFhaCiAgICAgPz8wUmVmQ291
bnRlZExlYWtDb3VudGVyQFdURkBAUUFFQFBCREBaCiAgICAgPz8wUmVnRXhwT2JqZWN0QEpTQ0BA
SUFFQFBBVkpTR2xvYmFsT2JqZWN0QDFAUEFWU3RydWN0dXJlQDFAUEFWUmVnRXhwQDFAQFoKICAg
ICA/PzBTSEExQFdURkBAUUFFQFhaCiAgICAgPz8wU3RyaW5nT2JqZWN0QEpTQ0BASUFFQEFBVkpT
R2xvYmFsRGF0YUAxQFBBVlN0cnVjdHVyZUAxQFBBVkpTU3RyaW5nQDFAQFoKLSAgICA/PzBTdHJ1
Y3R1cmVASlNDQEBBQUVAQUFWSlNHbG9iYWxEYXRhQDFAVkpTVmFsdWVAMUBBQlZUeXBlSW5mb0Ax
QElQQlVDbGFzc0luZm9AMUBAWgorICAgID8/MFN0cnVjdHVyZUBKU0NAQEFBRUBBQVZKU0dsb2Jh
bERhdGFAMUBQQVZKU0dsb2JhbE9iamVjdEAxQFZKU1ZhbHVlQDFAQUJWVHlwZUluZm9AMUBJUEJV
Q2xhc3NJbmZvQDFAQFoKICAgICA/PzBUaHJlYWRDb25kaXRpb25AV1RGQEBRQUVAWFoKICAgICA/
PzBVU3RyaW5nQEpTQ0BAUUFFQFBCREBaCiAgICAgPz8wVVN0cmluZ0BKU0NAQFFBRUBQQkRJQFoK
QEAgLTE3Nyw4ICsxNzUsNyBAQCBFWFBPUlRTCiAgICAgP2ZpbmFsaXplQFdlYWtIYW5kbGVPd25l
ckBKU0NAQFVBRVhWPyRIYW5kbGVAVzRVbmtub3duQEpTQ0BAQDJAUEFYQFoKICAgICA/ZmluaXNo
Q3JlYXRpb25ASlNBcnJheUBKU0NAQElBRVhBQVZKU0dsb2JhbERhdGFAMkBAWgogICAgID9maW5p
c2hDcmVhdGlvbkBKU0FycmF5QEpTQ0BASUFFWEFBVkpTR2xvYmFsRGF0YUAyQEFCVkFyZ0xpc3RA
MkBAWgotICAgID9maW5pc2hDcmVhdGlvbkBKU0Z1bmN0aW9uQEpTQ0BASUFFWFBBVkV4ZWNTdGF0
ZUAyQFBBVkpTR2xvYmFsT2JqZWN0QDJASEFCVklkZW50aWZpZXJAMkBQQVZFeGVjdXRhYmxlQmFz
ZUAyQEBaCi0gICAgP2ZpbmlzaENyZWF0aW9uQEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEBKU0NA
QElBRVhBQVZKU0dsb2JhbERhdGFAMkBQQVZKU0dsb2JhbE9iamVjdEAyQEBaCisgICAgP2Zpbmlz
aENyZWF0aW9uQEpTRnVuY3Rpb25ASlNDQEBJQUVYUEFWRXhlY1N0YXRlQDJASEFCVklkZW50aWZp
ZXJAMkBQQVZFeGVjdXRhYmxlQmFzZUAyQEBaCiAgICAgP2ZvY3VzQFByb2ZpbGVASlNDQEBRQUVY
UEJWUHJvZmlsZU5vZGVAMkBAWgogICAgID9mcm9tQElkZW50aWZpZXJASlNDQEBTQT9BVjEyQFBB
VkV4ZWNTdGF0ZUAyQEhAWgogICAgID9mcm9tQElkZW50aWZpZXJASlNDQEBTQT9BVjEyQFBBVkV4
ZWNTdGF0ZUAyQElAWgpAQCAtMjE4LDcgKzIxNSw2IEBAIEVYUE9SVFMKICAgICA/Z2V0VUludDMy
QEpTQ2VsbEBKU0NAQFVCRV9OQUFJQFoKICAgICA/Z2V0dGVyQFByb3BlcnR5RGVzY3JpcHRvckBK
U0NAQFFCRT9BVkpTVmFsdWVAMkBYWgogICAgID9nbG9iYWxFeGVjQEpTR2xvYmFsT2JqZWN0QEpT
Q0BAUUFFUEFWRXhlY1N0YXRlQDJAWFoKLSAgICA/Z2xvYmFsT2JqZWN0QEpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdEBKU0NAQFFCRVBBVkpTR2xvYmFsT2JqZWN0QDJAWFoKICAgICA/Z2xvYmFsT2Jq
ZWN0Q291bnRASGVhcEBKU0NAQFFBRUlYWgogICAgID9ncm93QEhhbmRsZUhlYXBASlNDQEBBQUVY
WFoKICAgICA/aGFzSW5zdGFuY2VASlNPYmplY3RASlNDQEBVQUVfTlBBVkV4ZWNTdGF0ZUAyQFZK
U1ZhbHVlQDJAMUBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvaiBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qCmluZGV4IDYyNWIwNDI4OTU4YzMwNWZlNDUxYzJiNWYwNjgwODFi
NTljOWFkM2MuLjc1MDJlMGI1YjdhZDgxNDlmYzJkMmY5MWY2YTY3NTAyYzEzYjg3MTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNw
cm9qCkBAIC04NDYsMTQgKzg0Niw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHJ1bnRpbWVcSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNw
cCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5c
cnVudGltZVxKU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0J
CQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccnVudGltZVxKU09OT2JqZWN0LmNwcCIK
IAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk1Njk3
ZmExYTdiNDZmOGQ5NWQwYjNmMWI1ODU1MThjMTk5NTU0YzcuLjlkZDQyOGVhYzVhMWQ5ZTIzZDEw
MGI3M2ZlYzE5MjM3ODRiYTdkYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00
MTUsOCArNDE1LDYgQEAKIAkJQTc2NkI0NEYwRUU4RENEMTAwOTUxOENBIC8qIEV4ZWN1dGFibGVB
bGxvY2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3QjQ4REI1MEVFNzRDRkMwMERDQkRCNiAvKiBFeGVjdXRhYmxlQWxsb2NhdG9yLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc2QzUxNzYxMTgy
NzQ4RDAwNzE1QjA1IC8qIEpTSW50ZXJmYWNlSklULmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzZDNTE3NDExODI3NDhEMDA3MTVCMDUgLyogSlNJbnRl
cmZhY2VKSVQuaCAqLzsgfTsKIAkJQTc2RjU0QTMxM0IyOEFBQjAwRUYyQkNFIC8qIEpJVFdyaXRl
QmFycmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTc2RjU0QTIxM0IyOEFBQjAwRUYyQkNFIC8qIEpJVFdyaXRlQmFycmllci5oICovOyB9OwotCQlB
NzgzQTBEMTExQTM2RENBMDA1NjNEMjAgLyogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzgzQTBEMDExQTM2
RENBMDA1NjNEMjAgLyogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTc4M0EyQUIxMUE1QkU4NDAwNTYz
RDIwIC8qIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzgzQTJBQTExQTVCRTg0MDA1NjNEMjAgLyogSlNP
YmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcCAqLzsgfTsKIAkJQTc4NEEyNjExMUQxNjYyMjAwNTc3
NkFDIC8qIEFTVEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3QTdFRTc0MTFCOThCOEQwMDY1QTE0RiAvKiBBU1RCdWlsZGVyLmggKi87IH07
CiAJCUE3ODRBMjYyMTFEMTY2MjIwMDU3NzZBQyAvKiBKU1BhcnNlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0E3RUU3NTExQjk4QjhEMDA2NUEx
NEYgLyogSlNQYXJzZXIuY3BwICovOyB9OwogCQlBNzg0QTI2MzExRDE2NjIyMDA1Nzc2QUMgLyog
SlNQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3QTdFRTc2MTFCOThCOEQwMDY1QTE0RiAvKiBKU1BhcnNlci5oICovOyB9OwpAQCAtMTE4MSw4
ICsxMTc5LDYgQEAKIAkJQTc1NzA2REQxMThBMkJDRjAwNTdGODhGIC8qIEpJVEFyaXRobWV0aWMz
Ml82NC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKSVRBcml0aG1l
dGljMzJfNjQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzZDNTE3NDExODI3
NDhEMDA3MTVCMDUgLyogSlNJbnRlcmZhY2VKSVQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNJbnRlcmZhY2VKSVQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTc2RjU0QTIxM0IyOEFBQjAwRUYyQkNFIC8qIEpJVFdyaXRlQmFycmllci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKSVRXcml0ZUJhcnJpZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQTc4M0EwRDAxMUEzNkRDQTAwNTYzRDIwIC8qIEpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU09iamVjdFdp
dGhHbG9iYWxPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTc4M0EyQUEx
MUE1QkU4NDAwNTYzRDIwIC8qIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzkxRUYyNjBGMTFFMDc5MDBBRTFGNjgg
LyogSlNCeXRlQXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNCeXRl
QXJyYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc5MUVGMjcwRjExRTA3OTAw
QUUxRjY4IC8qIEpTQnl0ZUFycmF5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTQnl0ZUFycmF5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc5
RURCMDgxMTUzMUNENjAwMTlFOTEyIC8qIEpTT2JqZWN0UmVmUHJpdmF0ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU09iamVjdFJlZlByaXZhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTIwMzQsOCArMjAzMCw2IEBACiAJCQkJQTcyNzAwNzcwREFDNjA1
NjAwRTU0OEQ3IC8qIEpTTm90QW5PYmplY3QuaCAqLywKIAkJCQlCQzIyQTM5ODBFMTZFMTQ4MDBB
RjIxQzggLyogSlNPYmplY3QuY3BwICovLAogCQkJCUJDMjJBMzk5MEUxNkUxNDgwMEFGMjFDOCAv
KiBKU09iamVjdC5oICovLAotCQkJCUE3ODNBMkFBMTFBNUJFODQwMDU2M0QyMCAvKiBKU09iamVj
dFdpdGhHbG9iYWxPYmplY3QuY3BwICovLAotCQkJCUE3ODNBMEQwMTFBMzZEQ0EwMDU2M0QyMCAv
KiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaCAqLywKIAkJCQlBN0Y5OTM1RTBGRDczMjUxMDBB
MEIyRDAgLyogSlNPTk9iamVjdC5jcHAgKi8sCiAJCQkJQTdGOTkzNUQwRkQ3MzI1MTAwQTBCMkQw
IC8qIEpTT05PYmplY3QuaCAqLywKIAkJCQlBNzI3RkY2NjBEQTMwNTNCMDBFNTQ4RDcgLyogSlNQ
cm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAgKi8sCkBAIC0yNTE4LDcgKzI1MTIsNiBAQAogCQkJCUJD
MThDNDI0MEUxNkY1Q0QwMEIzNDQ2MCAvKiBKU09iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMxOEM0MjUwRTE2RjVDRDAwQjM0NDYwIC8qIEpTT2JqZWN0UmVmLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNzI4MEEyODExNTU3RTMwMDBENTY5NTcgLyogSlNPYmplY3RSZWZQcml2YXRlLmggaW4g
SGVhZGVycyAqLywKLQkJCQlBNzgzQTBEMTExQTM2RENBMDA1NjNEMjAgLyogSlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Y5OTM1RjBGRDczMjUxMDBBMEIy
RDAgLyogSlNPTk9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4N0NEQjkxMDcxMkFENDAw
MDYxNENGIC8qIEpTT05PYmplY3QubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzg0QTI2MzEx
RDE2NjIyMDA1Nzc2QUMgLyogSlNQYXJzZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzE0Myw3ICsz
MTM2LDYgQEAKIAkJCQlBNzI3MDA5MDBEQUM2QkJDMDBFNTQ4RDcgLyogSlNOb3RBbk9iamVjdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlENDEwN0VDMzc2MDA0MjdBNDggLyogSlNPYmpl
Y3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ4MkI3RTQwQTQzMDc2MDAwNTE3Q0ZDIC8qIEpT
T2JqZWN0UmVmLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE3ODNBMkFCMTFBNUJFODQwMDU2M0Qy
MCAvKiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdG
OTkzNjAwRkQ3MzI1MTAwQTBCMkQwIC8qIEpTT05PYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTc4NEEyNjIxMUQxNjYyMjAwNTc3NkFDIC8qIEpTUGFyc2VyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTk1RjZFNjk1MEU1QjVGOTcwMDkxRTg2MCAvKiBKU1Byb2ZpbGVyUHJpdmF0ZS5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
aAppbmRleCA4MDhhMDZiMzc2ZmJlYjhmYjBlMDk0NDE5OTU0YmFlYzAyNTgyM2NlLi42YzBkNmE3
YjljYTcyNDhkNDE2ODgxMjZhMDBhOTI2ZDNjNGE4MTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCkBAIC0xNTYsNyArMTU2LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIEpJVFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IGNhY2hlZFByb3RvdHlwZVN0
cnVjdHVyZTsKICAgICAgICAgLy8gV2UnZCBsaWtlIHRoaXMgdG8gYWN0dWFsbHkgYmUgSlNGdW5j
dGlvbiwgYnV0IEludGVybmFsRnVuY3Rpb24gYW5kIEpTRnVuY3Rpb24KICAgICAgICAgLy8gZG9u
J3QgaGF2ZSBhIGNvbW1vbiBwYXJlbnQgY2xhc3MgYW5kIHdlIGFsbG93IHNwZWNpYWxpc2F0aW9u
IG9uIGJvdGgKLSAgICAgICAgSklUV3JpdGVCYXJyaWVyPEpTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dD4gY2FjaGVkRnVuY3Rpb247CisgICAgICAgIEpJVFdyaXRlQmFycmllcjxKU09iamVjdD4gY2Fj
aGVkRnVuY3Rpb247CiAgICAgICAgIEpJVFdyaXRlQmFycmllcjxKU09iamVjdD4gY2FjaGVkUHJv
dG90eXBlOwogICAgICAgICBib29sIHNlZW47CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHUmVwYXRjaC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1JlcGF0Y2guY3BwCmluZGV4IDg5NTJlMzcyYTdiNmQ5YzdjMzI3ZDAyZmFjZTkzNDk4
Mzc5ZTVjY2UuLjQxZGFmY2FmNDQyNjhlNzlmZjhiNTBjZTZmZjYzM2Q1OTRiMjE0MDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUmVwYXRjaC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdSZXBhdGNoLmNwcApAQCAtMjQ1LDcgKzI0NSw3IEBA
IHZvaWQgZGZnUmVwYXRjaEdldEJ5SUQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGJhc2VWYWx1
ZSwgY29uc3QgSWRlbnRpZmllciYgcHJvCiAgICAgICAgIGRmZ1JlcGF0Y2hDYWxsKGV4ZWMtPmNv
ZGVCbG9jaygpLCBzdHViSW5mby5jYWxsUmV0dXJuTG9jYXRpb24sIG9wZXJhdGlvbkdldEJ5SWQp
OwogfQogCi1zdGF0aWMgdm9pZCBkZmdSZXBhdGNoR2V0TWV0aG9kRmFzdChKU0dsb2JhbERhdGEq
IGdsb2JhbERhdGEsIENvZGVCbG9jayogY29kZUJsb2NrLCBNZXRob2RDYWxsTGlua0luZm8mIG1l
dGhvZEluZm8sIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCogY2FsbGVlLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgSlNPYmplY3QqIHNsb3RCYXNlT2JqZWN0KQorc3RhdGljIHZvaWQgZGZnUmVwYXRj
aEdldE1ldGhvZEZhc3QoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBDb2RlQmxvY2sqIGNvZGVC
bG9jaywgTWV0aG9kQ2FsbExpbmtJbmZvJiBtZXRob2RJbmZvLCBKU09iamVjdCogY2FsbGVlLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNPYmplY3QqIHNsb3RCYXNlT2JqZWN0KQogewogICAgIFNj
cmlwdEV4ZWN1dGFibGUqIG93bmVyID0gY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKTsKICAg
ICAKQEAgLTI3NCw3ICsyNzQsNyBAQCBzdGF0aWMgYm9vbCB0cnlDYWNoZUdldE1ldGhvZChFeGVj
U3RhdGUqIGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVudGlmaQogICAgICAgICAm
JiAoc2xvdEJhc2VPYmplY3QgPSBhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKS0+Z2V0UHJvcGVy
dHlTcGVjaWZpY1ZhbHVlKGV4ZWMsIHByb3BlcnR5TmFtZSwgc3BlY2lmaWMpCiAgICAgICAgICYm
IHNwZWNpZmljKSB7CiAgICAgICAgIAotICAgICAgICBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Qq
IGNhbGxlZSA9IChKU09iamVjdFdpdGhHbG9iYWxPYmplY3QqKXNwZWNpZmljOworICAgICAgICBK
U09iamVjdCogY2FsbGVlID0gYXNPYmplY3Qoc3BlY2lmaWMpOwogICAgICAgICAKICAgICAgICAg
Ly8gU2luY2Ugd2UncmUgYWNjZXNzaW5nIGEgcHJvdG90eXBlIGluIGEgbG9vcCwgaXQncyBhIGdv
b2QgYmV0IHRoYXQgaXQKICAgICAgICAgLy8gc2hvdWxkIG5vdCBiZSB0cmVhdGVkIGFzIGEgZGlj
dGlvbmFyeS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IGJlNWI5MzAzYWYyMzFjNzBmZjEx
Y2EwMTRhYzgyYTU5OWY0YTJlZWQuLmIyMTI2MzFhNzZhZGZkZTkyN2IyMmNlYTI5MzIyNDJiMGJl
MTc4N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtMjM5LDcgKzIzOSw3IEBAIG5hbWVz
cGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyB2b2lkIHBhdGNoR2V0QnlJZFNlbGYoQ29kZUJs
b2NrKiBjb2RlYmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvKiwgU3RydWN0dXJlKiwgc2l6ZV90IGNh
Y2hlZE9mZnNldCwgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKTsKICAgICAgICAgc3Rh
dGljIHZvaWQgcGF0Y2hQdXRCeUlkUmVwbGFjZShDb2RlQmxvY2sqIGNvZGVibG9jaywgU3RydWN0
dXJlU3R1YkluZm8qLCBTdHJ1Y3R1cmUqLCBzaXplX3QgY2FjaGVkT2Zmc2V0LCBSZXR1cm5BZGRy
ZXNzUHRyIHJldHVybkFkZHJlc3MsIGJvb2wgZGlyZWN0KTsKLSAgICAgICAgc3RhdGljIHZvaWQg
cGF0Y2hNZXRob2RDYWxsUHJvdG8oSlNHbG9iYWxEYXRhJiwgQ29kZUJsb2NrKiBjb2RlYmxvY2ss
IE1ldGhvZENhbGxMaW5rSW5mbyYsIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZSosIEpTT2JqZWN0KiwgUmV0dXJuQWRkcmVzc1B0cik7CisgICAgICAgIHN0YXRpYyB2b2lkIHBh
dGNoTWV0aG9kQ2FsbFByb3RvKEpTR2xvYmFsRGF0YSYsIENvZGVCbG9jayogY29kZWJsb2NrLCBN
ZXRob2RDYWxsTGlua0luZm8mLCBKU09iamVjdCosIFN0cnVjdHVyZSosIEpTT2JqZWN0KiwgUmV0
dXJuQWRkcmVzc1B0cik7CiAKICAgICAgICAgc3RhdGljIHZvaWQgY29tcGlsZVBhdGNoR2V0QXJy
YXlMZW5ndGgoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywg
UmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQogICAgICAgICB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oCmluZGV4IDJiOThlNThiZjZiMTRkMmQz
NTI4NzQzZDc4NTdjYTBlZTA0NmZkMTkuLjhmZTFjN2E3ZjdiZDZjYWQxOWQ2YjM5MGYxMDY1MDBj
MzgwOTAzZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5l
TWV0aG9kcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9k
cy5oCkBAIC00MjMsMTQgKzQyMyw2IEBAIGlubGluZSB2b2lkIEpJVDo6ZW1pdEFsbG9jYXRlSlNG
dW5jdGlvbihGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIFJlZ2lzdGVyCiAgICAgLy8g
c3RvcmUgdGhlIGZ1bmN0aW9uJ3MgZXhlY3V0YWJsZSBtZW1iZXIKICAgICBzdG9yZVB0cihUcnVz
dGVkSW1tUHRyKGV4ZWN1dGFibGUpLCBBZGRyZXNzKHJlc3VsdCwgSlNGdW5jdGlvbjo6b2Zmc2V0
T2ZFeGVjdXRhYmxlKCkpKTsKIAotICAgIAotICAgIC8vIHN0b3JlIHRoZSBmdW5jdGlvbidzIGds
b2JhbCBvYmplY3QKLSAgICBpbnQgZ2xvYmFsT2JqZWN0T2Zmc2V0ID0gc2l6ZW9mKEpTVmFsdWUp
ICogSlNGdW5jdGlvbjo6R2xvYmFsT2JqZWN0U2xvdDsKLSAgICBzdG9yZVB0cihUcnVzdGVkSW1t
UHRyKG1fY29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKSksIEFkZHJlc3MocmVnVDEsIGdsb2JhbE9i
amVjdE9mZnNldCArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSkp
OwotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgc3RvcmUzMihUcnVzdGVkSW1tMzIoSlNWYWx1
ZTo6Q2VsbFRhZyksIEFkZHJlc3MocmVnVDEsIGdsb2JhbE9iamVjdE9mZnNldCArIE9CSkVDVF9P
RkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcpKSk7Ci0jZW5kaWYKLQogICAgIC8vIHN0b3Jl
IHRoZSBmdW5jdGlvbidzIG5hbWUKICAgICBBU1NFUlQoZXhlY3V0YWJsZS0+bmFtZVZhbHVlKCkp
OwogICAgIGludCBmdW5jdGlvbk5hbWVPZmZzZXQgPSBzaXplb2YoSlNWYWx1ZSkgKiBtX2NvZGVC
bG9jay0+Z2xvYmFsT2JqZWN0KCktPmZ1bmN0aW9uTmFtZU9mZnNldCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCAxMzRmYWExMGZm
MjJlMmUyNGVmNWEzYTVmMWU1NTQ5MmY2NDRhYWRiLi42MmNmOTJlZjg5Yjg1NGJhNjQxYjlhYTM1
YWIzZjdlYTIxNmM0MzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFByb3BlcnR5QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFBy
b3BlcnR5QWNjZXNzLmNwcApAQCAtMTA0Nyw3ICsxMDQ3LDcgQEAgdm9pZCBKSVQ6OnRlc3RQcm90
b3R5cGUoSlNWYWx1ZSBwcm90b3R5cGUsIEp1bXBMaXN0JiBmYWlsdXJlQ2FzZXMpCiAgICAgZmFp
bHVyZUNhc2VzLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWwsIEFkZHJlc3MocmVnVDMsIEpTQ2Vs
bDo6c3RydWN0dXJlT2Zmc2V0KCkpLCBUcnVzdGVkSW1tUHRyKHByb3RvdHlwZS5hc0NlbGwoKS0+
c3RydWN0dXJlKCkpKSk7CiB9CiAKLXZvaWQgSklUOjpwYXRjaE1ldGhvZENhbGxQcm90byhKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIENvZGVCbG9jayogY29kZUJsb2NrLCBNZXRob2RDYWxsTGlu
a0luZm8mIG1ldGhvZENhbGxMaW5rSW5mbywgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KiBjYWxs
ZWUsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU09iamVjdCogcHJvdG8sIFJldHVybkFkZHJlc3NQ
dHIgcmV0dXJuQWRkcmVzcykKK3ZvaWQgSklUOjpwYXRjaE1ldGhvZENhbGxQcm90byhKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIENvZGVCbG9jayogY29kZUJsb2NrLCBNZXRob2RDYWxsTGlua0lu
Zm8mIG1ldGhvZENhbGxMaW5rSW5mbywgSlNPYmplY3QqIGNhbGxlZSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIEpTT2JqZWN0KiBwcm90bywgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzKQog
ewogICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihjb2RlQmxvY2spOwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAppbmRleCBiZTFkYzBmMTNjZDYwMWYwMjU3
YjIwZjg1NGUyZWY0ZTA2NmM3YjJmLi5lYzI4NTIyMmM5ODY4ZjIzZjc5NDM2YWJiNTM1YWFkZTA4
MTY0OWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcApAQCAtMTUyNiw3
ICsxNTI2LDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFsdWUsIG9wX2dldF9i
eV9pZF9tZXRob2RfY2hlY2spCiAgICAgICAgICYmIHNwZWNpZmljCiAgICAgICAgICkgewogCi0g
ICAgICAgIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCogY2FsbGVlID0gKEpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdCopc3BlY2lmaWM7CisgICAgICAgIEpTT2JqZWN0KiBjYWxsZWUgPSBhc09iamVj
dChzcGVjaWZpYyk7CiAKICAgICAgICAgLy8gU2luY2Ugd2UncmUgYWNjZXNzaW5nIGEgcHJvdG90
eXBlIGluIGEgbG9vcCwgaXQncyBhIGdvb2QgYmV0IHRoYXQgaXQKICAgICAgICAgLy8gc2hvdWxk
IG5vdCBiZSB0cmVhdGVkIGFzIGEgZGljdGlvbmFyeS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKaW5kZXggZGRhMjk0MTYzODQxY2RlZGM1NGY3
Njk1N2Q0YWM4NGUzMGZhN2UyMS4uNDAzNDE1YjVhYjhlODU0MmMzM2NhNmIwNjM3YTZlNmRhNzFl
N2FkZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3Rv
dHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlw
ZS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJEYXRlQ29udmVyc2lvbi5oIgogI2lu
Y2x1ZGUgIkRhdGVJbnN0YW5jZS5oIgogI2luY2x1ZGUgIkVycm9yLmgiCisjaW5jbHVkZSAiSlNH
bG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0cmluZy5oIgogI2luY2x1ZGUgIkpTU3RyaW5n
QnVpbGRlci5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAppbmRleCAwN2MwZjdmNWJmNjVhM2U3
NTZiNTFjMjQwMzdjYWNjMzNjNDJlNjIyLi4xMGFhYTYwZWU3YzhlYzM0ZjZmNDAzODkyNGQyODAz
ODFhOWYzMGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRl
cm5hbEZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRl
cm5hbEZ1bmN0aW9uLmNwcApAQCAtMzQsMjIgKzM0LDIyIEBAIHZvaWQgSW50ZXJuYWxGdW5jdGlv
bjo6dnRhYmxlQW5jaG9yKCkge30KIAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChJbnRlcm5h
bEZ1bmN0aW9uKTsKIAotY29uc3QgQ2xhc3NJbmZvIEludGVybmFsRnVuY3Rpb246OnNfaW5mbyA9
IHsgIkZ1bmN0aW9uIiwgJkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6c19pbmZvLCAwLCAwIH07
Citjb25zdCBDbGFzc0luZm8gSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvID0geyAiRnVuY3Rpb24i
LCAmSlNOb25GaW5hbE9iamVjdDo6c19pbmZvLCAwLCAwIH07CiAKIEludGVybmFsRnVuY3Rpb246
OkludGVybmFsRnVuY3Rpb24oVlB0clN0ZWFsaW5nSGFja1R5cGUpCi0gICAgOiBKU09iamVjdFdp
dGhHbG9iYWxPYmplY3QoVlB0clN0ZWFsaW5nSGFjaykKKyAgICA6IEpTTm9uRmluYWxPYmplY3Qo
VlB0clN0ZWFsaW5nSGFjaykKIHsKIH0KIAotSW50ZXJuYWxGdW5jdGlvbjo6SW50ZXJuYWxGdW5j
dGlvbihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKQotICAgIDog
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQorSW50ZXJu
YWxGdW5jdGlvbjo6SW50ZXJuYWxGdW5jdGlvbihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIEpT
R2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElkZW50aWZpZXImIG5h
bWUpCisgICAgOiBKU05vbkZpbmFsT2JqZWN0KCpnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiB7Ci0g
ICAgZmluaXNoQ3JlYXRpb24oKmdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgbmFtZSk7CisgICAg
ZmluaXNoQ3JlYXRpb24oKmdsb2JhbERhdGEsIG5hbWUpOwogfQogCi12b2lkIEludGVybmFsRnVu
Y3Rpb246OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKK3ZvaWQgSW50ZXJu
YWxGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25z
dCBJZGVudGlmaWVyJiBuYW1lKQogewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERh
dGEsIGdsb2JhbE9iamVjdCk7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7
CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAgICBwdXREaXJlY3QoZ2xvYmFsRGF0
YSwgZ2xvYmFsRGF0YS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBqc1N0cmluZygmZ2xvYmFsRGF0YSwg
bmFtZS5pc051bGwoKSA/ICIiIDogbmFtZS51c3RyaW5nKCkpLCBEb250RGVsZXRlIHwgUmVhZE9u
bHkgfCBEb250RW51bSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRlcm5hbEZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRlcm5hbEZ1bmN0aW9uLmgKaW5kZXggNzQ2MWU2NmNjYjU0MDViNzBlM2I3NTZjNTU5MGIxNzAy
ZWI0NjgyOS4uZTA1YmIxMzQ5OTBlNzNiYTNjMjU2YzcyOWRiMzgxNTRiZWFiYmQ0ZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaApAQCAt
MjQsMTYgKzI0LDE2IEBACiAjaWZuZGVmIEludGVybmFsRnVuY3Rpb25faAogI2RlZmluZSBJbnRl
cm5hbEZ1bmN0aW9uX2gKIAotI2luY2x1ZGUgIkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oIgor
I2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiSWRlbnRpZmllci5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAogICAgIGNsYXNzIEZ1bmN0aW9uUHJvdG90eXBlOwogCi0gICAgY2xhc3MgSW50
ZXJuYWxGdW5jdGlvbiA6IHB1YmxpYyBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QgeworICAgIGNs
YXNzIEludGVybmFsRnVuY3Rpb24gOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgcHVi
bGljOgotICAgICAgICB0eXBlZGVmIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCBCYXNlOworICAg
ICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKIAogICAgICAgICBzdGF0aWMgSlNf
RVhQT1JUREFUQSBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCkBAIC01NCw3ICs1NCw3IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgICAgIEludGVybmFsRnVuY3Rpb24oSlNHbG9iYWxEYXRhKiwg
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBjb25zdCBJZGVudGlmaWVyJik7CiAKLSAgICAg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBKU0dsb2JhbE9iamVjdCosIGNv
bnN0IElkZW50aWZpZXImIG5hbWUpOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xv
YmFsRGF0YSYsIGNvbnN0IElkZW50aWZpZXImIG5hbWUpOwogCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpID0gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggZGFmNGNhOTU4Mjk3
ZjMxODdjN2E2Y2NjY2Y0Mzk2MDU4MGM4ZWNkZC4uZGZlOWMyOWYzNWY0NjMwYWJiZDlkMDczNTI0
NjkyYmE1YThkZDU0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbi5jcHAKQEAgLTYyLDMxICs2MiwzMSBAQCBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKFZQdHJT
dGVhbGluZ0hhY2tUeXBlKQogfQogCiBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSog
ZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
Ci0gICAgOiBCYXNlKGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQorICAgIDogQmFzZShleGVjLT5n
bG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKICAgICAsIG1fZXhlY3V0YWJsZSgpCiAgICAgLCBtX3Nj
b3BlQ2hhaW4oZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBnbG9iYWxPYmplY3QtPmdsb2JhbFNj
b3BlQ2hhaW4oKSkKIHsKIH0KIAogSlNGdW5jdGlvbjo6SlNGdW5jdGlvbihFeGVjU3RhdGUqIGV4
ZWMsIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgU2NvcGVDaGFpbk5vZGUqIHNjb3Bl
Q2hhaW5Ob2RlKQotICAgIDogQmFzZShzY29wZUNoYWluTm9kZS0+Z2xvYmFsT2JqZWN0LmdldCgp
LCBzY29wZUNoYWluTm9kZS0+Z2xvYmFsT2JqZWN0LT5mdW5jdGlvblN0cnVjdHVyZSgpKQorICAg
IDogQmFzZShleGVjLT5nbG9iYWxEYXRhKCksIHNjb3BlQ2hhaW5Ob2RlLT5nbG9iYWxPYmplY3Qt
PmZ1bmN0aW9uU3RydWN0dXJlKCkpCiAgICAgLCBtX2V4ZWN1dGFibGUoZXhlYy0+Z2xvYmFsRGF0
YSgpLCB0aGlzLCBleGVjdXRhYmxlKQogICAgICwgbV9zY29wZUNoYWluKGV4ZWMtPmdsb2JhbERh
dGEoKSwgdGhpcywgc2NvcGVDaGFpbk5vZGUpCiB7CiB9CiAKLXZvaWQgSlNGdW5jdGlvbjo6Zmlu
aXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBFeGVjdXRhYmxlQmFzZSogZXhl
Y3V0YWJsZSkKK3ZvaWQgSlNGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVj
LCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBFeGVjdXRhYmxlQmFzZSogZXhl
Y3V0YWJsZSkKIHsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2Jh
bERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihleGVjLT5n
bG9iYWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgbV9leGVj
dXRhYmxlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIGV4ZWN1dGFibGUpOwogICAgIHB1
dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmdsb2JhbERhdGEoKS5wcm9wZXJ0eU5h
bWVzLT5uYW1lLCBqc1N0cmluZyhleGVjLCBuYW1lLmlzTnVsbCgpID8gIiIgOiBuYW1lLnVzdHJp
bmcoKSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgICBwdXREaXJlY3Qo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJl
cihsZW5ndGgpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiB9CiAKLXZvaWQg
SlNGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIFNjb3BlQ2hh
aW5Ob2RlKiBzY29wZUNoYWluTm9kZSkKK3ZvaWQgSlNGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24o
RXhlY1N0YXRlKiBleGVjLCBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIFNjb3BlQ2hh
aW5Ob2RlKiBzY29wZUNoYWluTm9kZSkKIHsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9i
YWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKKyAgICBCYXNlOjpmaW5pc2hD
cmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZv
KSk7CiAgICAgc2V0U3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgc2NvcGVDaGFpbk5vZGUt
Pmdsb2JhbE9iamVjdC0+bmFtZWRGdW5jdGlvblN0cnVjdHVyZSgpKTsKICAgICBwdXREaXJlY3RP
ZmZzZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzY29wZUNoYWluTm9kZS0+Z2xvYmFsT2JqZWN0LT5m
dW5jdGlvbk5hbWVPZmZzZXQoKSwgZXhlY3V0YWJsZS0+bmFtZVZhbHVlKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IDFjMzY4MTZjMTdkMTBlZjcx
OWYzMGFlOWYwZmM2OGY3YWQ2MzAwODMuLjFkYjNjODBkYjZjNDA0MmMxMmFiYWQyNzMyNWJhY2U1
YWNmMTlhZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVu
Y3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgK
QEAgLTI0LDcgKzI0LDcgQEAKICNpZm5kZWYgSlNGdW5jdGlvbl9oCiAjZGVmaW5lIEpTRnVuY3Rp
b25faAogCi0jaW5jbHVkZSAiSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVkZSAi
SlNPYmplY3QuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKICAgICBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxIb3N0RnVu
Y3Rpb25Bc0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSopOwogCi0gICAgY2xhc3MgSlNGdW5jdGlvbiA6
IHB1YmxpYyBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QgeworICAgIGNsYXNzIEpTRnVuY3Rpb24g
OiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBKSVQ7CiAg
ICAgICAgIGZyaWVuZCBjbGFzcyBERkc6OkpJVENvZGVHZW5lcmF0b3I7CiAgICAgICAgIGZyaWVu
ZCBjbGFzcyBKU0dsb2JhbERhdGE7CkBAIC01MCwyOCArNTAsMzUgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIEpTRnVuY3Rpb24oRXhlY1N0YXRlKiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgU2Nv
cGVDaGFpbk5vZGUqKTsKICAgICAgICAgCiAgICAgcHVibGljOgotICAgICAgICB0eXBlZGVmIEpT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdCBCYXNlOworICAgICAgICB0eXBlZGVmIEpTTm9uRmluYWxP
YmplY3QgQmFzZTsKIAogICAgICAgICBzdGF0aWMgSlNGdW5jdGlvbiogY3JlYXRlKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIE5hdGl2ZUZ1bmN0aW9uIG5h
dGl2ZUZ1bmN0aW9uKQogICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQoc3RydWN0dXJlLT5n
bG9iYWxPYmplY3QoKSk7CisgICAgICAgICAgICBBU1NFUlQoc3RydWN0dXJlLT5nbG9iYWxPYmpl
Y3QoKSA9PSBnbG9iYWxPYmplY3QpOworICAgICAgICAgICAgCiAgICAgICAgICAgICBFeGVjdXRh
YmxlQmFzZSogZXhlY3V0YWJsZSA9IChFeGVjdXRhYmxlQmFzZSopZXhlYy0+Z2xvYmFsRGF0YSgp
LmdldEhvc3RGdW5jdGlvbihuYXRpdmVGdW5jdGlvbik7CiAgICAgICAgICAgICBKU0Z1bmN0aW9u
KiBmdW5jdGlvbiA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTRnVuY3Rpb24+KCpleGVjLT5oZWFwKCkp
KSBKU0Z1bmN0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKICAgICAgICAgICAg
IC8vIENhbid0IGRvIHRoaXMgZHVyaW5nIGluaXRpYWxpemF0aW9uIGJlY2F1c2UgZ2V0SG9zdEZ1
bmN0aW9uIG1pZ2h0IGRvIGEgR0MgYWxsb2NhdGlvbi4KLSAgICAgICAgICAgIGZ1bmN0aW9uLT5m
aW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIGxlbmd0aCwgbmFtZSwgZXhlY3V0YWJs
ZSk7CisgICAgICAgICAgICBmdW5jdGlvbi0+ZmluaXNoQ3JlYXRpb24oZXhlYywgbGVuZ3RoLCBu
YW1lLCBleGVjdXRhYmxlKTsKICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbjsKICAgICAgICAg
fQogCiAgICAgICAgIHN0YXRpYyBKU0Z1bmN0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50IGxl
bmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhl
Y3V0YWJsZSkKICAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKHN0cnVjdHVyZS0+Z2xvYmFs
T2JqZWN0KCkpOworICAgICAgICAgICAgQVNTRVJUKHN0cnVjdHVyZS0+Z2xvYmFsT2JqZWN0KCkg
PT0gZ2xvYmFsT2JqZWN0KTsKKwogICAgICAgICAgICAgSlNGdW5jdGlvbiogZnVuY3Rpb24gPSBu
ZXcgKGFsbG9jYXRlQ2VsbDxKU0Z1bmN0aW9uPigqZXhlYy0+aGVhcCgpKSkgSlNGdW5jdGlvbihl
eGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7Ci0gICAgICAgICAgICBmdW5jdGlvbi0+Zmlu
aXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFsT2JqZWN0LCBsZW5ndGgsIG5hbWUsIChFeGVjdXRhYmxl
QmFzZSopbmF0aXZlRXhlY3V0YWJsZSk7CisgICAgICAgICAgICBmdW5jdGlvbi0+ZmluaXNoQ3Jl
YXRpb24oZXhlYywgbGVuZ3RoLCBuYW1lLCAoRXhlY3V0YWJsZUJhc2UqKW5hdGl2ZUV4ZWN1dGFi
bGUpOwogICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uOwogICAgICAgICB9CiAKICAgICAgICAg
c3RhdGljIEpTRnVuY3Rpb24qIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEZ1bmN0aW9uRXhlY3V0
YWJsZSogZXhlY3V0YWJsZSwgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4pCiAgICAgICAgIHsK
ICAgICAgICAgICAgIEpTRnVuY3Rpb24qIGZ1bmN0aW9uID0gbmV3IChhbGxvY2F0ZUNlbGw8SlNG
dW5jdGlvbj4oKmV4ZWMtPmhlYXAoKSkpIEpTRnVuY3Rpb24oZXhlYywgZXhlY3V0YWJsZSwgc2Nv
cGVDaGFpbik7Ci0gICAgICAgICAgICBmdW5jdGlvbi0+ZmluaXNoQ3JlYXRpb24oZXhlYywgc2Nv
cGVDaGFpbi0+Z2xvYmFsT2JqZWN0LmdldCgpLCBleGVjdXRhYmxlLCBzY29wZUNoYWluKTsKKyAg
ICAgICAgICAgIEFTU0VSVChmdW5jdGlvbi0+c3RydWN0dXJlKCktPmdsb2JhbE9iamVjdCgpKTsK
KyAgICAgICAgICAgIGZ1bmN0aW9uLT5maW5pc2hDcmVhdGlvbihleGVjLCBleGVjdXRhYmxlLCBz
Y29wZUNoYWluKTsKICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbjsKICAgICAgICAgfQogICAg
ICAgICAKQEAgLTExMCw3ICsxMTcsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGlj
IEpTX0VYUE9SVERBVEEgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAogICAgICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkgCi0gICAgICAgIHsg
CisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChnbG9iYWxPYmplY3QpOwogICAgICAgICAg
ICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Ns
b3RDb3VudCwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKQEAgLTEzMiw4ICsxNDAsOCBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIGNvbnN0IHN0YXRpYyB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEltcGxlbWVu
dHNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9w
ZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCi0gICAgICAgIHZvaWQgZmlu
aXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBpbnQgbGVuZ3RoLCBjb25z
dCBJZGVudGlmaWVyJiBuYW1lLCBFeGVjdXRhYmxlQmFzZSopOwotICAgICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgRnVuY3Rpb25FeGVjdXRhYmxl
KiwgU2NvcGVDaGFpbk5vZGUqKTsKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3Rh
dGUqLCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBFeGVjdXRhYmxlQmFzZSop
OworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIEZ1bmN0aW9uRXhlY3V0
YWJsZSosIFNjb3BlQ2hhaW5Ob2RlKik7CiAKICAgICBwcml2YXRlOgogICAgICAgICBleHBsaWNp
dCBKU0Z1bmN0aW9uKFZQdHJTdGVhbGluZ0hhY2tUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCAyOWJjYTgxYjhlYjlkYzY3
ZjgzMzE2NzA5NzU3NWJjYTNkYTQwMmNhLi4zZGRlYTIzNDA5NmY0ODFiMzM4ZjRlZTFiMDExZDcx
Y2IxNjllMWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuY3BwCkBAIC0yMDMsNyArMjAzLDcgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6cmVz
ZXQoSlNWYWx1ZSBwcm90b3R5cGUpCiAgICAgbV9jYWxsYmFja0Z1bmN0aW9uU3RydWN0dXJlLnNl
dChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIEpTQ2FsbGJhY2tGdW5jdGlvbjo6Y3JlYXRlU3Ry
dWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQo
KSkpOwogICAgIG1fYXJndW1lbnRzU3RydWN0dXJlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRo
aXMsIEFyZ3VtZW50czo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywg
bV9vYmplY3RQcm90b3R5cGUuZ2V0KCkpKTsKICAgICBtX2NhbGxiYWNrQ29uc3RydWN0b3JTdHJ1
Y3R1cmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgSlNDYWxsYmFja0NvbnN0cnVjdG9y
OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBtX29iamVjdFByb3Rv
dHlwZS5nZXQoKSkpOwotICAgIG1fY2FsbGJhY2tPYmplY3RTdHJ1Y3R1cmUuc2V0KGV4ZWMtPmds
b2JhbERhdGEoKSwgdGhpcywgSlNDYWxsYmFja09iamVjdDxKU09iamVjdFdpdGhHbG9iYWxPYmpl
Y3Q+OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBtX29iamVjdFBy
b3RvdHlwZS5nZXQoKSkpOworICAgIG1fY2FsbGJhY2tPYmplY3RTdHJ1Y3R1cmUuc2V0KGV4ZWMt
Pmdsb2JhbERhdGEoKSwgdGhpcywgSlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pjo6
Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbV9vYmplY3RQcm90b3R5
cGUuZ2V0KCkpKTsKIAogICAgIG1fYXJyYXlQcm90b3R5cGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEo
KSwgdGhpcywgQXJyYXlQcm90b3R5cGU6OmNyZWF0ZShleGVjLCB0aGlzLCBBcnJheVByb3RvdHlw
ZTo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgbV9vYmplY3RQcm90
b3R5cGUuZ2V0KCkpKSk7CiAgICAgbV9hcnJheVN0cnVjdHVyZS5zZXQoZXhlYy0+Z2xvYmFsRGF0
YSgpLCB0aGlzLCBKU0FycmF5OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0
aGlzLCBtX2FycmF5UHJvdG90eXBlLmdldCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT05PYmplY3QuY3BwCmluZGV4IDE3MzE1MmIyOTE5M2RmMjAyNDU4MTIzNzY3Njhm
YmQ4OWRlNzM2MGMuLmZkODM2YWYwOTA1M2YxMzEwNTljYzAxMzMyZDhlODdiZDU2NjkyOTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCkBAIC01NCwx
NCArNTQsMTQgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNPTlByb3Rv
RnVuY1N0cmluZ2lmeShFeGVjU3RhdGUqKTsKIG5hbWVzcGFjZSBKU0MgewogCiBKU09OT2JqZWN0
OjpKU09OT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQotICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3Ry
dWN0dXJlKQorICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEo
KSwgc3RydWN0dXJlKQogewogICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7CiB9CiAK
IHZvaWQgSlNPTk9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkKIHsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERh
dGEoKSwgZ2xvYmFsT2JqZWN0KTsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmpl
Y3QtPmdsb2JhbERhdGEoKSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIApA
QCAtNTg5LDcgKzU4OSw3IEBAIGJvb2wgU3RyaW5naWZpZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFBy
b3BlcnR5KFN0cmluZ2lmaWVyJiBzdHJpbmdpZmllciwgVVN0cmluZ0J1CiAKIC8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBKU09OT2JqZWN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAKLWNvbnN0IENsYXNzSW5mbyBKU09OT2JqZWN0OjpzX2luZm8gPSB7ICJKU09O
IiwgJkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6c19pbmZvLCAwLCBFeGVjU3RhdGU6Ompzb25U
YWJsZSB9OworY29uc3QgQ2xhc3NJbmZvIEpTT05PYmplY3Q6OnNfaW5mbyA9IHsgIkpTT04iLCAm
SlNOb25GaW5hbE9iamVjdDo6c19pbmZvLCAwLCBFeGVjU3RhdGU6Ompzb25UYWJsZSB9OwogCiAv
KiBTb3VyY2UgZm9yIEpTT05PYmplY3QubHV0LmgKIEBiZWdpbiBqc29uVGFibGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaAppbmRleCBjMzU1MTY5MmNhNjcwM2E2
MzMyZGY0MGZjZWQ3ZGMzZTMwMzJlYzMwLi40ZTg1YmYxMWFiMmMxM2U2MTMzMDU3MDJhMzhhNmRl
MTFiMDE5YTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09O
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5o
CkBAIC0yNiwxNSArMjYsMTUgQEAKICNpZm5kZWYgSlNPTk9iamVjdF9oCiAjZGVmaW5lIEpTT05P
YmplY3RfaAogCi0jaW5jbHVkZSAiSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgiCisjaW5jbHVk
ZSAiSlNPYmplY3QuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBTdHJpbmdpZmll
cjsKIAotICAgIGNsYXNzIEpTT05PYmplY3QgOiBwdWJsaWMgSlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0IHsKKyAgICBjbGFzcyBKU09OT2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qgewog
ICAgIHB1YmxpYzoKLSAgICAgICAgdHlwZWRlZiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QgQmFz
ZTsKKyAgICAgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAKICAgICAgICAgc3Rh
dGljIEpTT05PYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgICAgICB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCBhN2Q4Y2I3OWQyNjVmMDdkMTFlNzZj
ZmIxNmVjYTcyNTcyMWM2OTY0Li5kNzZiZWZjY2Y1ZjY3ZjNjOTc2YzQyODRlZTI1MDk2NWVmYjQz
MzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTI1Miw2
ICsyNTIsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gbG9jYXRpb25G
b3JPZmZzZXQoaW5kZXgpLT5nZXQoKTsKICAgICAgICAgfQogCisgICAgICAgIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQo
c3RydWN0dXJlKCktPmdsb2JhbE9iamVjdCgpKTsKKyAgICAgICAgICAgIEFTU0VSVCghaXNHbG9i
YWxPYmplY3QoKSB8fCAoKEpTT2JqZWN0KilzdHJ1Y3R1cmUoKS0+Z2xvYmFsT2JqZWN0KCkpID09
IHRoaXMpOworICAgICAgICAgICAgcmV0dXJuIHN0cnVjdHVyZSgpLT5nbG9iYWxPYmplY3QoKTsK
KyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgc3RhdGljIHNpemVfdCBvZmZzZXRPZklubGlu
ZVN0b3JhZ2UoKTsKICAgICAgICAgc3RhdGljIHNpemVfdCBvZmZzZXRPZlByb3BlcnR5U3RvcmFn
ZSgpOwogICAgICAgICBzdGF0aWMgc2l6ZV90IG9mZnNldE9mSW5oZXJpdG9ySUQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9i
amVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9i
YWxPYmplY3QuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4N2IzMjE5YzYzNGJm
YTVlYjAyN2E2MzQzZjY1MTExNzQxN2I2MTI4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
V2l0aEdsb2JhbE9iamVjdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTT2JqZWN0V2l0aEdsb2Jh
bE9iamVjdC5oIgotCi0jaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKLQotbmFtZXNwYWNlIEpT
QyB7Ci0KLUpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAg
IDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJl
KQotewotfQotCi1KU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OkpTT2JqZWN0V2l0aEdsb2JhbE9i
amVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAg
IDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCi17Ci19Ci0KLXZvaWQg
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi17Ci0gICAgQmFzZTo6Zmlu
aXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7Ci0gICAgQ09NUElMRV9BU1NFUlQoQW5vbnltb3VzU2xv
dENvdW50ID09IDEsIEFub255bW91c1Nsb3RDb3VudF9tdXN0X2JlX29uZSk7Ci0gICAgQVNTRVJU
KCFnbG9iYWxPYmplY3QgfHwgZ2xvYmFsT2JqZWN0LT5pc0dsb2JhbE9iamVjdCgpKTsKLSAgICBp
ZiAoIWdsb2JhbE9iamVjdCkKLSAgICAgICAgY2xlYXJBbm9ueW1vdXNWYWx1ZShHbG9iYWxPYmpl
Y3RTbG90KTsKLSAgICBlbHNlCi0gICAgICAgIHB1dEFub255bW91c1ZhbHVlKGdsb2JhbERhdGEs
IEdsb2JhbE9iamVjdFNsb3QsIGdsb2JhbE9iamVjdCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdp
dGhHbG9iYWxPYmplY3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWY5YTI0M2Vj
NDllOTMzOWI2MWFjZDk0NjhjZGZkY2EwZTgzOWFjOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdFdpdGhHbG9iYWxPYmplY3QuaAorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaWZuZGVmIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdF9oCi0jZGVmaW5lIEpT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdF9oCi0KLSNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgot
Ci1uYW1lc3BhY2UgSlNDIHsKLQotY2xhc3MgSlNHbG9iYWxPYmplY3Q7Ci0KLWNsYXNzIEpTT2Jq
ZWN0V2l0aEdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKLXB1YmxpYzoK
LSAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLQotICAgIHN0YXRpYyBTdHJ1Y3R1
cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG8pCi0gICAgewotICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUlu
Zm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2lu
Zm8pOwotICAgIH0KLQotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSBjb25zdAot
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFzR2xvYmFsT2JqZWN0KChnZXRBbm9ueW1vdXNWYWx1ZShH
bG9iYWxPYmplY3RTbG90KS5hc0NlbGwoKSkpOwotICAgIH0KLQotcHJvdGVjdGVkOgotICAgIEpT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwotICAg
IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqKTsKLQot
ICAgIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChWUHRyU3RlYWxpbmdIYWNrVHlwZSkKLSAgICAg
ICAgOiBKU05vbkZpbmFsT2JqZWN0KFZQdHJTdGVhbGluZ0hhY2spCi0gICAgewotICAgICAgICAv
LyBTaG91bGQgb25seSBiZSB1c2VkIGJ5IEpTRnVuY3Rpb24gd2hlbiB3ZSBhcXVpcmUgdGhlIEpT
RnVuY3Rpb24gdnB0ci4KLSAgICB9Ci0KLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
RGF0YSYsIEpTR2xvYmFsT2JqZWN0Kik7Ci0KLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQW5v
bnltb3VzU2xvdENvdW50ID0gSlNPYmplY3Q6OkFub255bW91c1Nsb3RDb3VudCArIDE7Ci0gICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIEdsb2JhbE9iamVjdFNsb3QgPSAwOwotfTsKLQotfSAvLyBu
YW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyBKU09iamVjdFdpdGhHbG9iYWxPYmplY3RfaApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmNwcAppbmRleCA1ODFiOTJiMzA1NjFm
ODc3YmNmZDNhOTRhY2M4NmQ2ZjQzY2VlY2IzLi40NmE1NWRlNjUwZmVhZjk5NDVlMDAzYTRhZmYy
OTIzNTA3ZjRjNjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmNw
cApAQCAtMjAxLDcgKzIwMSw3IEBAIGludDMyX3QgdG9JbnQzMihkb3VibGUgbnVtYmVyKQogCiBi
b29sIEpTVmFsdWU6OmlzVmFsaWRDYWxsZWUoKQogewotICAgIHJldHVybiBhc09iamVjdChhc09i
amVjdChhc0NlbGwoKSktPmdldEFub255bW91c1ZhbHVlKDApKS0+aXNHbG9iYWxPYmplY3QoKTsK
KyAgICByZXR1cm4gYXNPYmplY3QoYXNDZWxsKCkpLT5nbG9iYWxPYmplY3QoKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Mb29rdXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmNwcApp
bmRleCBmMGNkYmJhOTU3Y2U2NTMzOWZjN2RiMDU4Mzk2NDg2MjVmZDcxMTQ3Li44MGVkYmRkYWI4
MTgxMTNhZGM0YTJlNzQ3NTFmNWEwY2VlZDliMDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Mb29rdXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0xvb2t1cC5jcHAKQEAgLTcwLDE0ICs3MCwxMyBAQCB2b2lkIEhhc2hUYWJsZTo6ZGVs
ZXRlVGFibGUoKSBjb25zdAogCiB2b2lkIHNldFVwU3RhdGljRnVuY3Rpb25TbG90KEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgSGFzaEVudHJ5KiBlbnRyeSwgSlNPYmplY3QqIHRoaXNPYmosIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIEFT
U0VSVCh0aGlzT2JqLT5zdHJ1Y3R1cmUoKS0+YW5vbnltb3VzU2xvdENvdW50KCkgPiAwKTsKLSAg
ICBBU1NFUlQodGhpc09iai0+Z2V0QW5vbnltb3VzVmFsdWUoMCkuaXNDZWxsKCkgJiYgYXNPYmpl
Y3QodGhpc09iai0+Z2V0QW5vbnltb3VzVmFsdWUoMCkuYXNDZWxsKCkpLT5pc0dsb2JhbE9iamVj
dCgpKTsKKyAgICBBU1NFUlQodGhpc09iai0+Z2xvYmFsT2JqZWN0KCkpOwogICAgIEFTU0VSVChl
bnRyeS0+YXR0cmlidXRlcygpICYgRnVuY3Rpb24pOwogICAgIFdyaXRlQmFycmllckJhc2U8VW5r
bm93bj4qIGxvY2F0aW9uID0gdGhpc09iai0+Z2V0RGlyZWN0TG9jYXRpb24oZXhlYy0+Z2xvYmFs
RGF0YSgpLCBwcm9wZXJ0eU5hbWUpOwogCiAgICAgaWYgKCFsb2NhdGlvbikgewogICAgICAgICBK
U0Z1bmN0aW9uKiBmdW5jdGlvbjsKLSAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCA9IGFzR2xvYmFsT2JqZWN0KHRoaXNPYmotPmdldEFub255bW91c1ZhbHVlKDApLmFzQ2VsbCgp
KTsKKyAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRoaXNPYmotPmdsb2Jh
bE9iamVjdCgpOwogI2lmIEVOQUJMRShKSVQpCiAgICAgICAgIGlmIChlbnRyeS0+Z2VuZXJhdG9y
KCkpCiAgICAgICAgICAgICBmdW5jdGlvbiA9IEpTRnVuY3Rpb246OmNyZWF0ZShleGVjLCBnbG9i
YWxPYmplY3QsIGdsb2JhbE9iamVjdC0+ZnVuY3Rpb25TdHJ1Y3R1cmUoKSwgZW50cnktPmZ1bmN0
aW9uTGVuZ3RoKCksIHByb3BlcnR5TmFtZSwgZXhlYy0+Z2xvYmFsRGF0YSgpLmdldEhvc3RGdW5j
dGlvbihlbnRyeS0+ZnVuY3Rpb24oKSwgZW50cnktPmdlbmVyYXRvcigpKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCmluZGV4IDJmYTQyZDA0N2Q0OTA4ZTZkNjU4NzU4ZjYy
ZTZmNDE5Zjc4ZWNjMmYuLmMwMDEzZDZkMTc5NGIxZTdlNDk3YmJjMmMxZjU4ZmFlNTI3NDRmZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCkBAIC0yNCw3ICsyNCw2IEBA
CiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiSWRlbnRpZmllci5oIgogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCi0jaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJQ
cm9wZXJ0eVNsb3QuaCIKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRp
b25zLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCmlu
ZGV4IDVlYzU2YTM2ZTczNzU1OWEzMGRmYjEyMDhhMGMxM2NlYmE5ODdiNmQuLjMxOWM5N2NhZWZj
NGJiZGU5NzliNzhiOTRiM2QwZmFkOWNmYjgwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNUYW4oRXhlY1N0YXRlKik7CiAKIG5h
bWVzcGFjZSBKU0MgewogCi1jb25zdCBDbGFzc0luZm8gTWF0aE9iamVjdDo6c19pbmZvID0geyAi
TWF0aCIsICZKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OnNfaW5mbywgMCwgRXhlY1N0YXRlOjpt
YXRoVGFibGUgfTsKK2NvbnN0IENsYXNzSW5mbyBNYXRoT2JqZWN0OjpzX2luZm8gPSB7ICJNYXRo
IiwgJkpTTm9uRmluYWxPYmplY3Q6OnNfaW5mbywgMCwgRXhlY1N0YXRlOjptYXRoVGFibGUgfTsK
IAogLyogU291cmNlIGZvciBNYXRoT2JqZWN0Lmx1dC5oCiBAYmVnaW4gbWF0aFRhYmxlCkBAIC04
NSwxNCArODUsMTQgQEAgY29uc3QgQ2xhc3NJbmZvIE1hdGhPYmplY3Q6OnNfaW5mbyA9IHsgIk1h
dGgiLCAmSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpzX2luZm8KICovCiAKIE1hdGhPYmplY3Q6
Ok1hdGhPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChn
bG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKKyAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsKICAgICBmaW5pc2hDcmVhdGlvbihleGVj
LCBnbG9iYWxPYmplY3QpOwogfQogCiB2b2lkIE1hdGhPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKLSAgICBCYXNl
OjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0
KTsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSk7
CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIAogICAgIHB1dERpcmVjdFdpdGhvdXRU
cmFuc2l0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgSWRlbnRpZmllcihleGVjLCAiRSIpLCBqc051
bWJlcihleHAoMS4wKSksIERvbnREZWxldGUgfCBEb250RW51bSB8IFJlYWRPbmx5KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaAppbmRleCBlNDEwYTZlZTlhNzdm
MGIwNzUzMmRmZDg4NGFmOWQzZjkwNDYyY2UzLi5iZWY5MzEwYWM4YjBlNWIyZTYyNzQ3ZmFjOWM2
NGZkYmE4NjNkYzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9N
YXRoT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVj
dC5oCkBAIC0yMSwxNiArMjEsMTYgQEAKICNpZm5kZWYgTWF0aE9iamVjdF9oCiAjZGVmaW5lIE1h
dGhPYmplY3RfaAogCi0jaW5jbHVkZSAiSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgiCisjaW5j
bHVkZSAiSlNPYmplY3QuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSAgICBjbGFzcyBNYXRoT2Jq
ZWN0IDogcHVibGljIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCB7CisgICAgY2xhc3MgTWF0aE9i
amVjdCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBwcml2YXRlOgogICAgICAgICBN
YXRoT2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CiAKICAg
ICBwdWJsaWM6Ci0gICAgICAgIHR5cGVkZWYgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IEJhc2U7
CisgICAgICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwogCiAgICAgICAgIHN0YXRp
YyBNYXRoT2JqZWN0KiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKaW5kZXggNmIzYTM3
NjgzNTNhMjMxMTM1MWZmNmYyMGY2YTI2YmY5ZDMwOGFlMS4uNTI3NjgxNzg2NGQ5YjM1MDAyOTg0
NzNkMzE1ODM5NTYyOTg2YTY3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiQmln
SW50ZWdlci5oIgogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgor
I2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNs
dWRlICJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiVWludDE2V2l0aEZyYWN0aW9uLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAppbmRleCA4NDFk
OTM5NDExN2FiMDkxMTczOGQwYzQ4NWUzZmU1MGI1YTFkZDE2Li43MGI3MDdjMjc4NWZhNDhlMTZi
NDVmMTM1Y2JiZjk2YjExNTYwYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cE9iamVjdC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
IEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoUmVnRXhwT2JqZWN0KTsKIAotY29uc3QgQ2xhc3NJ
bmZvIFJlZ0V4cE9iamVjdDo6c19pbmZvID0geyAiUmVnRXhwIiwgJkpTT2JqZWN0V2l0aEdsb2Jh
bE9iamVjdDo6c19pbmZvLCAwLCBFeGVjU3RhdGU6OnJlZ0V4cFRhYmxlIH07Citjb25zdCBDbGFz
c0luZm8gUmVnRXhwT2JqZWN0OjpzX2luZm8gPSB7ICJSZWdFeHAiLCAmSlNOb25GaW5hbE9iamVj
dDo6c19pbmZvLCAwLCBFeGVjU3RhdGU6OnJlZ0V4cFRhYmxlIH07CiAKIC8qIFNvdXJjZSBmb3Ig
UmVnRXhwT2JqZWN0Lmx1dC5oCiBAYmVnaW4gcmVnRXhwVGFibGUKQEAgLTYzLDcgKzYzLDcgQEAg
Y29uc3QgQ2xhc3NJbmZvIFJlZ0V4cE9iamVjdDo6c19pbmZvID0geyAiUmVnRXhwIiwgJkpTT2Jq
ZWN0V2l0aEdsb2JhbE9iamVjdDo6c18KICovCiAKIFJlZ0V4cE9iamVjdDo6UmVnRXhwT2JqZWN0
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWdF
eHAqIHJlZ0V4cCkKLSAgICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3Qs
IHN0cnVjdHVyZSkKKyAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5nbG9iYWxE
YXRhKCksIHN0cnVjdHVyZSkKICAgICAsIGQoYWRvcHRQdHIobmV3IFJlZ0V4cE9iamVjdERhdGEo
Z2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHRoaXMsIHJlZ0V4cCkpKQogewogICAgIGZpbmlz
aENyZWF0aW9uKGdsb2JhbE9iamVjdCk7CkBAIC03MSw3ICs3MSw3IEBAIFJlZ0V4cE9iamVjdDo6
UmVnRXhwT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBSCiAKIHZvaWQgUmVnRXhwT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0KQogewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9i
amVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOworICAgIEJhc2U6OmZpbmlzaENyZWF0
aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNf
aW5mbykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVj
dC5oCmluZGV4IGUxMzFmYzVjNDc4NmFkOTQ3NmUzM2JlZDA1OTlmZDQ0ZDg3NzI1ZDQuLjJmMDc3
NWYxY2ViZDQ2ZDdkOTZjZWYzNDc0ZjNmZTllYmM1YTc3ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCkBAIC0yMSwxNCArMjEsMTQgQEAKICNpZm5k
ZWYgUmVnRXhwT2JqZWN0X2gKICNkZWZpbmUgUmVnRXhwT2JqZWN0X2gKIAotI2luY2x1ZGUgIkpT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiUmVnRXhwLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogICAgIAotICAgIGNsYXNzIFJlZ0V4cE9i
amVjdCA6IHB1YmxpYyBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QgeworICAgIGNsYXNzIFJlZ0V4
cE9iamVjdCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICBwdWJsaWM6Ci0gICAgICAg
IHR5cGVkZWYgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IEJhc2U7CisgICAgICAgIHR5cGVkZWYg
SlNOb25GaW5hbE9iamVjdCBCYXNlOwogCiAgICAgICAgIHN0YXRpYyBSZWdFeHBPYmplY3QqIGNy
ZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBSZWdFeHAqIHJlZ0V4cCkKICAgICAgICAgewpAQCAtNzUsNyArNzUs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIFJlZ0V4cE9iamVj
dChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFJlZ0V4cCopOwogICAgICAgICB2b2lkIGZp
bmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0Kik7Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OlN0cnVjdHVyZUZs
YWdzOworICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVy
cmlkZXNWaXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgQmFzZTo6
U3RydWN0dXJlRmxhZ3M7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlz
aXRDaGlsZHJlbihTbG90VmlzaXRvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5jcHAKaW5kZXggNGJjYzY3MjNjZGI1ZmVhY2Q0NDI1MzFjODA5NWI5NzdmOGNi
ZjA5My4uMmJkZjVmZDI5Y2M0OGRhNTA3MTNhYzY3ZTQ0YmI2MmY3N2ZjNjZhOSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCkBAIC0xNTksOSArMTU5LDEw
IEBAIHZvaWQgU3RydWN0dXJlOjpkdW1wU3RhdGlzdGljcygpCiAjZW5kaWYKIH0KIAotU3RydWN0
dXJlOjpTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlw
ZSwgY29uc3QgVHlwZUluZm8mIHR5cGVJbmZvLCB1bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291bnQs
IGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQorU3RydWN0dXJlOjpTdHJ1Y3R1cmUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IHByb3RvdHlwZSwgY29uc3QgVHlwZUluZm8mIHR5cGVJbmZvLCB1bnNpZ25lZCBhbm9ueW1vdXNT
bG90Q291bnQsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQogICAgIDogSlNDZWxsKGdsb2Jh
bERhdGEsIGdsb2JhbERhdGEuc3RydWN0dXJlU3RydWN0dXJlLmdldCgpKQogICAgICwgbV90eXBl
SW5mbyh0eXBlSW5mbykKKyAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIHRoaXMsIGds
b2JhbE9iamVjdCwgV3JpdGVCYXJyaWVyPEpTR2xvYmFsT2JqZWN0Pjo6TWF5QmVOdWxsKQogICAg
ICwgbV9wcm90b3R5cGUoZ2xvYmFsRGF0YSwgdGhpcywgcHJvdG90eXBlKQogICAgICwgbV9jbGFz
c0luZm8oY2xhc3NJbmZvKQogICAgICwgbV9wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSh0eXBlSW5m
by5pc0ZpbmFsKCkgPyBKU0ZpbmFsT2JqZWN0X2lubGluZVN0b3JhZ2VDYXBhY2l0eSA6IEpTTm9u
RmluYWxPYmplY3RfaW5saW5lU3RvcmFnZUNhcGFjaXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuaAppbmRleCBmNGUwYmM4ZDEyY2MyMTYzMmMwMTc3YTY0MTlkYmFi
ODBkZGU1OWFjLi4wZjRmNDhjODM0MTJjMTM1MGQwOTM0YzFiNWZmNjMzNzY4Mjk2ZmMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaApAQCAtNjIsMTEgKzYyLDEx
IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHR5cGVkZWYgSlNDZWxsIEJhc2U7CiAKLSAg
ICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSwgY29uc3QgVHlwZUluZm8mIHR5cGVJ
bmZvLCB1bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291bnQsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJ
bmZvKQorICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSwg
Y29uc3QgVHlwZUluZm8mIHR5cGVJbmZvLCB1bnNpZ25lZCBhbm9ueW1vdXNTbG90Q291bnQsIGNv
bnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKQogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQo
Z2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOwogICAgICAgICAgICAgQVNTRVJUKGNsYXNz
SW5mbyk7Ci0gICAgICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IG5ldyAoYWxsb2NhdGVD
ZWxsPFN0cnVjdHVyZT4oZ2xvYmFsRGF0YS5oZWFwKSkgU3RydWN0dXJlKGdsb2JhbERhdGEsIHBy
b3RvdHlwZSwgdHlwZUluZm8sIGFub255bW91c1Nsb3RDb3VudCwgY2xhc3NJbmZvKTsKKyAgICAg
ICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gbmV3IChhbGxvY2F0ZUNlbGw8U3RydWN0dXJl
PihnbG9iYWxEYXRhLmhlYXApKSBTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIHR5cGVJbmZvLCBhbm9ueW1vdXNTbG90Q291bnQsIGNsYXNzSW5mbyk7CiAgICAg
ICAgICAgICBzdHJ1Y3R1cmUtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgICAgICAg
ICAgcmV0dXJuIHN0cnVjdHVyZTsKICAgICAgICAgfQpAQCAtMTIxLDcgKzEyMSw3IEBAIG5hbWVz
cGFjZSBKU0MgewogCiAgICAgICAgIGNvbnN0IFR5cGVJbmZvJiB0eXBlSW5mbygpIGNvbnN0IHsg
QVNTRVJUKHN0cnVjdHVyZSgpLT5jbGFzc0luZm8oKSA9PSAmc19pbmZvKTsgcmV0dXJuIG1fdHlw
ZUluZm87IH0KIAotICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KCkgeyByZXR1
cm4gbV9nbG9iYWxPYmplY3QuZ2V0KCk7IH0KKyAgICAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZ2xvYmFsT2JqZWN0LmdldCgpOyB9CiAgICAgICAg
IHZvaWQgc2V0R2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkgeyBtX2dsb2JhbE9iamVjdC5zZXQoZ2xvYmFsRGF0YSwgdGhp
cywgZ2xvYmFsT2JqZWN0KTsgfQogICAgICAgICAKICAgICAgICAgSlNWYWx1ZSBzdG9yZWRQcm90
b3R5cGUoKSBjb25zdCB7IHJldHVybiBtX3Byb3RvdHlwZS5nZXQoKTsgfQpAQCAtMTkxLDcgKzE5
MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBjb25z
dCBDbGFzc0luZm8gc19pbmZvOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgU3RydWN0dXJlKEpT
R2xvYmFsRGF0YSYsIEpTVmFsdWUgcHJvdG90eXBlLCBjb25zdCBUeXBlSW5mbyYsIHVuc2lnbmVk
IGFub255bW91c1Nsb3RDb3VudCwgY29uc3QgQ2xhc3NJbmZvKik7CisgICAgICAgIFN0cnVjdHVy
ZShKU0dsb2JhbERhdGEmLCBKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgcHJvdG90eXBlLCBjb25z
dCBUeXBlSW5mbyYsIHVuc2lnbmVkIGFub255bW91c1Nsb3RDb3VudCwgY29uc3QgQ2xhc3NJbmZv
Kik7CiAgICAgICAgIFN0cnVjdHVyZShKU0dsb2JhbERhdGEmKTsKICAgICAgICAgU3RydWN0dXJl
KEpTR2xvYmFsRGF0YSYsIGNvbnN0IFN0cnVjdHVyZSopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTJhYjAy
NWI2MGRlNjE0ZGQ0YWM4NmYxYWQxOTg2YmNiYTRiYzRmMS4uNzk0YTgzNjRiYWM1NWVlY2E5MjMy
NDFmMGEzZDViMTc1MmE4NWYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDExLTA5
LTA2ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIEpT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njc2ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW1vdmUgdXNlIG9mIGFub255bW91cyBzdG9yYWdlIGFuZCBKU09iamVj
dFdpdGhHbG9iYWxPYmplY3QgZm9yCisgICAgICAgIGFjY2Vzc2luZyBhIEpTT2JqZWN0J3MgZ2xv
YmFsIG9iamVjdCBub3cgdGhhdCB0aGV5J3JlIGF2YWlsYWJsZQorICAgICAgICBvbiB0aGUgb2Jq
ZWN0J3Mgc3RydWN0dXJlLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVs
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpzZXRXaW5kb3cpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oOgorICAgICAgICAoV2ViQ29yZTo6
SlNET01XcmFwcGVyOjpnbG9iYWxPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XcmFw
cGVyOjpKU0RPTVdyYXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6
aW5pdFNjcmlwdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG06CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaDoKKyAgICAgICAg
KiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW06CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpP
YmpjRmFsbGJhY2tPYmplY3RJbXA6Ok9iamNGYWxsYmFja09iamVjdEltcCk6CisgICAgICAgIChK
U0M6OkJpbmRpbmdzOjpPYmpjRmFsbGJhY2tPYmplY3RJbXA6OmZpbmlzaENyZWF0aW9uKToKKyAg
ICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5n
czo6UnVudGltZU9iamVjdDo6UnVudGltZU9iamVjdCk6CisgICAgICAgIChKU0M6OkJpbmRpbmdz
OjpSdW50aW1lT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYnJpZGdlL3J1bnRp
bWVfb2JqZWN0Lmg6CisKIDIwMTEtMDktMDUgIEpvY2VseW4gVHVyY290dGUgIDxqb2NlbHluLnR1
cmNvdHRlQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdW1dLMl0gTWFrZSBUaWxlZERyYXdpbmdB
cmVhIHJlcXVlc3QgdGlsZXMgb25seSBpbiB0aGUgZGlyZWN0aW9uIHRoZSB2aWV3cG9ydCBpcyBw
YW5uZWQgdG8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd1NoZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hl
bGwuY3BwCmluZGV4IDQ5ZTFiNGE0OTU4YWZhNzhiNTk2MWI3N2FmYjAyOTE3OWY1NWI3NGUuLjFl
ZGZkMmU2YTczNDI2Y2E3ZTY5MGVhNzY5OGU4ZWMyOTc0YTMyYmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCkBAIC03Myw5ICs3MywxMCBA
QCB2b2lkIEpTRE9NV2luZG93U2hlbGw6OnNldFdpbmRvdyhQYXNzUmVmUHRyPERPTVdpbmRvdz4g
ZG9tV2luZG93KQogCiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBKU0RPTVdpbmRvdzo6Y3Jl
YXRlU3RydWN0dXJlKCpKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCksIDAsIHByb3Rv
dHlwZS5nZXQoKSk7CiAgICAgSlNET01XaW5kb3cqIGpzRE9NV2luZG93ID0gSlNET01XaW5kb3c6
OmNyZWF0ZSgqSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUsIGRv
bVdpbmRvdywgdGhpcyk7Ci0gICAgcHJvdG90eXBlU3RydWN0dXJlLT5zZXRHbG9iYWxPYmplY3Qo
KkpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSwganNET01XaW5kb3cpOwotICAgIHBy
b3RvdHlwZS0+cHV0QW5vbnltb3VzVmFsdWUoKkpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERh
dGEoKSwgMCwganNET01XaW5kb3cpOworICAgIHByb3RvdHlwZS0+c3RydWN0dXJlKCktPnNldEds
b2JhbE9iamVjdCgqSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLCBqc0RPTVdpbmRv
dyk7CiAgICAgc2V0V2luZG93KCpKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCksIGpz
RE9NV2luZG93KTsKKyAgICBBU1NFUlQoanNET01XaW5kb3ctPmdsb2JhbE9iamVjdCgpID09IGpz
RE9NV2luZG93KTsKKyAgICBBU1NFUlQocHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSA9PSBqc0RP
TVdpbmRvdyk7CiB9CiAKIC8vIC0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
cmFwcGVyLmgKaW5kZXggOGYyYzA4ZTJiMTg2MGQ4MDIzNGJhOGY3MzU3ZjZhODRjN2RiNGVhMy4u
NmExYjQzODkzOGZhMTQxYjQ4MGMwMWViOGRmNDAxN2Y5NmYxM2U5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmgKQEAgLTIzLDE3ICsyMywxNyBAQAogI2RlZmlu
ZSBKU0RPTVdyYXBwZXJfaAogCiAjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuaCIKLSNpbmNs
dWRlIDxydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oPgorI2luY2x1ZGUgPHJ1bnRp
bWUvSlNPYmplY3QuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OwogCi1jbGFzcyBKU0RPTVdyYXBwZXIgOiBwdWJsaWMgSlNDOjpKU09iamVj
dFdpdGhHbG9iYWxPYmplY3QgeworY2xhc3MgSlNET01XcmFwcGVyIDogcHVibGljIEpTQzo6SlNO
b25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CiAgICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCgpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNET01HbG9i
YWxPYmplY3QqPihKU0M6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6Z2xvYmFsT2JqZWN0KCkp
OworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihKU0M6OkpT
Tm9uRmluYWxPYmplY3Q6Omdsb2JhbE9iamVjdCgpKTsKICAgICB9CiAKICAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKQEAgLTUzLDEzICs1
MywxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHZpcnR1YWxGdW5jdGlvblRvUHJl
dmVudFdlYWtWdGFibGUoKTsKIAogICAgIGV4cGxpY2l0IEpTRE9NV3JhcHBlcihKU0M6OlN0cnVj
dHVyZSogc3RydWN0dXJlLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIAotICAg
ICAgICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkK
KyAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBz
dHJ1Y3R1cmUpCiAgICAgewogICAgICAgICAvLyBGSVhNRTogVGhpcyBBU1NFUlQgaXMgdmFsaWQs
IGJ1dCBmaXJlcyBpbiBmYXN0L2RvbS9nYy02Lmh0bWwgd2hlbiB0cnlpbmcgdG8gY3JlYXRlCiAg
ICAgICAgIC8vIG5ldyBKYXZhU2NyaXB0IG9iamVjdHMgb24gZGV0YWNoZWQgd2luZG93cyBkdWUg
dG8gRE9NV2luZG93Ojpkb2N1bWVudCgpCiAgICAgICAgIC8vIG5lZWRpbmcgdG8gcmVhY2ggdGhy
b3VnaCB0aGUgZnJhbWUgdG8gZ2V0IHRvIHRoZSBEb2N1bWVudCouICBTZWUgYnVnIDI3NjQwLgog
ICAgICAgICAvLyBBU1NFUlQoZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
OwotICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xv
YmFsT2JqZWN0KTsKKyAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxE
YXRhKCkpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggMTcwMjRlMmM5NDk3NzViMmZjZDRj
Njk2NzU3ODJlZDRlMjUxYTE2NC4uMDQ3ZDc0YTE4MDUxODFjNTdhMDU4ZGY0Nzc2Yjg1NTdmZDA4
MzljZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5jcHAKQEAgLTkyLDggKzkyLDYgQEAgdm9pZCBXb3JrZXJTY3JpcHRDb250
cm9sbGVyOjppbml0U2NyaXB0KCkKICAgICAgICAgQVNTRVJUKG1fd29ya2VyQ29udGV4dFdyYXBw
ZXItPnN0cnVjdHVyZSgpLT5nbG9iYWxPYmplY3QoKSA9PSBtX3dvcmtlckNvbnRleHRXcmFwcGVy
KTsKICAgICAgICAgd29ya2VyQ29udGV4dFByb3RvdHlwZS0+c3RydWN0dXJlKCktPnNldEdsb2Jh
bE9iamVjdCgqbV9nbG9iYWxEYXRhLCBtX3dvcmtlckNvbnRleHRXcmFwcGVyLmdldCgpKTsKICAg
ICAgICAgZGVkaWNhdGVkQ29udGV4dFByb3RvdHlwZS0+c3RydWN0dXJlKCktPnNldEdsb2JhbE9i
amVjdCgqbV9nbG9iYWxEYXRhLCBtX3dvcmtlckNvbnRleHRXcmFwcGVyLmdldCgpKTsKLSAgICAg
ICAgd29ya2VyQ29udGV4dFByb3RvdHlwZS0+cHV0QW5vbnltb3VzVmFsdWUoKm1fZ2xvYmFsRGF0
YSwgMCwgbV93b3JrZXJDb250ZXh0V3JhcHBlci5nZXQoKSk7Ci0gICAgICAgIGRlZGljYXRlZENv
bnRleHRQcm90b3R5cGUtPnB1dEFub255bW91c1ZhbHVlKCptX2dsb2JhbERhdGEsIDAsIG1fd29y
a2VyQ29udGV4dFdyYXBwZXIuZ2V0KCkpOwogI2lmIEVOQUJMRShTSEFSRURfV09SS0VSUykKICAg
ICB9IGVsc2UgewogICAgICAgICBBU1NFUlQobV93b3JrZXJDb250ZXh0LT5pc1NoYXJlZFdvcmtl
ckNvbnRleHQoKSk7CkBAIC0xMDIsMTIgKzEwMCwxMiBAQCB2b2lkIFdvcmtlclNjcmlwdENvbnRy
b2xsZXI6OmluaXRTY3JpcHQoKQogICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTU2hh
cmVkV29ya2VyQ29udGV4dDo6Y3JlYXRlU3RydWN0dXJlKCptX2dsb2JhbERhdGEsIDAsIHNoYXJl
ZENvbnRleHRQcm90b3R5cGUuZ2V0KCkpOwogCiAgICAgICAgIG1fd29ya2VyQ29udGV4dFdyYXBw
ZXIuc2V0KCptX2dsb2JhbERhdGEsIEpTU2hhcmVkV29ya2VyQ29udGV4dDo6Y3JlYXRlKCptX2ds
b2JhbERhdGEsIHN0cnVjdHVyZSwgbV93b3JrZXJDb250ZXh0LT50b1NoYXJlZFdvcmtlckNvbnRl
eHQoKSkpOwotICAgICAgICBtX3dvcmtlckNvbnRleHRXcmFwcGVyLT5zdHJ1Y3R1cmUoKS0+c2V0
R2xvYmFsT2JqZWN0KCptX2dsb2JhbERhdGEsIG1fd29ya2VyQ29udGV4dFdyYXBwZXIuZ2V0KCkp
OworICAgICAgICB3b3JrZXJDb250ZXh0UHJvdG90eXBlLT5zdHJ1Y3R1cmUoKS0+c2V0R2xvYmFs
T2JqZWN0KCptX2dsb2JhbERhdGEsIG1fd29ya2VyQ29udGV4dFdyYXBwZXIuZ2V0KCkpOwogICAg
ICAgICBzaGFyZWRDb250ZXh0UHJvdG90eXBlLT5zdHJ1Y3R1cmUoKS0+c2V0R2xvYmFsT2JqZWN0
KCptX2dsb2JhbERhdGEsIG1fd29ya2VyQ29udGV4dFdyYXBwZXIuZ2V0KCkpOwotICAgICAgICB3
b3JrZXJDb250ZXh0UHJvdG90eXBlLT5wdXRBbm9ueW1vdXNWYWx1ZSgqbV9nbG9iYWxEYXRhLCAw
LCBtX3dvcmtlckNvbnRleHRXcmFwcGVyLmdldCgpKTsKLSAgICAgICAgc2hhcmVkQ29udGV4dFBy
b3RvdHlwZS0+cHV0QW5vbnltb3VzVmFsdWUoKm1fZ2xvYmFsRGF0YSwgMCwgbV93b3JrZXJDb250
ZXh0V3JhcHBlci5nZXQoKSk7CiAjZW5kaWYKICAgICB9CisgICAgQVNTRVJUKG1fd29ya2VyQ29u
dGV4dFdyYXBwZXItPmdsb2JhbE9iamVjdCgpID09IG1fd29ya2VyQ29udGV4dFdyYXBwZXIpOwor
ICAgIEFTU0VSVChhc09iamVjdChtX3dvcmtlckNvbnRleHRXcmFwcGVyLT5wcm90b3R5cGUoKSkt
Pmdsb2JhbE9iamVjdCgpID09IG1fd29ya2VyQ29udGV4dFdyYXBwZXIpOwogfQogCiBTY3JpcHRW
YWx1ZSBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjb25zdCBTY3JpcHRTb3VyY2VD
b2RlJiBzb3VyY2VDb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA3YTExYTAxNDFkM2Y0YTdhYjM1YWYxYjVjMDJlYjgz
MjQ0ZGVkMDliLi4wMDQzY2JkMWQ5MWQzNTYyNmMwMGU1OTM5MTVkYmQzZjk3MmExY2E5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQpAQCAtNjkzLDcgKzY5Myw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICAkaGVhZGVy
SW5jbHVkZXN7IiRpbXBsQ2xhc3NOYW1lLmgifSA9IDE7CiAgICAgfQogICAgIAotICAgICRoZWFk
ZXJJbmNsdWRlc3siPHJ1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Lmg+In0gPSAxOwor
ICAgICRoZWFkZXJJbmNsdWRlc3siPHJ1bnRpbWUvSlNPYmplY3QuaD4ifSA9IDE7CiAgICAgJGhl
YWRlckluY2x1ZGVzeyJTVkdFbGVtZW50LmgifSA9IDEgaWYgJGNsYXNzTmFtZSA9fiAvXkpTU1ZH
LzsKIAogICAgIG15ICRpbXBsVHlwZSA9ICRpbXBsQ2xhc3NOYW1lOwpAQCAtMTAyMCw5ICsxMDIw
LDkgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICAjIEFkZCBwcm90b3R5cGUgZGVjbGFyYXRp
b24uCiAgICAgJXN0cnVjdHVyZUZsYWdzID0gKCk7Ci0gICAgcHVzaChAaGVhZGVyQ29udGVudCwg
ImNsYXNzICR7Y2xhc3NOYW1lfVByb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdCB7XG4iKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiY2xhc3MgJHtjbGFz
c05hbWV9UHJvdG90eXBlIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7XG4iKTsKICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHVibGljOlxuIik7Ci0gICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICB0eXBlZGVmIEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IEJhc2U7XG4i
KTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHR5cGVkZWYgSlNDOjpKU05vbkZpbmFs
T2JqZWN0IEJhc2U7XG4iKTsKICAgICBpZiAoJGludGVyZmFjZU5hbWUgbmUgIkRPTVdpbmRvdyIg
JiYgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IklzV29ya2VyQ29udGV4dCJ9KSB7
CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6SlNPYmplY3Qq
IHNlbGYoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7XG4iKTsKICAgICB9
CkBAIC0xMDU3LDcgKzEwNTcsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBkZWZpbmVHZXR0ZXIoSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU09iamVjdCogZ2V0
dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tUHJvdG90eXBlRGVmaW5lR2V0dGVyIn07CiAKICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiXG5wcml2YXRlOlxuIik7Ci0gICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICAke2NsYXNzTmFtZX1Qcm90b3R5cGUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkgOiBKU0M6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxEYXRhLCBz
dHJ1Y3R1cmUpIHsgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0KTsgfVxu
Iik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX1Qcm90b3R5cGUo
SlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OlN0cnVjdHVyZSogc3RydWN0dXJlKSA6IEpTQzo6SlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRh
LCBzdHJ1Y3R1cmUpIHsgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7IH1cbiIpOwogCiAgICAg
IyBzdHJ1Y3R1cmUgZmxhZ3MKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHJvdGVjdGVkOlxu
Iik7CkBAIC0xNDIwLDkgKzE0MjAsOSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICByZXR1cm4gZ2V0SGFzaFRhYmxlRm9yR2xvYmFsRGF0YShleGVjLT5nbG9iYWxEYXRh
KCksICYke2NsYXNzTmFtZX1Qcm90b3R5cGVUYWJsZSk7XG4iKTsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ9XG5cbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImNvbnN0IENs
YXNzSW5mbyAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OnNfaW5mbyA9IHsgXCIke3Zpc2libGVDbGFz
c05hbWV9UHJvdG90eXBlXCIsICZKU0M6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6c19pbmZv
LCAwLCBnZXQke2NsYXNzTmFtZX1Qcm90b3R5cGVUYWJsZSB9O1xuXG4iKTsKKyAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJjb25zdCBDbGFzc0luZm8gJHtjbGFzc05hbWV9UHJvdG90eXBlOjpz
X2luZm8gPSB7IFwiJHt2aXNpYmxlQ2xhc3NOYW1lfVByb3RvdHlwZVwiLCAmSlNDOjpKU05vbkZp
bmFsT2JqZWN0OjpzX2luZm8sIDAsIGdldCR7Y2xhc3NOYW1lfVByb3RvdHlwZVRhYmxlIH07XG5c
biIpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiY29uc3QgQ2xh
c3NJbmZvICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6c19pbmZvID0geyBcIiR7dmlzaWJsZUNsYXNz
TmFtZX1Qcm90b3R5cGVcIiwgJkpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpzX2luZm8s
ICYke2NsYXNzTmFtZX1Qcm90b3R5cGVUYWJsZSwgMCB9O1xuXG4iKTsKKyAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJjb25zdCBDbGFzc0luZm8gJHtjbGFzc05hbWV9UHJvdG90eXBlOjpzX2lu
Zm8gPSB7IFwiJHt2aXNpYmxlQ2xhc3NOYW1lfVByb3RvdHlwZVwiLCAmSlNDOjpKU05vbkZpbmFs
T2JqZWN0OjpzX2luZm8sICYke2NsYXNzTmFtZX1Qcm90b3R5cGVUYWJsZSwgMCB9O1xuXG4iKTsK
ICAgICB9CiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIG5lICJET01XaW5kb3ciICYmICEkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJc1dvcmtlckNvbnRleHQifSkgewogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIkpTT2JqZWN0KiAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OnNlbGYo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KVxuIik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCmluZGV4IGE1YTY3MjUyY2Y1MzZm
Y2U3NjM3MjYyNmQ2YjIwYzNhMmJiNzk4MjguLjVmNjFhZGZkNzE3NmRmYWVlYjlmNGRjZjMxZTky
M2U5M2JmYjJkMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNf
cnVudGltZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5o
CkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAi
b2JqY19oZWFkZXIuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg+Ci0jaW5j
bHVkZSA8cnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaD4KICNpbmNsdWRlIDx3dGYv
UmV0YWluUHRyLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtOTEsOSArOTAsOSBAQCBwcml2YXRl
OgogICAgIFJldGFpblB0cjxPYmplY3RTdHJ1Y3RQdHI+IF9hcnJheTsKIH07CiAKLWNsYXNzIE9i
amNGYWxsYmFja09iamVjdEltcCA6IHB1YmxpYyBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Qgewor
Y2xhc3MgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qgewog
cHVibGljOgotICAgIHR5cGVkZWYgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IEJhc2U7CisgICAg
dHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAKICAgICBzdGF0aWMgT2JqY0ZhbGxiYWNr
T2JqZWN0SW1wKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBPYmpjSW5zdGFuY2UqIGluc3RhbmNlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2Jq
Y19ydW50aW1lLm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1t
CmluZGV4IGRmMGU3MWM3ZmVjYjYyZTE2Zjc1ZGE5MTIwMzFmYTk2YjFhMmE3YzYuLjRmOWQ1MDU0
OTA1ZTY0MzJmYjYyODU4NjVmNGVmOTg5MWRjMDk5NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KQEAgLTE5NCwxOSArMTk0LDIwIEBAIHVuc2lnbmVkIGlu
dCBPYmpjQXJyYXk6OmdldExlbmd0aCgpIGNvbnN0CiAgICAgcmV0dXJuIFtfYXJyYXkuZ2V0KCkg
Y291bnRdOwogfQogCi1jb25zdCBDbGFzc0luZm8gT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpzX2lu
Zm8gPSB7ICJPYmpjRmFsbGJhY2tPYmplY3QiLCAmSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0Ojpz
X2luZm8sIDAsIDAgfTsKK2NvbnN0IENsYXNzSW5mbyBPYmpjRmFsbGJhY2tPYmplY3RJbXA6OnNf
aW5mbyA9IHsgIk9iamNGYWxsYmFja09iamVjdCIsICZKU05vbkZpbmFsT2JqZWN0OjpzX2luZm8s
IDAsIDAgfTsKIAogT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpPYmpjRmFsbGJhY2tPYmplY3RJbXAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIE9iamNJ
bnN0YW5jZSogaSwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQotICAgIDogSlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQorICAgIDogSlNOb25G
aW5hbE9iamVjdChnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogICAgICwg
X2luc3RhbmNlKGkpCiAgICAgLCBfaXRlbShwcm9wZXJ0eU5hbWUpCiB7CiAgICAgZmluaXNoQ3Jl
YXRpb24oZ2xvYmFsT2JqZWN0KTsKKyAgICBBU1NFUlQoc3RydWN0dXJlLT5nbG9iYWxPYmplY3Qo
KSA9PSBnbG9iYWxPYmplY3QpOwogfQogCiB2b2lkIE9iamNGYWxsYmFja09iamVjdEltcDo6Zmlu
aXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKLSAgICBCYXNlOjpm
aW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsK
KyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSk7CiAg
ICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX29iamVjdC5jcHAKaW5kZXggOTY2NDBmMDA4ZmFjMWFjNDcxNzY0ZmY4NWUzYjhmNjQ1
YjkyYmYyYy4uYmExZTdlNTMxYmM4OWFkMjNjZjAxMDYzOTVkNzJiOGE5NGRkMWQxNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCkBAIC0zNSwxOCArMzUsMTkgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBuYW1lc3BhY2UgSlNDIHsKIG5hbWVzcGFjZSBCaW5k
aW5ncyB7CiAKLWNvbnN0IENsYXNzSW5mbyBSdW50aW1lT2JqZWN0OjpzX2luZm8gPSB7ICJSdW50
aW1lT2JqZWN0IiwgJkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6c19pbmZvLCAwLCAwIH07Citj
b25zdCBDbGFzc0luZm8gUnVudGltZU9iamVjdDo6c19pbmZvID0geyAiUnVudGltZU9iamVjdCIs
ICZKU05vbkZpbmFsT2JqZWN0OjpzX2luZm8sIDAsIDAgfTsKIAogUnVudGltZU9iamVjdDo6UnVu
dGltZU9iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UpCi0gICAgOiBK
U09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCisgICAgOiBK
U05vbkZpbmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiAg
ICAgLCBtX2luc3RhbmNlKGluc3RhbmNlKQogeworICAgIEFTU0VSVChzdHJ1Y3R1cmUtPmdsb2Jh
bE9iamVjdCgpID09IGdsb2JhbE9iamVjdCk7CiAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2Jq
ZWN0KTsKIH0KIAogdm9pZCBSdW50aW1lT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0KQogewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9i
amVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOworICAgIEJhc2U6OmZpbmlzaENyZWF0
aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNf
aW5mbykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9v
YmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCmluZGV4IGQ4
ZTAwZmMzNDc3YTk5NzdlOGFiNDA3OWRhYWNlNDI5ZjhhM2ZmNTguLmIxMmU4NjExZTUwYjM3M2Ez
YjAxNjNkOWNlNmQyMWI2YTc1ZGVkMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX29iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29i
amVjdC5oCkBAIC0yOCwxNCArMjgsMTMgQEAKIAogI2luY2x1ZGUgIkJyaWRnZUpTQy5oIgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTT2Jq
ZWN0V2l0aEdsb2JhbE9iamVjdC5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIG5hbWVzcGFjZSBCaW5k
aW5ncyB7CiAKLWNsYXNzIFJ1bnRpbWVPYmplY3QgOiBwdWJsaWMgSlNPYmplY3RXaXRoR2xvYmFs
T2JqZWN0IHsKK2NsYXNzIFJ1bnRpbWVPYmplY3QgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7
CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QgQmFzZTsKKyAg
ICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKIAogICAgIHN0YXRpYyBSdW50aW1lT2Jq
ZWN0KiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UpCiAg
ICAgewpAQCAtNzUsNyArNzQsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgUnVudGltZU9i
amVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFBhc3NSZWZQdHI8
SW5zdGFuY2U+KTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0Kik7Ci0g
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3du
UHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdDo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0
UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiBwcml2YXRlOgogICAgIHN0
YXRpYyBKU1ZhbHVlIGZhbGxiYWNrT2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNv
bnN0IElkZW50aWZpZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxMDJmMGNlMzc0MjdjMjMxMmZmOTkzNGI0
NDBiNzczNWEzYTliMzA0Li5mYjU3MTNjMGNhZmQwMmRhZDQzMGI0NTA2NDQ4Mjg1MGJkYWZhMWUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDktMDYgIE9saXZlciBIdW50ICA8
b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgSlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzY4
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92
ZSBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QgdXNhZ2UuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkpTTlBP
YmplY3Q6OkpTTlBPYmplY3QpOgorICAgICAgICAoV2ViS2l0OjpKU05QT2JqZWN0OjpmaW5pc2hD
cmVhdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmpl
Y3QuaDoKKwogMjAxMS0wOS0wNSAgSm9jZWx5biBUdXJjb3R0ZSAgPGpvY2VseW4udHVyY290dGVA
bm9raWEuY29tPgogCiAgICAgICAgIFtRdF1bV0syXSBNYWtlIFRpbGVkRHJhd2luZ0FyZWEgcmVx
dWVzdCB0aWxlcyBvbmx5IGluIHRoZSBkaXJlY3Rpb24gdGhlIHZpZXdwb3J0IGlzIHBhbm5lZCB0
by4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9KU05QT2JqZWN0LmNwcAppbmRleCA2ZWQ2OWExOWM2MDljMGE2Mzg3YTBhZTA0MjNjZDBm
NWRlNTk1ZjM0Li5iYmFmMDRmODhmMjZjM2VmNzAxZjU2ZjIxNjAyMDcxZTkzNTc0NmI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBPYmplY3QuY3BwCkBAIC00OCwxOSArNDgsMjAgQEAgc3RhdGljIE5QSWRlbnRpZmllciBu
cElkZW50aWZpZXJGcm9tSWRlbnRpZmllcihjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyKQog
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxOUElkZW50aWZpZXI+KElkZW50aWZpZXJSZXA6OmdldChp
ZGVudGlmaWVyLnVzdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CiB9CiAKLWNvbnN0IENsYXNzSW5m
byBKU05QT2JqZWN0OjpzX2luZm8gPSB7ICJOUE9iamVjdCIsICZKU09iamVjdFdpdGhHbG9iYWxP
YmplY3Q6OnNfaW5mbywgMCwgMCB9OworY29uc3QgQ2xhc3NJbmZvIEpTTlBPYmplY3Q6OnNfaW5m
byA9IHsgIk5QT2JqZWN0IiwgJkpTTm9uRmluYWxPYmplY3Q6OnNfaW5mbywgMCwgMCB9OwogCiBK
U05QT2JqZWN0OjpKU05QT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE5QUnVu
dGltZU9iamVjdE1hcCogb2JqZWN0TWFwLCBOUE9iamVjdCogbnBPYmplY3QsIFN0cnVjdHVyZSog
c3RydWN0dXJlKQotICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwg
c3RydWN0dXJlKQorICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxPYmplY3QtPmdsb2JhbERh
dGEoKSwgc3RydWN0dXJlKQogICAgICwgbV9vYmplY3RNYXAob2JqZWN0TWFwKQogICAgICwgbV9u
cE9iamVjdChucE9iamVjdCkKIHsKKyAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0ID09IHN0cnVjdHVy
ZS0+Z2xvYmFsT2JqZWN0KCkpOwogICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7CiB9
CiAKIHZvaWQgSlNOUE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKIHsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2Jh
bERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxP
YmplY3QtPmdsb2JhbERhdGEoKSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIAog
ICAgIC8vIFdlIHNob3VsZCBuZXZlciBoYXZlIGFuIE5QSlNPYmplY3QgaW5zaWRlIGEgSlNOUE9i
amVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9KU05QT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvSlNOUE9iamVjdC5oCmluZGV4IDBiYmQ1YjU2MjlkN2I5ZGJjMDgyOTY1N2JmNDJkOGJk
NTlkZjI3NzEuLmYwNjFlOWYzMTcwMGUxMDExNjBhYzI0MTI0YTI5NTQ4ZDM3ZGIzMzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pT
TlBPYmplY3QuaApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBKU05QT2JqZWN0X2gKICNkZWZp
bmUgSlNOUE9iamVjdF9oCiAKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09iamVjdFdpdGhH
bG9iYWxPYmplY3QuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09iamVjdC5oPgogCiB0
eXBlZGVmIHZvaWQqIE5QSWRlbnRpZmllcjsKIHN0cnVjdCBOUE9iamVjdDsKQEAgLTM3LDkgKzM3
LDkgQEAgY2xhc3MgTlBSdW50aW1lT2JqZWN0TWFwOwogICAgIAogLy8gSlNOUE9iamVjdCBpcyBh
IEpTT2JqZWN0IHRoYXQgd3JhcHMgYW4gTlBPYmplY3QuCiAKLWNsYXNzIEpTTlBPYmplY3QgOiBw
dWJsaWMgSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QgeworY2xhc3MgSlNOUE9iamVjdCA6
IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgotICAgIHR5cGVkZWYgSlND
OjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QgQmFzZTsKKyAgICB0eXBlZGVmIEpTQzo6SlNOb25G
aW5hbE9iamVjdCBCYXNlOwogCiAgICAgc3RhdGljIEpTTlBPYmplY3QqIGNyZWF0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgTlBSdW50aW1lT2JqZWN0TWFwKiwgTlBPYmplY3QqKTsKICAgICB+SlNO
UE9iamVjdCgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>