<?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>67174</bug_id>
          
          <creation_ts>2011-08-29 18:36:58 -0700</creation_ts>
          <short_desc>Unzip initialization lists and constructors in JSCell hierarchy (4/7)</short_desc>
          <delta_ts>2011-09-01 16:48:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</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>
          <dependson>67064</dependson>
          <blocked>66567</blocked>
    
    <blocked>67420</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>ggaren</cc>
    
    <cc>gustavo</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>458628</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-08-29 18:36:58 -0700</bug_when>
    <thetext>This is the fourth level of the unzipping process described in https://bugs.webkit.org/show_bug.cgi?id=66567.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459169</commentid>
    <comment_count>1</comment_count>
      <attachid>105687</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-08-30 13:53:33 -0700</bug_when>
    <thetext>Created attachment 105687
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459240</commentid>
    <comment_count>2</comment_count>
      <attachid>105705</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-08-30 14:58:26 -0700</bug_when>
    <thetext>Created attachment 105705
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459611</commentid>
    <comment_count>3</comment_count>
      <attachid>105705</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-08-31 07:30:00 -0700</bug_when>
    <thetext>Comment on attachment 105705
Patch

Attachment 105705 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/9572543</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459777</commentid>
    <comment_count>4</comment_count>
      <attachid>105803</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-08-31 11:34:04 -0700</bug_when>
    <thetext>Created attachment 105803
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460061</commentid>
    <comment_count>5</comment_count>
      <attachid>105803</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-31 16:39:32 -0700</bug_when>
    <thetext>Comment on attachment 105803
Patch

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

&gt; Source/JavaScriptCore/runtime/JSArray.h:77
&gt; +        static JSArray* create(JSGlobalData&amp;, Structure*, unsigned initialLength, ArrayCreationMode createMode);

The argument name here, createMode, is not helpful and should be omitted.

&gt; Source/JavaScriptCore/runtime/JSFunction.h:55
&gt; +        static JSFunction* create(ExecState*, JSGlobalObject*, Structure*, int length, const Identifier&amp; name, NativeFunction);

Is making these functions non-inline a good choice speed-wise?

&gt; Source/JavaScriptCore/runtime/JSStaticScopeObject.h:53
&gt; +        void finishCreation(ExecState* exec, const Identifier&amp; ident, JSValue value, unsigned attributes)

Normally we try not to abbreviate. So the name here would be identifier rather than ident.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460136</commentid>
    <comment_count>6</comment_count>
      <attachid>105874</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-08-31 18:22:55 -0700</bug_when>
    <thetext>Created attachment 105874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460165</commentid>
    <comment_count>7</comment_count>
      <attachid>105882</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-08-31 19:10:57 -0700</bug_when>
    <thetext>Created attachment 105882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460485</commentid>
    <comment_count>8</comment_count>
      <attachid>105882</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-01 08:36:56 -0700</bug_when>
    <thetext>Comment on attachment 105882
Patch

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

&gt; Source/JavaScriptCore/API/JSCallbackObjectFunctions.h:82
&gt; +void JSCallbackObject&lt;Parent&gt;::finishCreation(JSGlobalData&amp; globalData)
&gt; +{
&gt; +    UNUSED_PARAM(globalData);

Why not just leave the parameter name out instead? That’s the best way to mark an argument as unused in C++ functions.

&gt; Source/JavaScriptCore/runtime/DateInstance.cpp:46
&gt; +    finishCreation(exec-&gt;globalData(), jsNumber(timeClip(time)));

I would think we’d want the jsNumber function call inside the finishCreation function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460501</commentid>
    <comment_count>9</comment_count>
      <attachid>105975</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-01 09:04:10 -0700</bug_when>
    <thetext>Created attachment 105975
Fixing review issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460579</commentid>
    <comment_count>10</comment_count>
      <attachid>105990</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-01 10:31:08 -0700</bug_when>
    <thetext>Created attachment 105990
Resetting test bindings results</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460695</commentid>
    <comment_count>11</comment_count>
      <attachid>106010</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-01 12:34:08 -0700</bug_when>
    <thetext>Created attachment 106010
Random improvement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460796</commentid>
    <comment_count>12</comment_count>
      <attachid>106010</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-01 14:49:08 -0700</bug_when>
    <thetext>Comment on attachment 106010
Random improvement

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

Hmmm, there are no changelogs :-(

&gt; Source/JavaScriptCore/runtime/InternalFunction.cpp:47
&gt; +    finishCreation(*globalData, globalObject, name);

Is it intentional the InternalFunction retains the finishCreation in its constructor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460804</commentid>
    <comment_count>13</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-01 14:57:46 -0700</bug_when>
    <thetext>&gt; Hmmm, there are no changelogs :-(

Hmm dunno what happened to them…they were in earlier versions of the patch lol.

&gt; Is it intentional the InternalFunction retains the finishCreation in its constructor?

Yep.  It had its own isolated version of constructorBody() before, and now it&apos;s being changed to finishCreation().  InternalFunction is on the 4th level of the hierarchy below JSCell.  If you look at its immediate superclass, JSObjectWithGlobalObject, its finishCreation() was removed from the constructor, meaning that it needs to be pushed down into the constructor body of InternalFunction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460867</commentid>
    <comment_count>14</comment_count>
      <attachid>106051</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-01 15:54:46 -0700</bug_when>
    <thetext>Created attachment 106051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460922</commentid>
    <comment_count>15</comment_count>
      <attachid>106051</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-01 16:48:31 -0700</bug_when>
    <thetext>Comment on attachment 106051
Patch

Clearing flags on attachment: 106051

Committed r94364: &lt;http://trac.webkit.org/changeset/94364&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460923</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-01 16:48:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105687</attachid>
            <date>2011-08-30 13:53:33 -0700</date>
            <delta_ts>2011-08-30 14:58:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67174-20110830135332.patch</filename>
            <type>text/plain</type>
            <size>93965</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQwOTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcAppbmRleCBmYTlkMjE2ZGQxMTI1MDEyN2Vl
Njg1ZmUxZWM4ZDU5ZmYyNjhjOTllLi45NTA0YWQ4MGQ4NTNmM2M2NTVmODQyOGQ3ZDE2YTY1ZmVj
YjgzMDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuY3BwCkBAIC00Myw2ICs0MywxMiBAQCBKU0NhbGxiYWNrQ29uc3RydWN0b3I6
OkpTQ2FsbGJhY2tDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
YwogICAgICwgbV9jbGFzcyhqc0NsYXNzKQogICAgICwgbV9jYWxsYmFjayhjYWxsYmFjaykKIHsK
KyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QsIGpzQ2xhc3MpOworfQorCit2b2lkIEpT
Q2FsbGJhY2tDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDbGFzc1JlZiBqc0NsYXNzKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChp
bmhlcml0cygmc19pbmZvKSk7CiAgICAgaWYgKG1fY2xhc3MpCiAgICAgICAgIEpTQ2xhc3NSZXRh
aW4oanNDbGFzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuaAppbmRleCA0MGFhYmNmMTkyMTMxZDQxNDdiMDc4Mzg5OTkwOTlmOGExZTUx
ZWRhLi45MTE5MWRiNWY5Njc5OWUyMGNhNDZlOTEwMTRlNWVhNGFjNjY4Y2Q3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmgKQEAgLTUy
LDYgKzUyLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgSlNDYWxsYmFja0NvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgSlNDbGFzc1JlZiwgSlNPYmplY3RDYWxs
QXNDb25zdHJ1Y3RvckNhbGxiYWNrKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
T2JqZWN0KiwgSlNDbGFzc1JlZik7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdz
OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuaAppbmRleCBlZTk5MGEwMmZjZmI5OTRjMWQ0ODFlMjc4NTdlY2MzODA4MDBjNmI1Li45ZWU2
NzkzMDFlNWEyMzhlYTE3MDkzYzljOGQ1ZTJhNWUyMGM3NmM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTI0LDE2ICsxMjQsMjEgQEAgcHJv
dGVjdGVkOgogICAgIC8vIGZ1bmN0aW9uYWxpdHkgaGVyZS4KICAgICB2b2lkKiBvcGVyYXRvciBu
ZXcoc2l6ZV90LCB2b2lkKiBwdHIpIHsgcmV0dXJuIHB0cjsgfQogCisgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oSlNHbG9iYWxEYXRhJik7CisKIHB1YmxpYzoKICAgICB0eXBlZGVmIFBhcmVudCBCYXNl
OwogCiAgICAgc3RhdGljIEpTQ2FsbGJhY2tPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0Ns
YXNzUmVmIGNsYXNzUmVmLCB2b2lkKiBkYXRhKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAo
YWxsb2NhdGVDZWxsPEpTQ2FsbGJhY2tPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBKU0NhbGxiYWNr
T2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBjbGFzc1JlZiwgZGF0YSk7Cisg
ICAgICAgIEpTQ2FsbGJhY2tPYmplY3QqIGNhbGxiYWNrT2JqZWN0ID0gbmV3IChhbGxvY2F0ZUNl
bGw8SlNDYWxsYmFja09iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIEpTQ2FsbGJhY2tPYmplY3QoZXhl
YywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGNsYXNzUmVmLCBkYXRhKTsKKyAgICAgICAgcmV0
dXJuIGNhbGxiYWNrT2JqZWN0OwogICAgIH0KICAgICBzdGF0aWMgSlNDYWxsYmFja09iamVjdCog
Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDbGFzc1JlZiBjbGFzc1JlZiwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNl
bGw8SlNDYWxsYmFja09iamVjdD4oZ2xvYmFsRGF0YS5oZWFwKSkgSlNDYWxsYmFja09iamVjdChn
bG9iYWxEYXRhLCBjbGFzc1JlZiwgc3RydWN0dXJlKTsKKyAgICAgICAgSlNDYWxsYmFja09iamVj
dCogY2FsbGJhY2tPYmplY3QgPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0NhbGxiYWNrT2JqZWN0Pihn
bG9iYWxEYXRhLmhlYXApKSBKU0NhbGxiYWNrT2JqZWN0KGdsb2JhbERhdGEsIGNsYXNzUmVmLCBz
dHJ1Y3R1cmUpOworICAgICAgICByZXR1cm4gY2FsbGJhY2tPYmplY3Q7CiAgICAgfQogCiAgICAg
dm9pZCBzZXRQcml2YXRlKHZvaWQqIGRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAppbmRleCA2OTEwZTU2ZmY4Y2E0
OTk0YjYzMzZhODdhZDg2ZWQwZTE2OGM3Y2E2Li4yMjNkOWI2NWEzNDk3YTI0ZWRiMjA5NWRmOTQ3
N2FhNGNhYTBmZDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tPYmplY3RGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaApAQCAtNTQsOCArNTQsNyBAQCBKU0NhbGxiYWNrT2Jq
ZWN0PFBhcmVudD46OkpTQ2FsbGJhY2tPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9i
amVjdCogZ2xvYgogICAgIDogUGFyZW50KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogICAgICwg
bV9jYWxsYmFja09iamVjdERhdGEoYWRvcHRQdHIobmV3IEpTQ2FsbGJhY2tPYmplY3REYXRhKGRh
dGEsIGpzQ2xhc3MpKSkKIHsKLSAgICBBU1NFUlQoUGFyZW50Ojppbmhlcml0cygmc19pbmZvKSk7
Ci0gICAgaW5pdChleGVjKTsKKyAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3Qp
OwogfQogCiAvLyBHbG9iYWwgb2JqZWN0IGNvbnN0cnVjdG9yLgpAQCAtNjUsNiArNjQsMjIgQEAg
SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpKU0NhbGxiYWNrT2JqZWN0KEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNDbGFzc1JlZgogICAgIDogUGFyZW50KGdsb2JhbERhdGEsIHN0cnVjdHVy
ZSkKICAgICAsIG1fY2FsbGJhY2tPYmplY3REYXRhKGFkb3B0UHRyKG5ldyBKU0NhbGxiYWNrT2Jq
ZWN0RGF0YSgwLCBqc0NsYXNzKSkpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7
Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Cit2b2lkIEpTQ2FsbGJhY2tPYmplY3Q8UGFy
ZW50Pjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xv
YmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOworICAgIEFTU0VSVChQYXJlbnQ6OmluaGVyaXRzKCZz
X2luZm8pKTsKKyAgICBpbml0KGV4ZWMpOworfQorCisvLyBUaGlzIGlzIGp1c3QgZm9yIEdsb2Jh
bCBvYmplY3QsIHNvIHdlIGNhbiBhc3N1bWUgdGhhdCBCYXNlOjpmaW5pc2hDcmVhdGlvbiBpcyBK
U0dsb2JhbE9iamVjdDo6Y29uc3RydWN0b3JCb2R5LgordGVtcGxhdGUgPGNsYXNzIFBhcmVudD4K
K3ZvaWQgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEpCit7CisgICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOwogICAgIEFT
U0VSVChQYXJlbnQ6OmluaGVyaXRzKCZzX2luZm8pKTsKICAgICBBU1NFUlQoUGFyZW50Ojppc0ds
b2JhbE9iamVjdCgpKTsKICAgICBpbml0KHN0YXRpY19jYXN0PEpTR2xvYmFsT2JqZWN0Kj4odGhp
cyktPmdsb2JhbEV4ZWMoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAyODVjOTExNDgy
MjU1NTY3OTA5NGNiY2YxMzMzODdlMjMyNDcyZjMwLi5iZDkzNmYxYzViZDlkODYyYjdmMGY0ZjBh
MDAxNmQ1MTExNGQ1ZjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNDcg
QEAKKzIwMTEtMDgtMzAgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4K
KworICAgICAgICBVbnppcCBpbml0aWFsaXphdGlvbiBsaXN0cyBhbmQgY29uc3RydWN0b3JzIGlu
IEpTQ2VsbCBoaWVyYXJjaHkgKDQvNykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY3MTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQ29tcGxldGVkIHRoZSBmb3VydGggbGV2ZWwgb2YgdGhlIHJlZmFjdG9y
aW5nIHRvIGFkZCBmaW5pc2hDcmVhdGlvbigpIAorICAgICAgICBtZXRob2RzIHRvIGFsbCBjbGFz
c2VzIHdpdGhpbiB0aGUgSlNDZWxsIGhpZXJhcmNoeSB3aXRoIG5vbi10cml2aWFsIAorICAgICAg
ICBjb25zdHJ1Y3RvciBib2RpZXMuCisKKyAgICAgICAgVGhpcyBwcmltYXJpbHkgY29uc2lzdHMg
b2YgcHVzaGluZyB0aGUgY2FsbHMgdG8gZmluaXNoQ3JlYXRpb24oKSBkb3duIAorICAgICAgICBp
bnRvIHRoZSBjb25zdHJ1Y3RvcnMgb2YgdGhlIHN1YmNsYXNzZXMgb2YgdGhlIHNlY29uZCBsZXZl
bCBvZiB0aGUgaGllcmFyY2h5IAorICAgICAgICBhcyB3ZWxsIGFzIHB1bGxpbmcgdGhlIGZpbmlz
aENyZWF0aW9uKCkgY2FsbHMgb3V0IGludG8gdGhlIGNsYXNzJ3MgY29ycmVzcG9uZGluZworICAg
ICAgICBjcmVhdGUoKSBtZXRob2QgaWYgaXQgaGFzIG9uZS4gIERvaW5nIGJvdGggc2ltdWx0YW5l
b3VzbHkgYWxsb3dzIHVzIHRvIAorICAgICAgICBtYWludGFpbiB0aGUgaW52YXJpYW50IHRoYXQg
dGhlIGZpbmlzaENyZWF0aW9uKCkgbWV0aG9kIGNoYWluIGlzIGNhbGxlZCBleGFjdGx5IAorICAg
ICAgICBvbmNlIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgYW4gb2JqZWN0LCBzaW5jZSBjYWxsaW5n
IGl0IGFueSBvdGhlciBudW1iZXIgb2YgCisgICAgICAgIHRpbWVzICgwLCAyLCBvciBtb3JlKSB3
aWxsIGNhdXNlIGFuIGFzc2VydGlvbiBmYWlsdXJlLgorCisgICAgICAgICogQVBJL0pTQ2FsbGJh
Y2tDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6
SlNDYWxsYmFja0NvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja0NvbnN0cnVj
dG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rv
ci5oOgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpT
Q2FsbGJhY2tPYmplY3Q6OmNyZWF0ZSk6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3RG
dW5jdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6OjpKU0NhbGxiYWNrT2JqZWN0KToKKyAgICAgICAg
KEpTQzo6OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuSlNWQUxV
RTY0b25seS5leHA6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWY6Cisg
ICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6
RGVidWdnZXJBY3RpdmF0aW9uOjpEZWJ1Z2dlckFjdGl2YXRpb24pOgorICAgICAgICAoSlNDOjpE
ZWJ1Z2dlckFjdGl2YXRpb246OmNyZWF0ZSk6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJB
Y3RpdmF0aW9uLmg6CisgICAgICAgICogcnVudGltZS9Bcmd1bWVudHMuaDoKKyAgICAgICAgKEpT
Qzo6QXJndW1lbnRzOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpBcmd1bWVudHM6OmNyZWF0ZU5v
UGFyYW1ldGVycyk6CisgICAgICAgIChKU0M6OkFyZ3VtZW50czo6QXJndW1lbnRzKToKKyAgICAg
ICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6QXJyYXlQcm90
b3R5cGU6OkFycmF5UHJvdG90eXBlKToKKyAgICAgICAgKEpTQzo6QXJyYXlQcm90b3R5cGU6OmZp
bmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmg6CisgICAg
ICAgICogcnVudGltZS9Cb29sZWFuT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6Qm9vbGVhbk9i
amVjdDo6Qm9vbGVhbk9iamVjdCk6CisgICAgICAgIChKU0M6OkJvb2xlYW5PYmplY3Q6OmZpbmlz
aENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5PYmplY3QuaDoKKyAgICAgICAg
KiBydW50aW1lL0RhdGVJbnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZTo6
RGF0ZUluc3RhbmNlKToKKyAgICAgICAgKEpTQzo6RGF0ZUluc3RhbmNlOjpmaW5pc2hDcmVhdGlv
bik6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2UuaDoKKyAgICAgICAgKiBydW50aW1l
L0Vycm9ySW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpFcnJvcklu
c3RhbmNlKToKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6Y3JlYXRlKToKKyAgICAgICAg
KiBydW50aW1lL0Vycm9ySW5zdGFuY2UuaDoKKyAgICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90
eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JQcm90b3R5cGU6OkVycm9yUHJvdG90eXBlKToK
KyAgICAgICAgKEpTQzo6RXJyb3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAg
KiBydW50aW1lL0Vycm9yUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9FeGNlcHRpb25I
ZWxwZXJzLmNwcDoKKyAgICAgICAgKEpTQzo6SW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvcjo6SW50
ZXJydXB0ZWRFeGVjdXRpb25FcnJvcik6CisgICAgICAgIChKU0M6OkludGVycnVwdGVkRXhlY3V0
aW9uRXJyb3I6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlRlcm1pbmF0ZWRFeGVjdXRpb25FcnJv
cjo6VGVybWluYXRlZEV4ZWN1dGlvbkVycm9yKToKKyAgICAgICAgKEpTQzo6VGVybWluYXRlZEV4
ZWN1dGlvbkVycm9yOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5jcHA6
CisgICAgICAgIChKU0M6OkV2YWxFeGVjdXRhYmxlOjpFdmFsRXhlY3V0YWJsZSk6CisgICAgICAg
IChKU0M6OlByb2dyYW1FeGVjdXRhYmxlOjpQcm9ncmFtRXhlY3V0YWJsZSk6CisgICAgICAgIChK
U0M6OkZ1bmN0aW9uRXhlY3V0YWJsZTo6RnVuY3Rpb25FeGVjdXRhYmxlKToKKyAgICAgICAgKiBy
dW50aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKEpTQzo6TmF0aXZlRXhlY3V0YWJsZTo6Y3Jl
YXRlKToKKyAgICAgICAgKEpTQzo6TmF0aXZlRXhlY3V0YWJsZTo6TmF0aXZlRXhlY3V0YWJsZSk6
CisgICAgICAgIChKU0M6OkV2YWxFeGVjdXRhYmxlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpQ
cm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRh
YmxlOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHA6Cisg
ICAgICAgIChKU0M6OkludGVybmFsRnVuY3Rpb246OkludGVybmFsRnVuY3Rpb24pOgorICAgICAg
ICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVu
dGltZS9JbnRlcm5hbEZ1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24u
Y3BwOgorICAgICAgICAoSlNDOjpKU0FjdGl2YXRpb246OkpTQWN0aXZhdGlvbik6CisgICAgICAg
IChKU0M6OkpTQWN0aXZhdGlvbjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUv
SlNBY3RpdmF0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0FycmF5LmNwcDoKKyAgICAgICAg
KEpTQzo6SlNBcnJheTo6SlNBcnJheSk6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OmNyZWF0ZSk6
CisgICAgICAgICogcnVudGltZS9KU0FycmF5Lmg6CisgICAgICAgICogcnVudGltZS9KU0J5dGVB
cnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQnl0ZUFycmF5OjpKU0J5dGVBcnJheSk6CisgICAg
ICAgIChKU0M6OkpTQnl0ZUFycmF5OjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5j
dGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OkpTRnVuY3Rpb24pOgorICAgICAg
ICAoSlNDOjpKU0Z1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTRnVu
Y3Rpb246OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmg6CisgICAgICAg
ICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVj
dDo6SlNHbG9iYWxPYmplY3QpOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6ZmluaXNo
Q3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5oOgorICAgICAgICAo
SlNDOjpKU05vdEFuT2JqZWN0OjpKU05vdEFuT2JqZWN0KToKKyAgICAgICAgKEpTQzo6SlNOb3RB
bk9iamVjdDo6Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuY3BwOgorICAg
ICAgICAoSlNDOjpKU09OT2JqZWN0OjpKU09OT2JqZWN0KToKKyAgICAgICAgKEpTQzo6SlNPTk9i
amVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5oOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAg
KEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Qp
OgorICAgICAgICAoSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9u
KToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU1N0YXRp
Y1Njb3BlT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTU3RhdGljU2Nv
cGVPYmplY3Q6OkpTU3RhdGljU2NvcGVPYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNWYXJp
YWJsZU9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU1ZhcmlhYmxlT2JqZWN0OjpKU1ZhcmlhYmxl
T2JqZWN0KToKKyAgICAgICAgKiBydW50aW1lL0pTV3JhcHBlck9iamVjdC5oOgorICAgICAgICAo
SlNDOjpKU1dyYXBwZXJPYmplY3Q6OkpTV3JhcHBlck9iamVjdCk6CisgICAgICAgICogcnVudGlt
ZS9NYXRoT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6TWF0aE9iamVjdDo6TWF0aE9iamVjdCk6
CisgICAgICAgIChKU0M6Ok1hdGhPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBy
dW50aW1lL01hdGhPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL051bWJlck9iamVjdC5jcHA6
CisgICAgICAgIChKU0M6Ok51bWJlck9iamVjdDo6TnVtYmVyT2JqZWN0KToKKyAgICAgICAgKEpT
Qzo6TnVtYmVyT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9OdW1i
ZXJPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHA6CisgICAg
ICAgIChKU0M6Ok9iamVjdFByb3RvdHlwZTo6T2JqZWN0UHJvdG90eXBlKToKKyAgICAgICAgKiBy
dW50aW1lL09iamVjdFByb3RvdHlwZS5oOgorICAgICAgICAoSlNDOjpPYmplY3RQcm90b3R5cGU6
OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OlJlZ0V4cE1hdGNoZXNBcnJheTo6UmVnRXhwTWF0Y2hlc0FycmF5KToKKyAgICAg
ICAgKEpTQzo6UmVnRXhwTWF0Y2hlc0FycmF5OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICog
cnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6UmVnRXhwT2JqZWN0KToKKyAg
ICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVu
dGltZS9SZWdFeHBPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0
aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaWN0RXZhbEFjdGl2YXRpb246OlN0cmljdEV2YWxB
Y3RpdmF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmg6Cisg
ICAgICAgIChKU0M6OlN0cmljdEV2YWxBY3RpdmF0aW9uOjpjcmVhdGUpOgorICAgICAgICAqIHJ1
bnRpbWUvU3RyaW5nT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5nT2JqZWN0OjpTdHJp
bmdPYmplY3QpOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToK
KyAgICAgICAgKiBydW50aW1lL1N0cmluZ09iamVjdC5oOgorCiAyMDExLTA4LTMwICBBZGVtYXIg
ZGUgU291emEgUmVpcyBKci4gIDxhZGVtYXIucmVpc0BvcGVuYm9zc2Eub3JnPgogCiAgICAgICAg
IFtRdF0gRG8gbm90IHVuY29uZGl0aW9uYWxseSB1c2UgcGtnLWNvbmZpZyBpbiAucHJvIGZpbGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuSlNWQUxV
RTY0b25seS5leHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuSlNWQUxV
RTY0b25seS5leHAKaW5kZXggZWFhOWY1MTM5ZjIyZTAzYzgwZWQ3Y2Y0NzkyZTQ4ZGFmOTE2YTYx
MS4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLkpTVkFMVUU2NG9ubHkuZXhwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5KU1ZBTFVFNjRvbmx5LmV4
cApAQCAtMSArMCwwIEBACi1fX1pOM0pTQzEwSlNGdW5jdGlvbkMxRVBOU185RXhlY1N0YXRlRVBO
U18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRWlSS05TXzEwSWRlbnRpZmllckVQRlB2
UzJfRQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5kZXggOWY0YTNi
ZGNhMjEzYjNiNWI1MmY1OGZmNDZiMWIzNzBiMGQ4NWRlNy4uYThmNTNiOWMzMzQ0MGVlMDI5MzE4
YjgxNjY2ZDcxMTNkMzBkNmQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmV4cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUuZXhwCkBAIC0xMTEsNiArMTExLDcgQEAgX19aTjNKU0MxMElkZW50aWZpZXI0ZnJvbUVQTlNf
OUV4ZWNTdGF0ZUVqCiBfX1pOM0pTQzEwSWRlbnRpZmllcjVlcXVhbEVQS04zV1RGMTBTdHJpbmdJ
bXBsRVBLYwogX19aTjNKU0MxMElkZW50aWZpZXI4dG9VSW50MzJFUktOU183VVN0cmluZ0VSYgog
X19aTjNKU0MxMEpTRnVuY3Rpb240bmFtZUVQTlNfOUV4ZWNTdGF0ZUUKK19fWk4zSlNDMTBKU0Z1
bmN0aW9uNmNyZWF0ZUVQTlNfOUV4ZWNTdGF0ZUVQTlNfMTRKU0dsb2JhbE9iamVjdEVQTlNfOVN0
cnVjdHVyZUVpUktOU18xMElkZW50aWZpZXJFUEZQdlMyX0UKIF9fWk4zSlNDMTBKU0Z1bmN0aW9u
NnNfaW5mb0UKIF9fWk4zSlNDMTB0aHJvd0Vycm9yRVBOU185RXhlY1N0YXRlRU5TXzdKU1ZhbHVl
RQogX19aTjNKU0MxMHRocm93RXJyb3JFUE5TXzlFeGVjU3RhdGVFUE5TXzhKU09iamVjdEUKQEAg
LTE5Niw3ICsxOTcsNyBAQCBfX1pOM0pTQzE3Qnl0ZWNvZGVHZW5lcmF0b3IyMXNldER1bXBzR2Vu
ZXJhdGVkQ29kZUViCiBfX1pOM0pTQzE3UHJvcGVydHlOYW1lQXJyYXkzYWRkRVBOM1dURjEwU3Ry
aW5nSW1wbEUKIF9fWk4zSlNDMTdjb25zdHJ1Y3RGdW5jdGlvbkVQTlNfOUV4ZWNTdGF0ZUVQTlNf
MTRKU0dsb2JhbE9iamVjdEVSS05TXzdBcmdMaXN0RVJLTlNfMTBJZGVudGlmaWVyRVJLTlNfN1VT
dHJpbmdFaQogX19aTjNKU0MxN2NyZWF0ZVN5bnRheEVycm9yRVBOU185RXhlY1N0YXRlRVJLTlNf
N1VTdHJpbmdFCi1fX1pOM0pTQzE4RGVidWdnZXJBY3RpdmF0aW9uQzFFUk5TXzEySlNHbG9iYWxE
YXRhRVBOU184SlNPYmplY3RFCitfX1pOM0pTQzE4RGVidWdnZXJBY3RpdmF0aW9uNmNyZWF0ZUVS
TlNfMTJKU0dsb2JhbERhdGFFUE5TXzhKU09iamVjdEUKIF9fWk4zSlNDMThQcm9wZXJ0eURlc2Ny
aXB0b3IxMXNldFdyaXRhYmxlRWIKIF9fWk4zSlNDMThQcm9wZXJ0eURlc2NyaXB0b3IxMnNldFVu
ZGVmaW5lZEV2CiBfX1pOM0pTQzE4UHJvcGVydHlEZXNjcmlwdG9yMTNzZXREZXNjcmlwdG9yRU5T
XzdKU1ZhbHVlRWoKQEAgLTIxOSw4ICsyMjAsOSBAQCBfX1pOM0pTQzIzQWJzdHJhY3RTYW1wbGlu
Z0NvdW50ZXI0ZHVtcEV2CiBfX1pOM0pTQzIzb2JqZWN0UHJvdG9GdW5jVG9TdHJpbmdFUE5TXzlF
eGVjU3RhdGVFCiBfX1pOM0pTQzIzc2V0VXBTdGF0aWNGdW5jdGlvblNsb3RFUE5TXzlFeGVjU3Rh
dGVFUEtOU185SGFzaEVudHJ5RVBOU184SlNPYmplY3RFUktOU18xMElkZW50aWZpZXJFUk5TXzEy
UHJvcGVydHlTbG90RQogX19aTjNKU0MyNER5bmFtaWNHbG9iYWxPYmplY3RTY29wZUMxRVJOU18x
MkpTR2xvYmFsRGF0YUVQTlNfMTRKU0dsb2JhbE9iamVjdEUKK19fWk4zSlNDMjRKU09iamVjdFdp
dGhHbG9iYWxPYmplY3QxNGZpbmlzaENyZWF0aW9uRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfMTRK
U0dsb2JhbE9iamVjdEUKK19fWk4zSlNDMjRKU09iamVjdFdpdGhHbG9iYWxPYmplY3RDMkVSTlNf
MTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFCiBfX1pOM0pTQzI0SlNPYmplY3RXaXRoR2xv
YmFsT2JqZWN0QzJFUE5TXzE0SlNHbG9iYWxPYmplY3RFUE5TXzlTdHJ1Y3R1cmVFCi1fX1pOM0pT
QzI0SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0QzJFUk5TXzEySlNHbG9iYWxEYXRhRVBOU18xNEpT
R2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRQogX19aTjNKU0MyNGNyZWF0ZVN0YWNrT3ZlcmZs
b3dFcnJvckVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDMjVldmFsdWF0ZUluR2xvYmFsQ2FsbEZy
YW1lRVJLTlNfN1VTdHJpbmdFUk5TXzdKU1ZhbHVlRVBOU18xNEpTR2xvYmFsT2JqZWN0RQogX19a
TjNKU0MzNWNyZWF0ZUludGVycnVwdGVkRXhlY3V0aW9uRXhjZXB0aW9uRVBOU18xMkpTR2xvYmFs
RGF0YUUKQEAgLTI2OSwxMiArMjcxLDE0IEBAIF9fWk4zSlNDNkpTTG9ja0MxRVBOU185RXhlY1N0
YXRlRQogX19aTjNKU0M2UmVnRXhwRDFFdgogX19aTjNKU0M2UmVnRXhwNmNyZWF0ZUVSTlNfMTJK
U0dsb2JhbERhdGFFUktOU183VVN0cmluZ0VOU18xMVJlZ0V4cEZsYWdzRQogX19aTjNKU0M3SlNB
cnJheTEzdmlzaXRDaGlsZHJlbkVSTlNfMTFTbG90VmlzaXRvckUKK19fWk4zSlNDN0pTQXJyYXkx
NGZpbmlzaENyZWF0aW9uRVJOU18xMkpTR2xvYmFsRGF0YUUKIF9fWk4zSlNDN0pTQXJyYXkxNXNl
dFN1YmNsYXNzRGF0YUVQdgogX19aTjNKU0M3SlNBcnJheTE4Z2V0T3duUHJvcGVydHlTbG90RVBO
U185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCitfX1pOM0pTQzdKU0FycmF5NmNyZWF0
ZUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFUktOU183QXJnTGlzdEUKK19fWk4z
SlNDN0pTQXJyYXk2Y3JlYXRlRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfOVN0cnVjdHVyZUUKIF9f
Wk4zSlNDN0pTQXJyYXk2c19pbmZvRQogX19aTjNKU0M3SlNBcnJheTlzZXRMZW5ndGhFagogX19a
TjNKU0M3SlNBcnJheUMxRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfOVN0cnVjdHVyZUUKLV9fWk4z
SlNDN0pTQXJyYXlDMUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFUktOU183QXJn
TGlzdEUKIF9fWk4zSlNDN0pTQXJyYXlDMkVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1
cmVFCiBfX1pOM0pTQzdKU0FycmF5RDJFdgogX19aTjNKU0M3SlNWYWx1ZTEzaXNWYWxpZENhbGxl
ZUV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNw
cm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZiBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
ZGVmCmluZGV4IGQxY2ZmNzg2Mzc3YTBkNDEzNjJjZDJlZmI3Yjg1ZWMzOTJlMDViYzQuLjhlNGQy
Y2E2NGJhYzM4NGNlYjhkYjExMzNmYWEwZmIzNjAzMTY1NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZGVmCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCkBAIC05LDExICs5LDkgQEAg
RVhQT1JUUwogICAgID8/MER5bmFtaWNHbG9iYWxPYmplY3RTY29wZUBKU0NAQFFBRUBBQVZKU0ds
b2JhbERhdGFAMUBQQVZKU0dsb2JhbE9iamVjdEAxQEBaICAKICAgICA/PzBJbnRlcm5hbEZ1bmN0
aW9uQEpTQ0BASUFFQFBBVkpTR2xvYmFsRGF0YUAxQFBBVkpTR2xvYmFsT2JqZWN0QDFAUEFWU3Ry
dWN0dXJlQDFAQUJWSWRlbnRpZmllckAxQEBaCiAgICAgPz8wSlNBcnJheUBKU0NAQElBRUBBQVZK
U0dsb2JhbERhdGFAMUBQQVZTdHJ1Y3R1cmVAMUBAWgotICAgID8/MEpTQXJyYXlASlNDQEBJQUVA
QUFWSlNHbG9iYWxEYXRhQDFAUEFWU3RydWN0dXJlQDFAQUJWQXJnTGlzdEAxQEBaCi0gICAgPz8w
SlNGdW5jdGlvbkBKU0NAQEFBRUBQQVZFeGVjU3RhdGVAMUBQQVZKU0dsb2JhbE9iamVjdEAxQFBB
VlN0cnVjdHVyZUAxQEhBQlZJZGVudGlmaWVyQDFAUDZJX0owQFpAWgogICAgID8/MEpTTG9ja0BK
U0NAQFFBRUBQQVZFeGVjU3RhdGVAMUBAWgotICAgID8/MEpTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dEBKU0NAQElBRUBBQVZKU0dsb2JhbERhdGFAMUBQQVZKU0dsb2JhbE9iamVjdEAxQFBBVlN0cnVj
dHVyZUAxQEBaCiAgICAgPz8wSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0QEpTQ0BASUFFQFBBVkpT
R2xvYmFsT2JqZWN0QDFAUEFWU3RydWN0dXJlQDFAQFoKKyAgICA/PzBKU09iamVjdFdpdGhHbG9i
YWxPYmplY3RASlNDQEBJQUVAQUFWSlNHbG9iYWxEYXRhQDFAUEFWU3RydWN0dXJlQDFAQFoKICAg
ICA/PzBNRDVAV1RGQEBRQUVAWFoKICAgICA/PzBNdXRleEBXVEZAQFFBRUBYWgogICAgID8/MFJl
ZkNvdW50ZWRMZWFrQ291bnRlckBXVEZAQFFBRUBQQkRAWgpAQCAtOTUsNyArOTMsMTAgQEAgRVhQ
T1JUUwogICAgID9jb252ZXJ0VVRGMTZUb1VURjhAVW5pY29kZUBXVEZAQFlBP0FXNENvbnZlcnNp
b25SZXN1bHRAMTJAUEFQQl9XUEJfV1BBUEFEUEFEX05AWgogICAgID9jb252ZXJ0VVRGOFRvVVRG
MTZAVW5pY29kZUBXVEZAQFlBP0FXNENvbnZlcnNpb25SZXN1bHRAMTJAUEFQQkRQQkRQQVBBX1dQ
QV9XX05AWgogICAgID9jcmVhdGVAQnl0ZUFycmF5QFdURkBAU0E/QVY/JFBhc3NSZWZQdHJAVkJ5
dGVBcnJheUBXVEZAQEAyQElAWgorICAgID9jcmVhdGVASlNBcnJheUBKU0NAQFNBUEFWMTJAQUFW
SlNHbG9iYWxEYXRhQDJAUEFWU3RydWN0dXJlQDJAQFoKKyAgICA/Y3JlYXRlQEpTQXJyYXlASlND
QEBTQVBBVjEyQEFBVkpTR2xvYmFsRGF0YUAyQFBBVlN0cnVjdHVyZUAyQEFCVkFyZ0xpc3RAMkBA
WgogICAgID9jcmVhdGVASlNCeXRlQXJyYXlASlNDQEBTQVBBVjEyQFBBVkV4ZWNTdGF0ZUAyQFBB
VlN0cnVjdHVyZUAyQFBBVkJ5dGVBcnJheUBXVEZAQEBaCisgICAgP2NyZWF0ZUBKU0Z1bmN0aW9u
QEpTQ0BAU0FQQVYxMkBQQVZFeGVjU3RhdGVAMkBQQVZKU0dsb2JhbE9iamVjdEAyQFBBVlN0cnVj
dHVyZUAyQEhBQlZJZGVudGlmaWVyQDJAUDZJX0owQFpAWgogICAgID9jcmVhdGVASlNHbG9iYWxE
YXRhQEpTQ0BAU0E/QVY/JFBhc3NSZWZQdHJAVkpTR2xvYmFsRGF0YUBKU0NAQEBXVEZAQFc0VGhy
ZWFkU3RhY2tUeXBlQDJAVzRIZWFwU2l6ZUAyQEBaCiAgICAgP2NyZWF0ZUBPcGFxdWVKU1N0cmlu
Z0BAU0E/QVY/JFBhc3NSZWZQdHJAVU9wYXF1ZUpTU3RyaW5nQEBAV1RGQEBBQlZVU3RyaW5nQEpT
Q0BAQFoKICAgICA/Y3JlYXRlQFJlZ0V4cEBKU0NAQFNBUEFWMTJAQUFWSlNHbG9iYWxEYXRhQDJA
QUJWVVN0cmluZ0AyQFc0UmVnRXhwRmxhZ3NAMkBAWgpAQCAtMTY3LDYgKzE2OCw3IEBAIEVYUE9S
VFMKICAgICA/ZmFzdFplcm9lZE1hbGxvY0BXVEZAQFlBUEFYSUBaCiAgICAgP2ZpbGxHZXR0ZXJQ
cm9wZXJ0eVNsb3RASlNPYmplY3RASlNDQEBRQUVYQUFWUHJvcGVydHlTbG90QDJAUEFWPyRXcml0
ZUJhcnJpZXJCYXNlQFc0VW5rbm93bkBKU0NAQEAyQEBaCiAgICAgP2ZpbmFsaXplQFdlYWtIYW5k
bGVPd25lckBKU0NAQFVBRVhWPyRIYW5kbGVAVzRVbmtub3duQEpTQ0BAQDJAUEFYQFoKKyAgICA/
ZmluaXNoQ3JlYXRpb25ASlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0QEpTQ0BASUFFWEFBVkpTR2xv
YmFsRGF0YUAyQFBBVkpTR2xvYmFsT2JqZWN0QDJAQFoKICAgICA/Zm9jdXNAUHJvZmlsZUBKU0NA
QFFBRVhQQlZQcm9maWxlTm9kZUAyQEBaCiAgICAgP2Zyb21ASWRlbnRpZmllckBKU0NAQFNBP0FW
MTJAUEFWRXhlY1N0YXRlQDJASEBaCiAgICAgP2Zyb21ASWRlbnRpZmllckBKU0NAQFNBP0FWMTJA
UEFWRXhlY1N0YXRlQDJASUBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCmluZGV4IGFlOGE1YWNkNmE4NTcwYWQ3MzdjZTBl
MDBjYzlkNWE2OGE5NDA5ZGQuLmE3MTAxZGNiNmJhYTQwZmY0ZmUwZWZhMzJkMWQ1NWI2OGE5NDE0
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFj
dGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dl
ckFjdGl2YXRpb24uY3BwCkBAIC0zMCwxMCArMzAsMTYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAK
LURlYnVnZ2VyQWN0aXZhdGlvbjo6RGVidWdnZXJBY3RpdmF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNPYmplY3QqIGFjdGl2YXRpb24pCitEZWJ1Z2dlckFjdGl2YXRpb246OkRlYnVn
Z2VyQWN0aXZhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCiAgICAgOiBKU05vbkZpbmFs
T2JqZWN0KGdsb2JhbERhdGEsIGdsb2JhbERhdGEuZGVidWdnZXJBY3RpdmF0aW9uU3RydWN0dXJl
LmdldCgpKQogewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGFjdGl2YXRpb24pOwor
fQorCitEZWJ1Z2dlckFjdGl2YXRpb24qIERlYnVnZ2VyQWN0aXZhdGlvbjo6Y3JlYXRlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNPYmplY3QqIG9iamVjdCkKK3sKKyAgICBEZWJ1Z2dlckFj
dGl2YXRpb24qIGFjdGl2YXRpb24gPSBuZXcgKGFsbG9jYXRlQ2VsbDxEZWJ1Z2dlckFjdGl2YXRp
b24+KGdsb2JhbERhdGEuaGVhcCkpIERlYnVnZ2VyQWN0aXZhdGlvbihnbG9iYWxEYXRhKTsKKyAg
ICBhY3RpdmF0aW9uLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBvYmplY3QpOworICAgIHJl
dHVybiBhY3RpdmF0aW9uOwogfQogCiB2b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6ZmluaXNoQ3Jl
YXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU09iamVjdCogYWN0aXZhdGlvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRp
b24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24u
aAppbmRleCAzNDQ0YmQ4NGU1ZTZjMGE0YzRmZDJjYzgwOWY3ZGYyOGM1ZDhkNTMzLi5kODNiMmY3
MGZjNGIwYjhhYTU5OWRmNDE0YzVmMDcyYWNkOTg0ZDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCkBAIC0zNCwxMiArMzQs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSlNOb25G
aW5hbE9iamVjdCBCYXNlOwogCi0gICAgICAgIHN0YXRpYyBEZWJ1Z2dlckFjdGl2YXRpb24qIGNy
ZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTT2JqZWN0KiBvYmplY3QpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIERlYnVnZ2VyQWN0aXZhdGlvbiogYWN0aXZhdGlvbiA9IG5ldyAoYWxs
b2NhdGVDZWxsPERlYnVnZ2VyQWN0aXZhdGlvbj4oZ2xvYmFsRGF0YS5oZWFwKSkgRGVidWdnZXJB
Y3RpdmF0aW9uKGdsb2JhbERhdGEsIG9iamVjdCk7Ci0gICAgICAgICAgICByZXR1cm4gYWN0aXZh
dGlvbjsKLSAgICAgICAgfQotCisgICAgICAgIHN0YXRpYyBEZWJ1Z2dlckFjdGl2YXRpb24qIGNy
ZWF0ZShKU0dsb2JhbERhdGEmLCBKU09iamVjdCopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlz
aXRDaGlsZHJlbihTbG90VmlzaXRvciYpOwogICAgICAgICB2aXJ0dWFsIFVTdHJpbmcgY2xhc3NO
YW1lKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
QEAgLTY0LDcgKzU5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oSlNHbG9iYWxEYXRhJiwgSlNPYmplY3QqIGFjdGl2YXRpb24pOwogCiAgICAgcHJpdmF0
ZToKLSAgICAgICAgRGVidWdnZXJBY3RpdmF0aW9uKEpTR2xvYmFsRGF0YSYsIEpTT2JqZWN0Kik7
CisgICAgICAgIERlYnVnZ2VyQWN0aXZhdGlvbihKU0dsb2JhbERhdGEmKTsKICAgICAgICAgV3Jp
dGVCYXJyaWVyPEpTQWN0aXZhdGlvbj4gbV9hY3RpdmF0aW9uOwogICAgIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKaW5kZXggMDlkNTVmMjE2MzU1NTQxZTRi
ZGRmYjIyMjU4MWI3NmYwOTMxODg3ZS4uN2QwYWYzZGU0ZjI4NWZkNGI2NmMwOGExZmJjN2U4MWU1
MjRkYzFmMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1l
bnRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKQEAg
LTY0LDEyICs2NCwxNCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIEFyZ3VtZW50
cyogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CiAgICAgICAgIHsKICAgICAgICAgICAgIEFyZ3VtZW50cyogYXJndW1lbnRzID0gbmV3IChhbGxv
Y2F0ZUNlbGw8QXJndW1lbnRzPihnbG9iYWxEYXRhLmhlYXApKSBBcmd1bWVudHMoY2FsbEZyYW1l
KTsKKyAgICAgICAgICAgIGFyZ3VtZW50cy0+ZmluaXNoQ3JlYXRpb24oY2FsbEZyYW1lKTsKICAg
ICAgICAgICAgIHJldHVybiBhcmd1bWVudHM7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAg
IHN0YXRpYyBBcmd1bWVudHMqIGNyZWF0ZU5vUGFyYW1ldGVycyhKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogICAgICAgICB7CiAgICAgICAgICAgICBBcmd1
bWVudHMqIGFyZ3VtZW50cyA9IG5ldyAoYWxsb2NhdGVDZWxsPEFyZ3VtZW50cz4oZ2xvYmFsRGF0
YS5oZWFwKSkgQXJndW1lbnRzKGNhbGxGcmFtZSwgTm9QYXJhbWV0ZXJzKTsKKyAgICAgICAgICAg
IGFyZ3VtZW50cy0+ZmluaXNoQ3JlYXRpb24oY2FsbEZyYW1lLCBOb1BhcmFtZXRlcnMpOwogICAg
ICAgICAgICAgcmV0dXJuIGFyZ3VtZW50czsKICAgICAgICAgfQogCkBAIC0xNjYsMTQgKzE2OCwx
MiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGNhbGxGcmFt
ZS0+Z2xvYmFsRGF0YSgpLCBjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+YXJndW1l
bnRzU3RydWN0dXJlKCkpCiAgICAgICAgICwgZChhZG9wdFB0cihuZXcgQXJndW1lbnRzRGF0YSkp
CiAgICAgewotICAgICAgICBmaW5pc2hDcmVhdGlvbihjYWxsRnJhbWUpOwogICAgIH0KIAogICAg
IGlubGluZSBBcmd1bWVudHM6OkFyZ3VtZW50cyhDYWxsRnJhbWUqIGNhbGxGcmFtZSwgTm9QYXJh
bWV0ZXJzVHlwZSkKICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGNhbGxGcmFtZS0+Z2xvYmFs
RGF0YSgpLCBjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+YXJndW1lbnRzU3RydWN0
dXJlKCkpCiAgICAgICAgICwgZChhZG9wdFB0cihuZXcgQXJndW1lbnRzRGF0YSkpCiAgICAgewot
ICAgICAgICBmaW5pc2hDcmVhdGlvbihjYWxsRnJhbWUsIE5vUGFyYW1ldGVycyk7CiAgICAgfQog
ICAgIAogICAgIGlubGluZSB2b2lkIEFyZ3VtZW50czo6ZmluaXNoQ3JlYXRpb24oQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVBy
b3RvdHlwZS5jcHAKaW5kZXggNzhjZTAxMmQxYjg1Y2Y0YzY0NzA1MjBkM2UwNjM4Y2Y2Yzc1Yjk4
Yy4uOTk2NzRiYjIzYjQ5ODE4YjJmM2EzNDg0YzI2NmUwMTM5ZDg2ZWY0NiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtMTE3LDYg
KzExNywxMiBAQCBjb25zdCBDbGFzc0luZm8gQXJyYXlQcm90b3R5cGU6OnNfaW5mbyA9IHsiQXJy
YXkiLCAmSlNBcnJheTo6c19pbmZvLCAwLCBFeGVjU3RhdAogQXJyYXlQcm90b3R5cGU6OkFycmF5
UHJvdG90eXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0
dXJlKQogICAgIDogSlNBcnJheShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJl
KQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgQXJyYXlQ
cm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7
CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpOwog
ICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xv
YmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIDAsIGdsb2JhbE9iamVjdCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaAppbmRleCAxMjRjNjFhYzRk
Yzc5ODM4NWRlZWE3ODdkZDY0ZDViY2I2ZmJhMjU4Li45YTYyOGUwYzY5M2NhOWQ3N2U3NzZhODZh
OTlkODJhMzA1YjdjN2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
cmF5UHJvdG90eXBlLmgKQEAgLTQ5LDYgKzQ5LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IH0KIAogICAgIHByb3RlY3RlZDoKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2Jh
bE9iamVjdCopOworCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNTbG90
Q291bnQgPSBKU0FycmF5OjpBbm9ueW1vdXNTbG90Q291bnQgKyAxOwogICAgIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAKaW5kZXggZTI0
YTMwYTRiYjU0YWU1MDBlZDBlOWQ3MTY1ZmM5Y2U3YTVkOWE2My4uYjllMzNkYzQ4NDI5OGI2Y2Vl
Njc0ZTE4ZDU0YTg3ZjYyZGFkZmQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAKQEAgLTMwLDYgKzMwLDEyIEBAIGNvbnN0IENsYXNzSW5m
byBCb29sZWFuT2JqZWN0OjpzX2luZm8gPSB7ICJCb29sZWFuIiwgJkpTV3JhcHBlck9iamVjdDo6
c19pbmZvLCAwCiBCb29sZWFuT2JqZWN0OjpCb29sZWFuT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU1dyYXBwZXJPYmplY3QoZ2xv
YmFsRGF0YSwgc3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwor
fQorCit2b2lkIEJvb2xlYW5PYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICBB
U1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Cb29sZWFuT2JqZWN0LmgKaW5kZXggNzBlZDEyNjEyY2ZlOTU3MzdhMDEzZTBkN2M3
NDYzMWNiOWMwNjdlZS4uODQ2MTBkOWI4MWY1MGUxZGFiOGQ4MzQxNWRkNDc1Mjg1NDg5N2U1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuaApAQCAt
MjgsNiArMjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBCb29sZWFuT2JqZWN0IDog
cHVibGljIEpTV3JhcHBlck9iamVjdCB7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBCb29sZWFu
T2JqZWN0KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSopOworICAgICAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKEpTR2xvYmFsRGF0YSYpOwogCiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpT
V3JhcHBlck9iamVjdCBCYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZUluc3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Rh
dGVJbnN0YW5jZS5jcHAKaW5kZXggZDhjYTA3MjQ5MWI4NTgzZGZjODFlMTI5NWEyZDhiMzkyYTY0
NDdkZi4uMmVjNzIxZDliNWI0OTY3ZDhlMTM4Mjg0MTM4MTEyNzIzYThkYmNiNSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuY3BwCkBAIC0zNywxNSAr
MzcsMjAgQEAgY29uc3QgQ2xhc3NJbmZvIERhdGVJbnN0YW5jZTo6c19pbmZvID0geyJEYXRlIiwg
JkpTV3JhcHBlck9iamVjdDo6c19pbmZvLCAwLCAwfTsKIERhdGVJbnN0YW5jZTo6RGF0ZUluc3Rh
bmNlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU1dyYXBw
ZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7Ci0gICAgQVNTRVJUKGlu
aGVyaXRzKCZzX2luZm8pKTsKLSAgICBzZXRJbnRlcm5hbFZhbHVlKGV4ZWMtPmdsb2JhbERhdGEo
KSwganNOYU4oKSk7CisgICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc05h
TigpKTsKIH0KIAogRGF0ZUluc3RhbmNlOjpEYXRlSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgZG91YmxlIHRpbWUpCiAgICAgOiBKU1dyYXBwZXJPYmplY3Qo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBqc051bWJlcih0aW1lQ2xpcCh0aW1lKSkpOworfQorCit2b2lkIERh
dGVJbnN0YW5jZTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1Zh
bHVlIHZhbHVlKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAg
IEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgc2V0SW50ZXJuYWxWYWx1ZShleGVjLT5n
bG9iYWxEYXRhKCksIGpzTnVtYmVyKHRpbWVDbGlwKHRpbWUpKSk7CisgICAgc2V0SW50ZXJuYWxW
YWx1ZShnbG9iYWxEYXRhLCB2YWx1ZSk7CiB9CiAKIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBE
YXRlSW5zdGFuY2U6OmNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1lKEV4ZWNTdGF0ZSogZXhlYykg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0
YW5jZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKaW5k
ZXggYWYyZGZhMDUwYjMzMjU2YjIzOGM5ZDMwZDZjYzJmYWVjYmRhMzYxYi4uNDU2ZDM1ZDEzOWEy
ZTIzNDc2OGU4OTJjMTMwYWE1YTJlMTVmMDBmNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKQEAgLTMzLDYgKzMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBEYXRlSW5zdGFuY2UoRXhlY1N0YXRlKiwgU3RydWN0
dXJlKiwgZG91YmxlKTsKICAgICAgICAgRGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSosIFN0cnVjdHVy
ZSopOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIEpTVmFsdWUp
OwogICAgICAgICAKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSlNXcmFwcGVyT2JqZWN0
IEJhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvcklu
c3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2Uu
Y3BwCmluZGV4IDNlMDMzN2I4OTRkMzUzN2FlMTJlZjU5NWJhOTU5MWQ4M2U1YWQyMGYuLmIxNTRh
YTNiYTA4ODc3NmYxZGQ0OWUyN2Q2ZmE4OTA1ZDdiMTMxM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCkBAIC0yOSwyNiArMjksMjMgQEAg
RXJyb3JJbnN0YW5jZTo6RXJyb3JJbnN0YW5jZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0
cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBz
dHJ1Y3R1cmUpCiAgICAgLCBtX2FwcGVuZFNvdXJjZVRvTWVzc2FnZShmYWxzZSkKIHsKLSAgICBm
aW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBVU3RyaW5nKCIiLCAwKSk7Ci19Ci0KLUVycm9ySW5z
dGFuY2U6OkVycm9ySW5zdGFuY2UoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgY29uc3QgVVN0cmluZyYgbWVzc2FnZSkKLSAgICA6IEpTTm9uRmluYWxPYmpl
Y3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQotICAgICwgbV9hcHBlbmRTb3VyY2VUb01lc3NhZ2Uo
ZmFsc2UpCi17Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgbWVzc2FnZSk7CiB9CiAK
IEVycm9ySW5zdGFuY2UqIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBVU3RyaW5nJiBtZXNzYWdlKQogewot
ICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxFcnJvckluc3RhbmNlPihnbG9iYWxEYXRhLmhl
YXApKSBFcnJvckluc3RhbmNlKGdsb2JhbERhdGEsIHN0cnVjdHVyZSwgbWVzc2FnZSk7CisgICAg
RXJyb3JJbnN0YW5jZSogaW5zdGFuY2UgPSBuZXcgKGFsbG9jYXRlQ2VsbDxFcnJvckluc3RhbmNl
PihnbG9iYWxEYXRhLmhlYXApKSBFcnJvckluc3RhbmNlKGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7
CisgICAgaW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIG1lc3NhZ2UpOworICAg
IHJldHVybiBpbnN0YW5jZTsKIH0KIAogRXJyb3JJbnN0YW5jZSogRXJyb3JJbnN0YW5jZTo6Y3Jl
YXRlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTVmFsdWUgbWVzc2Fn
ZSkKIHsKKyAgICBFcnJvckluc3RhbmNlKiBpbnN0YW5jZSA9IG5ldyAoYWxsb2NhdGVDZWxsPEVy
cm9ySW5zdGFuY2U+KCpleGVjLT5oZWFwKCkpKSBFcnJvckluc3RhbmNlKGV4ZWMtPmdsb2JhbERh
dGEoKSwgc3RydWN0dXJlKTsKICAgICBpZiAobWVzc2FnZS5pc1VuZGVmaW5lZCgpKQotICAgICAg
ICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8RXJyb3JJbnN0YW5jZT4oKmV4ZWMtPmhlYXAoKSkp
IEVycm9ySW5zdGFuY2UoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpOwotICAgIHJldHVy
biBjcmVhdGUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUsIG1lc3NhZ2UudG9TdHJpbmco
ZXhlYykpOworICAgICAgICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0
YSgpLCBVU3RyaW5nKCIiLCAwKSk7CisgICAgZWxzZQorICAgICAgICBpbnN0YW5jZS0+ZmluaXNo
Q3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBtZXNzYWdlLnRvU3RyaW5nKGV4ZWMpKTsKKyAg
ICByZXR1cm4gaW5zdGFuY2U7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCmluZGV4IDA2YTk1MzIxM2NhNWJl
NWI0NTFhM2RjOGExMWU5MmRhYTEyNzZmOTIuLmE2YTczNzg1NDQ1OGQwNTRiNWEwMGU0YzM0NDFi
MDhhOTdhNTAzYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9ySW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvcklu
c3RhbmNlLmgKQEAgLTQ4LDcgKzQ4LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcm90ZWN0
ZWQ6CiAgICAgICAgIGV4cGxpY2l0IEVycm9ySW5zdGFuY2UoSlNHbG9iYWxEYXRhJiwgU3RydWN0
dXJlKik7Ci0gICAgICAgIGV4cGxpY2l0IEVycm9ySW5zdGFuY2UoSlNHbG9iYWxEYXRhJiwgU3Ry
dWN0dXJlKiwgY29uc3QgVVN0cmluZyYpOwogCiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBVU3RyaW5nJiBtZXNzYWdlKQogICAgICAg
ICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5j
cHAKaW5kZXggMzg2MDY4YmMzZTc4ZjdiYmRkYjI0YzM0N2M5ZDFmZmQ3Y2VkYTgxMS4uNjk4Njc1
MjRjNGNlN2VmNWM3NjNiNmE1MjcyZTcxNmNlODQ5NTc5YyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcApAQCAtNTMsMTEgKzUzLDEyIEBA
IEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoRXJyb3JQcm90b3R5cGUpOwogRXJyb3JQcm90b3R5
cGU6OkVycm9yUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBFcnJvckluc3RhbmNlKGV4ZWMt
Pmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogewotICAgIGNvbnN0cnVjdG9yQm9keShleGVjLCBn
bG9iYWxPYmplY3QpOworICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiB9
CiAKLXZvaWQgRXJyb3JQcm90b3R5cGU6OmNvbnN0cnVjdG9yQm9keShFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit2b2lkIEVycm9yUHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
CiB7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCAiIik7CiAg
ICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubmFtZSwganNOb250cml2aWFsU3RyaW5nKGV4
ZWMsICJFcnJvciIpLCBEb250RW51bSk7CiAgICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxEYXRhKCksIDAsIGdsb2JhbE9iamVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaAppbmRleCA5ODM1NzJiNjIyM2E3YmQzOGZj
M2U1YWExODU2OWJjMDg0NDBlZDc4Li5kN2IxNTIyNWM4MThmMTJkZDFiNDYzZmUxZjU0NzA4Y2Rm
Y2Y0OWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclBy
b3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90
eXBlLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcm90ZWN0ZWQ6
CiAgICAgICAgIEVycm9yUHJvdG90eXBlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlKik7Ci0gICAgICAgIHZvaWQgY29uc3RydWN0b3JCb2R5KEV4ZWNTdGF0ZSosIEpTR2xv
YmFsT2JqZWN0Kik7CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgSlNH
bG9iYWxPYmplY3QqKTsKIAogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBFcnJvckluc3RhbmNlOjpTdHJ1
Y3R1cmVGbGFnczsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFub255bW91c1Nsb3RD
b3VudCA9IEVycm9ySW5zdGFuY2U6OkFub255bW91c1Nsb3RDb3VudCArIDE7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCmluZGV4IGI1
OGQ4OTUxN2UzN2VkYmFiMjc5NDAzMDExMTZmZTNjMjIzYzM0ODIuLjRiYzRmYWUwNjA0Y2I2MjE4
YmQ5NDBlYzJhZjM0YWVkYWRhM2RmMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCkBAIC00Niw3ICs0Niw2IEBAIHByaXZhdGU6
CiAgICAgSW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvcihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEp
CiAgICAgICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLmludGVy
cnVwdGVkRXhlY3V0aW9uRXJyb3JTdHJ1Y3R1cmUuZ2V0KCkpCiAgICAgewotICAgICAgICBmaW5p
c2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICB9CiAKIHB1YmxpYzoKQEAgLTU0LDcgKzUzLDkg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3IqIGNyZWF0
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChh
bGxvY2F0ZUNlbGw8SW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvcj4oZ2xvYmFsRGF0YS5oZWFwKSkg
SW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvcihnbG9iYWxEYXRhKTsKKyAgICAgICAgSW50ZXJydXB0
ZWRFeGVjdXRpb25FcnJvciogZXJyb3IgPSBuZXcgKGFsbG9jYXRlQ2VsbDxJbnRlcnJ1cHRlZEV4
ZWN1dGlvbkVycm9yPihnbG9iYWxEYXRhLmhlYXApKSBJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9y
KGdsb2JhbERhdGEpOworICAgICAgICBlcnJvci0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7
CisgICAgICAgIHJldHVybiBlcnJvcjsKICAgICB9CiAKICAgICB2aXJ0dWFsIENvbXBsVHlwZSBl
eGNlcHRpb25UeXBlKCkgY29uc3QgeyByZXR1cm4gSW50ZXJydXB0ZWQ7IH0KQEAgLTcyLDcgKzcz
LDYgQEAgcHJpdmF0ZToKICAgICBUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3IoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhKQogICAgICAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgZ2xv
YmFsRGF0YS50ZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3JTdHJ1Y3R1cmUuZ2V0KCkpCiAgICAgewot
ICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICB9CiAKIHB1YmxpYzoKQEAg
LTgwLDcgKzgwLDkgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFRlcm1pbmF0ZWRFeGVjdXRpb25F
cnJvciogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3I+KGdsb2JhbERh
dGEuaGVhcCkpIFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcihnbG9iYWxEYXRhKTsKKyAgICAgICAg
VGVybWluYXRlZEV4ZWN1dGlvbkVycm9yKiBlcnJvciA9IG5ldyAoYWxsb2NhdGVDZWxsPFRlcm1p
bmF0ZWRFeGVjdXRpb25FcnJvcj4oZ2xvYmFsRGF0YS5oZWFwKSkgVGVybWluYXRlZEV4ZWN1dGlv
bkVycm9yKGdsb2JhbERhdGEpOworICAgICAgICBlcnJvci0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFs
RGF0YSk7CisgICAgICAgIHJldHVybiBlcnJvcjsKICAgICB9CiAKICAgICB2aXJ0dWFsIENvbXBs
VHlwZSBleGNlcHRpb25UeXBlKCkgY29uc3QgeyByZXR1cm4gVGVybWluYXRlZDsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAppbmRleCAzODk3ZTkzNjhi
MmY5MDc5YWE1YjkyZjJmZDQwMjE3Y2U2MGUwMGUyLi41NjE3NTIyMzA5NmEyZjI2MjM1Y2U3YjA3
MTRlOTY2M2RlYzk4MTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FeGVjdXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVj
dXRhYmxlLmNwcApAQCAtMTI3LDcgKzEyNyw2IEBAIGNvbnN0IENsYXNzSW5mbyBFdmFsRXhlY3V0
YWJsZTo6c19pbmZvID0geyAiRXZhbEV4ZWN1dGFibGUiLCAmU2NyaXB0RXhlY3V0YWJsZTo6CiBF
dmFsRXhlY3V0YWJsZTo6RXZhbEV4ZWN1dGFibGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTb3Vy
Y2VDb2RlJiBzb3VyY2UsIGJvb2wgaW5TdHJpY3RDb250ZXh0KQogICAgIDogU2NyaXB0RXhlY3V0
YWJsZShleGVjLT5nbG9iYWxEYXRhKCkuZXZhbEV4ZWN1dGFibGVTdHJ1Y3R1cmUuZ2V0KCksIGV4
ZWMsIHNvdXJjZSwgaW5TdHJpY3RDb250ZXh0KQogewotICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMt
Pmdsb2JhbERhdGEoKSk7CiB9CiAKIEV2YWxFeGVjdXRhYmxlOjp+RXZhbEV4ZWN1dGFibGUoKQpA
QCAtMTM5LDcgKzEzOCw2IEBAIGNvbnN0IENsYXNzSW5mbyBQcm9ncmFtRXhlY3V0YWJsZTo6c19p
bmZvID0geyAiUHJvZ3JhbUV4ZWN1dGFibGUiLCAmU2NyaXB0RXhlY3V0CiBQcm9ncmFtRXhlY3V0
YWJsZTo6UHJvZ3JhbUV4ZWN1dGFibGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2Rl
JiBzb3VyY2UpCiAgICAgOiBTY3JpcHRFeGVjdXRhYmxlKGV4ZWMtPmdsb2JhbERhdGEoKS5wcm9n
cmFtRXhlY3V0YWJsZVN0cnVjdHVyZS5nZXQoKSwgZXhlYywgc291cmNlLCBmYWxzZSkKIHsKLSAg
ICBmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOwogfQogCiBQcm9ncmFtRXhlY3V0
YWJsZTo6flByb2dyYW1FeGVjdXRhYmxlKCkKQEAgLTE0OCw3ICsxNDYsNyBAQCBQcm9ncmFtRXhl
Y3V0YWJsZTo6flByb2dyYW1FeGVjdXRhYmxlKCkKIAogY29uc3QgQ2xhc3NJbmZvIEZ1bmN0aW9u
RXhlY3V0YWJsZTo6c19pbmZvID0geyAiRnVuY3Rpb25FeGVjdXRhYmxlIiwgJlNjcmlwdEV4ZWN1
dGFibGU6OnNfaW5mbywgMCwgMCB9OwogCi1GdW5jdGlvbkV4ZWN1dGFibGU6OkZ1bmN0aW9uRXhl
Y3V0YWJsZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXImIG5hbWUs
IGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBmb3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0
aW9uUGFyYW1ldGVycyogcGFyYW1ldGVycywgYm9vbCBpblN0cmljdENvbnRleHQsIGludCBmaXJz
dExpbmUsIGludCBsYXN0TGluZSkKK0Z1bmN0aW9uRXhlY3V0YWJsZTo6RnVuY3Rpb25FeGVjdXRh
YmxlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29u
c3QgU291cmNlQ29kZSYgc291cmNlLCBib29sIGZvcmNlVXNlc0FyZ3VtZW50cywgRnVuY3Rpb25Q
YXJhbWV0ZXJzKiBwYXJhbWV0ZXJzLCBib29sIGluU3RyaWN0Q29udGV4dCkKICAgICA6IFNjcmlw
dEV4ZWN1dGFibGUoZ2xvYmFsRGF0YS5mdW5jdGlvbkV4ZWN1dGFibGVTdHJ1Y3R1cmUuZ2V0KCks
IGdsb2JhbERhdGEsIHNvdXJjZSwgaW5TdHJpY3RDb250ZXh0KQogICAgICwgbV9udW1DYXB0dXJl
ZFZhcmlhYmxlcygwKQogICAgICwgbV9mb3JjZVVzZXNBcmd1bWVudHMoZm9yY2VVc2VzQXJndW1l
bnRzKQpAQCAtMTU2LDEwICsxNTQsOSBAQCBGdW5jdGlvbkV4ZWN1dGFibGU6OkZ1bmN0aW9uRXhl
Y3V0YWJsZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpZQogICAgICwg
bV9uYW1lKG5hbWUpCiAgICAgLCBtX3N5bWJvbFRhYmxlKDApCiB7Ci0gICAgZmluaXNoQ3JlYXRp
b24oZ2xvYmFsRGF0YSwgbmFtZSwgZmlyc3RMaW5lLCBsYXN0TGluZSk7CiB9CiAKLUZ1bmN0aW9u
RXhlY3V0YWJsZTo6RnVuY3Rpb25FeGVjdXRhYmxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBib29sIGZvcmNlVXNlc0Fy
Z3VtZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzLCBib29sIGluU3RyaWN0Q29u
dGV4dCwgaW50IGZpcnN0TGluZSwgaW50IGxhc3RMaW5lKQorRnVuY3Rpb25FeGVjdXRhYmxlOjpG
dW5jdGlvbkV4ZWN1dGFibGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBuYW1l
LCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5j
dGlvblBhcmFtZXRlcnMqIHBhcmFtZXRlcnMsIGJvb2wgaW5TdHJpY3RDb250ZXh0KQogICAgIDog
U2NyaXB0RXhlY3V0YWJsZShleGVjLT5nbG9iYWxEYXRhKCkuZnVuY3Rpb25FeGVjdXRhYmxlU3Ry
dWN0dXJlLmdldCgpLCBleGVjLCBzb3VyY2UsIGluU3RyaWN0Q29udGV4dCkKICAgICAsIG1fbnVt
Q2FwdHVyZWRWYXJpYWJsZXMoMCkKICAgICAsIG1fZm9yY2VVc2VzQXJndW1lbnRzKGZvcmNlVXNl
c0FyZ3VtZW50cykKQEAgLTE2Nyw3ICsxNjQsNiBAQCBGdW5jdGlvbkV4ZWN1dGFibGU6OkZ1bmN0
aW9uRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsCiAg
ICAgLCBtX25hbWUobmFtZSkKICAgICAsIG1fc3ltYm9sVGFibGUoMCkKIHsKLSAgICBmaW5pc2hD
cmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIG5hbWUsIGZpcnN0TGluZSwgbGFzdExpbmUpOwog
fQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFi
bGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAppbmRleCA1
ZmFkYmI4MTI0MWEwY2UzZTEzODMxODU4OGFmNDIxMTY3ZmExYjY5Li42MzliYmU0NzAwYWYzMzQz
NDI0MWQxNTUwOGFkZDdkNDFhNzJhMTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FeGVjdXRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXhlY3V0YWJsZS5oCkBAIC0xNzYsMTYgKzE3NiwyMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgc3RhdGljIE5hdGl2ZUV4ZWN1dGFibGUqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjYWxsVGh1bmssIE5hdGl2ZUZ1bmN0aW9uIGZ1
bmN0aW9uLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29uc3RydWN0VGh1bmssIE5hdGl2ZUZ1bmN0
aW9uIGNvbnN0cnVjdG9yKQogICAgICAgICB7CiAgICAgICAgICAgICBOYXRpdmVFeGVjdXRhYmxl
KiBleGVjdXRhYmxlOwotICAgICAgICAgICAgaWYgKCFjYWxsVGh1bmspCi0gICAgICAgICAgICAg
ICAgZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2NhdGVDZWxsPE5hdGl2ZUV4ZWN1dGFibGU+KGdsb2Jh
bERhdGEuaGVhcCkpIE5hdGl2ZUV4ZWN1dGFibGUoZ2xvYmFsRGF0YSwgSklUQ29kZSgpLCBmdW5j
dGlvbiwgSklUQ29kZSgpLCBjb25zdHJ1Y3Rvcik7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2NhdGVDZWxsPE5hdGl2ZUV4ZWN1dGFibGU+
KGdsb2JhbERhdGEuaGVhcCkpIE5hdGl2ZUV4ZWN1dGFibGUoZ2xvYmFsRGF0YSwgSklUQ29kZTo6
SG9zdEZ1bmN0aW9uKGNhbGxUaHVuayksIGZ1bmN0aW9uLCBKSVRDb2RlOjpIb3N0RnVuY3Rpb24o
Y29uc3RydWN0VGh1bmspLCBjb25zdHJ1Y3Rvcik7CisgICAgICAgICAgICBpZiAoIWNhbGxUaHVu
aykgeworICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxOYXRp
dmVFeGVjdXRhYmxlPihnbG9iYWxEYXRhLmhlYXApKSBOYXRpdmVFeGVjdXRhYmxlKGdsb2JhbERh
dGEsIGZ1bmN0aW9uLCBjb25zdHJ1Y3Rvcik7CisgICAgICAgICAgICAgICAgZXhlY3V0YWJsZS0+
ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgSklUQ29kZSgpLCBKSVRDb2RlKCkpOworICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0
ZUNlbGw8TmF0aXZlRXhlY3V0YWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkgTmF0aXZlRXhlY3V0YWJs
ZShnbG9iYWxEYXRhLCBmdW5jdGlvbiwgY29uc3RydWN0b3IpOworICAgICAgICAgICAgICAgIGV4
ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIEpJVENvZGU6Okhvc3RGdW5jdGlv
bihjYWxsVGh1bmspLCBKSVRDb2RlOjpIb3N0RnVuY3Rpb24oY29uc3RydWN0VGh1bmspKTsKKyAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiBleGVjdXRhYmxlOwogICAgICAgICB9CiAj
ZWxzZQogICAgICAgICBzdGF0aWMgTmF0aXZlRXhlY3V0YWJsZSogY3JlYXRlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIE5hdGl2ZUZ1bmN0aW9uIGNv
bnN0cnVjdG9yKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNl
bGw8TmF0aXZlRXhlY3V0YWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkgTmF0aXZlRXhlY3V0YWJsZShn
bG9iYWxEYXRhLCBmdW5jdGlvbiwgY29uc3RydWN0b3IpOworICAgICAgICAgICAgTmF0aXZlRXhl
Y3V0YWJsZSogZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2NhdGVDZWxsPE5hdGl2ZUV4ZWN1dGFibGU+
KGdsb2JhbERhdGEuaGVhcCkpIE5hdGl2ZUV4ZWN1dGFibGUoZ2xvYmFsRGF0YSwgZnVuY3Rpb24s
IGNvbnN0cnVjdG9yKTsKKyAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9uKGds
b2JhbERhdGEpOworICAgICAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CiAgICAgICAgIH0KICNl
bmRpZgogCkBAIC0yMTEsMTIgKzIxNiwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAKICAgICBwcml2
YXRlOgogI2lmIEVOQUJMRShKSVQpCi0gICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKSVRDb2RlIGNhbGxUaHVuaywgTmF0aXZlRnVuY3Rpb24gZnVuY3Rp
b24sIEpJVENvZGUgY29uc3RydWN0VGh1bmssIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKQor
ICAgICAgICBOYXRpdmVFeGVjdXRhYmxlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgTmF0aXZl
RnVuY3Rpb24gZnVuY3Rpb24sIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKQogICAgICAgICAg
ICAgOiBFeGVjdXRhYmxlQmFzZShnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLm5hdGl2ZUV4ZWN1dGFi
bGVTdHJ1Y3R1cmUuZ2V0KCksIE5VTV9QQVJBTUVURVJTX0lTX0hPU1QpCiAgICAgICAgICAgICAs
IG1fZnVuY3Rpb24oZnVuY3Rpb24pCiAgICAgICAgICAgICAsIG1fY29uc3RydWN0b3IoY29uc3Ry
dWN0b3IpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEs
IGNhbGxUaHVuaywgY29uc3RydWN0VGh1bmspOwogICAgICAgICB9CiAjZWxzZQogICAgICAgICBO
YXRpdmVFeGVjdXRhYmxlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgTmF0aXZlRnVuY3Rpb24g
ZnVuY3Rpb24sIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKQpAQCAtMjI0LDcgKzIyOCw2IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgLCBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQogICAg
ICAgICAgICAgLCBtX2NvbnN0cnVjdG9yKGNvbnN0cnVjdG9yKQogICAgICAgICB7Ci0gICAgICAg
ICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICAgICAgfQogI2VuZGlmCiAKQEAg
LTMxNyw2ICszMjAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIEV2YWxFeGVj
dXRhYmxlKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2Us
IGJvb2wgaXNJblN0cmljdENvbnRleHQpIAogICAgICAgICB7CiAgICAgICAgICAgICBFdmFsRXhl
Y3V0YWJsZSogZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2NhdGVDZWxsPEV2YWxFeGVjdXRhYmxlPigq
ZXhlYy0+aGVhcCgpKSkgRXZhbEV4ZWN1dGFibGUoZXhlYywgc291cmNlLCBpc0luU3RyaWN0Q29u
dGV4dCk7CisgICAgICAgICAgICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlvbihleGVjLT5nbG9i
YWxEYXRhKCkpOwogICAgICAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CiAgICAgICAgIH0KIApA
QCAtMzU0LDYgKzM1OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgUHJvZ3Jh
bUV4ZWN1dGFibGUqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNv
dXJjZSkKICAgICAgICAgewogICAgICAgICAgICAgUHJvZ3JhbUV4ZWN1dGFibGUqIGV4ZWN1dGFi
bGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxQcm9ncmFtRXhlY3V0YWJsZT4oKmV4ZWMtPmhlYXAoKSkp
IFByb2dyYW1FeGVjdXRhYmxlKGV4ZWMsIHNvdXJjZSk7CisgICAgICAgICAgICBleGVjdXRhYmxl
LT5maW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOwogICAgICAgICAgICAgcmV0dXJu
IGV4ZWN1dGFibGU7CiAgICAgICAgIH0KIApAQCAtNDEyLDEzICs0MTcsMTUgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICAgICAgc3RhdGljIEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29kZSYgc291
cmNlLCBib29sIGZvcmNlVXNlc0FyZ3VtZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJzKiBwYXJhbWV0
ZXJzLCBib29sIGlzSW5TdHJpY3RDb250ZXh0LCBpbnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9
IG5ldyAoYWxsb2NhdGVDZWxsPEZ1bmN0aW9uRXhlY3V0YWJsZT4oKmV4ZWMtPmhlYXAoKSkpIEZ1
bmN0aW9uRXhlY3V0YWJsZShleGVjLCBuYW1lLCBzb3VyY2UsIGZvcmNlVXNlc0FyZ3VtZW50cywg
cGFyYW1ldGVycywgaXNJblN0cmljdENvbnRleHQsIGZpcnN0TGluZSwgbGFzdExpbmUpOworICAg
ICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNl
bGw8RnVuY3Rpb25FeGVjdXRhYmxlPigqZXhlYy0+aGVhcCgpKSkgRnVuY3Rpb25FeGVjdXRhYmxl
KGV4ZWMsIG5hbWUsIHNvdXJjZSwgZm9yY2VVc2VzQXJndW1lbnRzLCBwYXJhbWV0ZXJzLCBpc0lu
U3RyaWN0Q29udGV4dCk7CisgICAgICAgICAgICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlvbihl
eGVjLT5nbG9iYWxEYXRhKCksIG5hbWUsIGZpcnN0TGluZSwgbGFzdExpbmUpOwogICAgICAgICAg
ICAgcmV0dXJuIGV4ZWN1dGFibGU7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgRnVuY3Rp
b25FeGVjdXRhYmxlKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVu
dGlmaWVyJiBuYW1lLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJvb2wgZm9yY2VVc2VzQXJn
dW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqIHBhcmFtZXRlcnMsIGJvb2wgaXNJblN0cmljdENv
bnRleHQsIGludCBmaXJzdExpbmUsIGludCBsYXN0TGluZSkKICAgICAgICAgewotICAgICAgICAg
ICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8RnVu
Y3Rpb25FeGVjdXRhYmxlPihnbG9iYWxEYXRhLmhlYXApKSBGdW5jdGlvbkV4ZWN1dGFibGUoZ2xv
YmFsRGF0YSwgbmFtZSwgc291cmNlLCBmb3JjZVVzZXNBcmd1bWVudHMsIHBhcmFtZXRlcnMsIGlz
SW5TdHJpY3RDb250ZXh0LCBmaXJzdExpbmUsIGxhc3RMaW5lKTsKKyAgICAgICAgICAgIEZ1bmN0
aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2NhdGVDZWxsPEZ1bmN0aW9uRXhl
Y3V0YWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkgRnVuY3Rpb25FeGVjdXRhYmxlKGdsb2JhbERhdGEs
IG5hbWUsIHNvdXJjZSwgZm9yY2VVc2VzQXJndW1lbnRzLCBwYXJhbWV0ZXJzLCBpc0luU3RyaWN0
Q29udGV4dCk7CisgICAgICAgICAgICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlvbihnbG9iYWxE
YXRhLCBuYW1lLCBmaXJzdExpbmUsIGxhc3RMaW5lKTsKICAgICAgICAgICAgIHJldHVybiBleGVj
dXRhYmxlOwogICAgICAgICB9CiAKQEAgLTUzOSw4ICs1NDYsOCBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKEpT
R2xvYmFsRGF0YSYsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmLCBi
b29sIGZvcmNlVXNlc0FyZ3VtZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJzKiwgYm9vbCwgaW50IGZp
cnN0TGluZSwgaW50IGxhc3RMaW5lKTsKLSAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmLCBib29sIGZv
cmNlVXNlc0FyZ3VtZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJzKiwgYm9vbCwgaW50IGZpcnN0TGlu
ZSwgaW50IGxhc3RMaW5lKTsKKyAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKEpTR2xvYmFsRGF0
YSYsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmLCBib29sIGZvcmNl
VXNlc0FyZ3VtZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJzKiwgYm9vbCk7CisgICAgICAgIEZ1bmN0
aW9uRXhlY3V0YWJsZShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25zdCBT
b3VyY2VDb2RlJiwgYm9vbCBmb3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyos
IGJvb2wpOwogCiAgICAgICAgIEpTT2JqZWN0KiBjb21waWxlRm9yQ2FsbEludGVybmFsKEV4ZWNT
dGF0ZSosIFNjb3BlQ2hhaW5Ob2RlKiwgRXhlY1N0YXRlKiBjYWxsZWVBcmdzRXhlYyk7CiAgICAg
ICAgIEpTT2JqZWN0KiBjb21waWxlRm9yQ29uc3RydWN0SW50ZXJuYWwoRXhlY1N0YXRlKiwgU2Nv
cGVDaGFpbk5vZGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGVybmFsRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
ZXJuYWxGdW5jdGlvbi5jcHAKaW5kZXggYmNhMTc0NzEzMmQ0Yzk3MzE3ZDU3Y2Q4MGU0OTFkNDg2
MjhhY2U5MC4uMDdjMGY3ZjViZjY1YTNlNzU2YjUxYzI0MDM3Y2FjYzMzYzQyZTYyMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAK
QEAgLTQ0LDcgKzQ0LDE0IEBAIEludGVybmFsRnVuY3Rpb246OkludGVybmFsRnVuY3Rpb24oVlB0
clN0ZWFsaW5nSGFja1R5cGUpCiBJbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKEpT
R2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElkZW50aWZpZXImIG5hbWUpCiAgICAgOiBKU09iamVj
dFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiB7Ci0gICAgY29uc3Ry
dWN0b3JCb2R5KCpnbG9iYWxEYXRhLCBuYW1lKTsKKyAgICBmaW5pc2hDcmVhdGlvbigqZ2xvYmFs
RGF0YSwgZ2xvYmFsT2JqZWN0LCBuYW1lKTsKK30KKwordm9pZCBJbnRlcm5hbEZ1bmN0aW9uOjpm
aW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXImIG5hbWUpCit7CisgICAgQmFzZTo6ZmluaXNo
Q3JlYXRpb24oZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0KTsKKyAgICBBU1NFUlQoaW5oZXJpdHMo
JnNfaW5mbykpOworICAgIHB1dERpcmVjdChnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLnByb3BlcnR5
TmFtZXMtPm5hbWUsIGpzU3RyaW5nKCZnbG9iYWxEYXRhLCBuYW1lLmlzTnVsbCgpID8gIiIgOiBu
YW1lLnVzdHJpbmcoKSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKIH0KIAog
Y29uc3QgVVN0cmluZyYgSW50ZXJuYWxGdW5jdGlvbjo6bmFtZShFeGVjU3RhdGUqIGV4ZWMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9u
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKaW5k
ZXggMTQzNmYzMmQ2ZTdhN2RlMjhmNTRmOTEwOTAzYmQxZjc4MTA3MGU2NS4uNjA2N2JlOGRiZmRk
YjM3Y2E0NjA3OTgxYTczMDhhNTgzODA2ODVjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaApAQCAtNTQsMTEgKzU0LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKICAgICAgICAgSW50ZXJuYWxGdW5jdGlvbihKU0dsb2JhbERhdGEqLCBKU0ds
b2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGNvbnN0IElkZW50aWZpZXImKTsKIAotICAgICAgICB2
b2lkIGNvbnN0cnVjdG9yQm9keShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IElkZW50
aWZpZXImIG5hbWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChpbmhlcml0cygmc19p
bmZvKSk7Ci0gICAgICAgICAgICBwdXREaXJlY3QoZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS5wcm9w
ZXJ0eU5hbWVzLT5uYW1lLCBqc1N0cmluZygmZ2xvYmFsRGF0YSwgbmFtZS5pc051bGwoKSA/ICIi
IDogbmFtZS51c3RyaW5nKCkpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7Ci0g
ICAgICAgIH0KKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBKU0ds
b2JhbE9iamVjdCosIGNvbnN0IElkZW50aWZpZXImIG5hbWUpOwogCiAgICAgcHJpdmF0ZToKICAg
ICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCmluZGV4IDUwMjg5
MDJjOTkyZDE0YTEyNTRhNzNhMGRkYzY5Yzk5ZjdmYTBiNjIuLjVjOTlkN2E2NTQzOGQxY2U3OWRj
N2NiNTA1YTg1NzdhM2Y2OTdiZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBY3RpdmF0aW9uLmNwcApAQCAtNDYsNiArNDYsMTIgQEAgSlNBY3RpdmF0aW9uOjpKU0Fj
dGl2YXRpb24oQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rp
b25FeGUKICAgICAsIG1fcmVxdWlyZXNEeW5hbWljQ2hlY2tzKGZ1bmN0aW9uRXhlY3V0YWJsZS0+
dXNlc0V2YWwoKSkKICAgICAsIG1fYXJndW1lbnRzUmVnaXN0ZXIoZnVuY3Rpb25FeGVjdXRhYmxl
LT5nZW5lcmF0ZWRCeXRlY29kZSgpLmFyZ3VtZW50c1JlZ2lzdGVyKCkpCiB7CisgICAgZmluaXNo
Q3JlYXRpb24oY2FsbEZyYW1lKTsKK30KKwordm9pZCBKU0FjdGl2YXRpb246OmZpbmlzaENyZWF0
aW9uKENhbGxGcmFtZSogY2FsbEZyYW1lKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGNh
bGxGcmFtZS0+Z2xvYmFsRGF0YSgpKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwog
CiAgICAgLy8gV2UgaGF2ZSB0byBtYW51YWxseSByZWYgYW5kIGRlcmVmIHRoZSBzeW1ib2wgdGFi
bGUgYXMgSlNWYXJpYWJsZU9iamVjdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBY3RpdmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FjdGl2YXRpb24uaAppbmRleCBmMTU5MWFhYTE4MGVhZTEzZjM1ZjU5MjA2NDg0MjA5YmIzZjhl
MGFkLi5kYTJlNDY1NWUwNjk0ZjdjNTkzZDNhZjE3MWQ2MDBmZDA3MDY2MjVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaApAQCAtNzcsNiArNzcsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90bykgeyByZXR1cm4gU3Ry
dWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgfQogCiAgICAgcHJv
dGVjdGVkOgorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKENhbGxGcmFtZSopOwogICAgICAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBJc0Vudmlyb25tZW50UmVj
b3JkIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJl
biB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU1ZhcmlhYmxlT2JqZWN0OjpTdHJ1Y3R1
cmVGbGFnczsKIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QXJyYXkuY3BwCmluZGV4IDE4NWQ3YWViNmJmYzQ1MjkxNmJiZmViYjE3MTA0ZGIwNzY3NWQ5MzIu
LmM2NWE5MjM3Yzc0OGQ2ZDQ2MDUxMzQ0ZWUxN2MxNTM4ZTM3NjcxMDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCkBAIC0xMzQsMTkgKzEzNCw2IEBAIEpTQXJy
YXk6OkpTQXJyYXkoVlB0clN0ZWFsaW5nSGFja1R5cGUpCiBKU0FycmF5OjpKU0FycmF5KEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU05vbkZp
bmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihn
bG9iYWxEYXRhKTsKLX0KLQotSlNBcnJheTo6SlNBcnJheShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCB1bnNpZ25lZCBpbml0aWFsTGVuZ3RoLCBBcnJheUNy
ZWF0aW9uTW9kZSBjcmVhdGlvbk1vZGUpCi0gICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERh
dGEsIHN0cnVjdHVyZSkKLXsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBpbml0aWFs
TGVuZ3RoLCBjcmVhdGlvbk1vZGUpOwotfQotCi1KU0FycmF5OjpKU0FycmF5KEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IEFyZ0xpc3QmIGxpc3Qp
Ci0gICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKLXsKLSAgICBm
aW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBsaXN0KTsKIH0KIAogdm9pZCBKU0FycmF5OjpmaW5p
c2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCkBAIC0yNDksNiArMjM2LDI3IEBA
IHZvaWQgSlNBcnJheTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBj
b25zdCBBcmdMaXN0JiBsaXN0KQogICAgIEhlYXA6OmhlYXAodGhpcyktPnJlcG9ydEV4dHJhTWVt
b3J5Q29zdChzdG9yYWdlU2l6ZShpbml0aWFsU3RvcmFnZSkpOwogfQogCitKU0FycmF5KiBKU0Fy
cmF5OjpjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKK3sKKyAgICBKU0FycmF5KiBhcnJheSA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTQXJyYXk+KGds
b2JhbERhdGEuaGVhcCkpIEpTQXJyYXkoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKKyAgICBhcnJh
eS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CisgICAgcmV0dXJuIGFycmF5OworfQorCitK
U0FycmF5KiBKU0FycmF5OjpjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgdW5zaWduZWQgaW5pdGlhbExlbmd0aCwgQXJyYXlDcmVhdGlvbk1vZGUg
Y3JlYXRlTW9kZSkKK3sKKyAgICBKU0FycmF5KiBhcnJheSA9IG5ldyAoYWxsb2NhdGVDZWxsPEpT
QXJyYXk+KGdsb2JhbERhdGEuaGVhcCkpIEpTQXJyYXkoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsK
KyAgICBhcnJheS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgaW5pdGlhbExlbmd0aCwgY3Jl
YXRlTW9kZSk7CisgICAgcmV0dXJuIGFycmF5OworfQorCitKU0FycmF5KiBKU0FycmF5OjpjcmVh
dGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3Qg
QXJnTGlzdCYgaW5pdGlhbFZhbHVlcykKK3sKKyAgICBKU0FycmF5KiBhcnJheSA9IG5ldyAoYWxs
b2NhdGVDZWxsPEpTQXJyYXk+KGdsb2JhbERhdGEuaGVhcCkpIEpTQXJyYXkoZ2xvYmFsRGF0YSwg
c3RydWN0dXJlKTsKKyAgICBhcnJheS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgaW5pdGlh
bFZhbHVlcyk7CisgICAgcmV0dXJuIGFycmF5OworfQorCiBKU0FycmF5Ojp+SlNBcnJheSgpCiB7
CiAgICAgQVNTRVJUKHZwdHIoKSA9PSBKU0dsb2JhbERhdGE6OmpzQXJyYXlWUHRyKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAppbmRleCBlOGUxZmE5MmQ1ZmQ0MDE5MzFl
NzgyMzVkMzI2NTQxMzlkNjZkZmU2Li44NmRhZjg0Njc5NjBiMDBjNjlkZGI0OGJlODgwZWI2NzRh
M2Y1NDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCkBAIC02Miw4
ICs2Miw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBleHBs
aWNpdCBKU0FycmF5KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSopOwotICAgICAgICBKU0FycmF5
KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSosIHVuc2lnbmVkIGluaXRpYWxMZW5ndGgsIEFycmF5
Q3JlYXRpb25Nb2RlKTsKLSAgICAgICAgSlNBcnJheShKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUq
LCBjb25zdCBBcmdMaXN0JiBpbml0aWFsVmFsdWVzKTsKIAogICAgICAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKEpTR2xvYmFsRGF0YSYpOwogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xv
YmFsRGF0YSYsIHVuc2lnbmVkIGluaXRpYWxMZW5ndGgsIEFycmF5Q3JlYXRpb25Nb2RlKTsKQEAg
LTc1LDIwICs3Myw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKU0FycmF5KFZQdHJTdGVh
bGluZ0hhY2tUeXBlKTsKICAgICAgICAgdmlydHVhbCB+SlNBcnJheSgpOwogCi0gICAgICAgIHN0
YXRpYyBKU0FycmF5KiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVD
ZWxsPEpTQXJyYXk+KGdsb2JhbERhdGEuaGVhcCkpIEpTQXJyYXkoZ2xvYmFsRGF0YSwgc3RydWN0
dXJlKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgc3RhdGljIEpTQXJyYXkqIGNyZWF0
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCB1bnNpZ25l
ZCBpbml0aWFsTGVuZ3RoLCBBcnJheUNyZWF0aW9uTW9kZSBjcmVhdGVNb2RlKQotICAgICAgICB7
Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SlNBcnJheT4oZ2xvYmFsRGF0
YS5oZWFwKSkgSlNBcnJheShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUsIGluaXRpYWxMZW5ndGgsIGNy
ZWF0ZU1vZGUpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBzdGF0aWMgSlNBcnJheSog
Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNv
bnN0IEFyZ0xpc3QmIGluaXRpYWxWYWx1ZXMpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBuZXcgKGFsbG9jYXRlQ2VsbDxKU0FycmF5PihnbG9iYWxEYXRhLmhlYXApKSBKU0FycmF5KGds
b2JhbERhdGEsIHN0cnVjdHVyZSwgaW5pdGlhbFZhbHVlcyk7Ci0gICAgICAgIH0KKyAgICAgICAg
c3RhdGljIEpTQXJyYXkqIGNyZWF0ZShKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqKTsKKyAgICAg
ICAgc3RhdGljIEpTQXJyYXkqIGNyZWF0ZShKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqLCB1bnNp
Z25lZCBpbml0aWFsTGVuZ3RoLCBBcnJheUNyZWF0aW9uTW9kZSBjcmVhdGVNb2RlKTsKKyAgICAg
ICAgc3RhdGljIEpTQXJyYXkqIGNyZWF0ZShKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqLCBjb25z
dCBBcmdMaXN0JiBpbml0aWFsVmFsdWVzKTsKICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXku
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCmluZGV4
IGJiZTc2MzJhMmUyMWEzOTk3ZDQ3MzVlZjY2Y2QxZDNmNzY3MWEwNzkuLmYxNGYxYTM2ZGExMmVj
ZDM1MzU1YzQ0Yzg1MjAzNDNmMGQ0NDkyMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0J5dGVBcnJheS5jcHAKQEAgLTM5LDEyICszOSwxMyBAQCBKU0J5dGVBcnJheTo6
SlNCeXRlQXJyYXkoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQnl0ZUFy
cmF5KiBzdG9yYQogICAgIDogSlNOb25GaW5hbE9iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIHN0
cnVjdHVyZSkKICAgICAsIG1fc3RvcmFnZShzdG9yYWdlKQogewotICAgIGZpbmlzaENyZWF0aW9u
KGV4ZWMpOwogfQogICAgICAgICAKIEpTQnl0ZUFycmF5KiBKU0J5dGVBcnJheTo6Y3JlYXRlKEV4
ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEJ5dGVBcnJheSogc3RvcmFnZSkK
IHsKLSAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SlNCeXRlQXJyYXk+KCpleGVjLT5oZWFw
KCkpKSBKU0J5dGVBcnJheShleGVjLCBzdHJ1Y3R1cmUsIHN0b3JhZ2UpOworICAgIEpTQnl0ZUFy
cmF5KiBhcnJheSA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTQnl0ZUFycmF5PigqZXhlYy0+aGVhcCgp
KSkgSlNCeXRlQXJyYXkoZXhlYywgc3RydWN0dXJlLCBzdG9yYWdlKTsKKyAgICBhcnJheS0+Zmlu
aXNoQ3JlYXRpb24oZXhlYyk7CisgICAgcmV0dXJuIGFycmF5OwogfQogCiAjaWYgIUFTU0VSVF9E
SVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApp
bmRleCA0OTlhZWI2ZDI3NDhjMjk0MDg5MGJjMmJiYzdkZDhkYTg2NGViZWVkLi42Mzk1MWJhNGVi
NTU5NDFmMGFkNGIxNWFjMWQ3NmJjZDhkZDllMWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtNjEsMjEgKzYxLDExIEBAIEpTRnVuY3Rpb246
OkpTRnVuY3Rpb24oVlB0clN0ZWFsaW5nSGFja1R5cGUpCiB7CiB9CiAKLUpTRnVuY3Rpb246OkpT
RnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwg
TmF0aXZlRXhlY3V0YWJsZSogdGh1bmspCitKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCiAgICAgOiBCYXNlKGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogICAgICwgbV9leGVjdXRh
YmxlKCkKICAgICAsIG1fc2NvcGVDaGFpbihleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIGdsb2Jh
bE9iamVjdC0+Z2xvYmFsU2NvcGVDaGFpbigpKQogewotICAgIGNvbnN0cnVjdG9yQm9keShleGVj
LCBsZW5ndGgsIG5hbWUsIHRodW5rKTsKLX0KLQotSlNGdW5jdGlvbjo6SlNGdW5jdGlvbihFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBOYXRpdmVGdW5jdGlv
biBmdW5jKQotICAgIDogQmFzZShnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKLSAgICAsIG1fZXhl
Y3V0YWJsZSgpCi0gICAgLCBtX3Njb3BlQ2hhaW4oZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBn
bG9iYWxPYmplY3QtPmdsb2JhbFNjb3BlQ2hhaW4oKSkKLXsKLSAgICAvLyBDYW4ndCBkbyB0aGlz
IGR1cmluZyBpbml0aWFsaXphdGlvbiBiZWNhdXNlIGdldEhvc3RGdW5jdGlvbiBtaWdodCBkbyBh
IEdDIGFsbG9jYXRpb24uCi0gICAgY29uc3RydWN0b3JCb2R5KGV4ZWMsIGxlbmd0aCwgbmFtZSwg
IGV4ZWMtPmdsb2JhbERhdGEoKS5nZXRIb3N0RnVuY3Rpb24oZnVuYykpOwogfQogCiBKU0Z1bmN0
aW9uOjpKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVj
dXRhYmxlLCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbk5vZGUpCkBAIC04MywxOSArNzMsNDcg
QEAgSlNGdW5jdGlvbjo6SlNGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEZ1bmN0aW9uRXhlY3V0
YWJsZSogZXhlY3V0YWJsZSwgU2NvcGVDaGEKICAgICAsIG1fZXhlY3V0YWJsZShleGVjLT5nbG9i
YWxEYXRhKCksIHRoaXMsIGV4ZWN1dGFibGUpCiAgICAgLCBtX3Njb3BlQ2hhaW4oZXhlYy0+Z2xv
YmFsRGF0YSgpLCB0aGlzLCBzY29wZUNoYWluTm9kZSkKIHsKLSAgICBBU1NFUlQoaW5oZXJpdHMo
JnNfaW5mbykpOwotICAgIHNldFN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIHNjb3BlQ2hh
aW5Ob2RlLT5nbG9iYWxPYmplY3QtPm5hbWVkRnVuY3Rpb25TdHJ1Y3R1cmUoKSk7Ci0gICAgcHV0
RGlyZWN0T2Zmc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgc2NvcGVDaGFpbk5vZGUtPmdsb2JhbE9i
amVjdC0+ZnVuY3Rpb25OYW1lT2Zmc2V0KCksIGV4ZWN1dGFibGUtPm5hbWVWYWx1ZSgpKTsKIH0K
IAotaW5saW5lIHZvaWQgSlNGdW5jdGlvbjo6Y29uc3RydWN0b3JCb2R5KEV4ZWNTdGF0ZSogZXhl
YywgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgRXhlY3V0YWJsZUJhc2UqIGV4
ZWN1dGFibGUpCitpbmxpbmUgdm9pZCBKU0Z1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbihFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGludCBsZW5ndGgsIGNvbnN0
IElkZW50aWZpZXImIG5hbWUsIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlKQogeworICAgIEJh
c2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmpl
Y3QpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgbV9leGVjdXRhYmxlLnNl
dChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIGV4ZWN1dGFibGUpOwogICAgIHB1dERpcmVjdChl
eGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmdsb2JhbERhdGEoKS5wcm9wZXJ0eU5hbWVzLT5uYW1l
LCBqc1N0cmluZyhleGVjLCBuYW1lLmlzTnVsbCgpID8gIiIgOiBuYW1lLnVzdHJpbmcoKSksIERv
bnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcihsZW5ndGgp
LCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiB9CiAKK2lubGluZSB2b2lkIEpT
RnVuY3Rpb246OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBTY29wZUNoYWlu
Tm9kZSogc2NvcGVDaGFpbk5vZGUpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFs
T2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CisgICAgQVNTRVJUKGluaGVyaXRz
KCZzX2luZm8pKTsKKyAgICBzZXRTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzY29wZUNo
YWluTm9kZS0+Z2xvYmFsT2JqZWN0LT5uYW1lZEZ1bmN0aW9uU3RydWN0dXJlKCkpOworICAgIHB1
dERpcmVjdE9mZnNldChleGVjLT5nbG9iYWxEYXRhKCksIHNjb3BlQ2hhaW5Ob2RlLT5nbG9iYWxP
YmplY3QtPmZ1bmN0aW9uTmFtZU9mZnNldCgpLCBleGVjdXRhYmxlLT5uYW1lVmFsdWUoKSk7Cit9
CisKK0pTRnVuY3Rpb24qIEpTRnVuY3Rpb246OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQgbGVuZ3Ro
LCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgTmF0aXZlRnVuY3Rpb24gbmF0aXZlRnVuY3Rpb24p
Cit7CisgICAgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUgPSBleGVjLT5nbG9iYWxEYXRhKCku
Z2V0SG9zdEZ1bmN0aW9uKG5hdGl2ZUZ1bmN0aW9uKTsKKyAgICBKU0Z1bmN0aW9uKiBmdW5jdGlv
biA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTRnVuY3Rpb24+KCpleGVjLT5oZWFwKCkpKSBKU0Z1bmN0
aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKKyAgICAvLyBDYW4ndCBkbyB0aGlz
IGR1cmluZyBpbml0aWFsaXphdGlvbiBiZWNhdXNlIGdldEhvc3RGdW5jdGlvbiBtaWdodCBkbyBh
IEdDIGFsbG9jYXRpb24uCisgICAgZnVuY3Rpb24tPmZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgbGVuZ3RoLCBpZGVudCwgZXhlY3V0YWJsZSk7CisgICAgcmV0dXJuIGZ1bmN0aW9u
OworfQorSlNGdW5jdGlvbiogSlNGdW5jdGlvbjo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludCBsZW5n
dGgsIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBOYXRpdmVFeGVjdXRhYmxlKiBuYXRpdmVFeGVj
dXRhYmxlKQoreworICAgIEpTRnVuY3Rpb24qIGZ1bmN0aW9uID0gbmV3IChhbGxvY2F0ZUNlbGw8
SlNGdW5jdGlvbj4oKmV4ZWMtPmhlYXAoKSkpIEpTRnVuY3Rpb24oZXhlYywgZ2xvYmFsT2JqZWN0
LCBzdHJ1Y3R1cmUpOworICAgIGZ1bmN0aW9uLT5maW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxP
YmplY3QsIGxlbmd0aCwgaWRlbnQsIG5hdGl2ZUV4ZWN1dGFibGUpOworICAgIHJldHVybiBmdW5j
dGlvbjsKK30KK0pTRnVuY3Rpb24qIEpTRnVuY3Rpb246OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMs
IEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hh
aW4pCit7CisgICAgSlNGdW5jdGlvbiogZnVuY3Rpb24gPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0Z1
bmN0aW9uPigqZXhlYy0+aGVhcCgpKSkgSlNGdW5jdGlvbihleGVjLCBleGVjdXRhYmxlLCBzY29w
ZUNoYWluKTsKKyAgICBmdW5jdGlvbi0+ZmluaXNoQ3JlYXRpb24oZXhlYywgc2NvcGVDaGFpbi0+
Z2xvYmFsT2JqZWN0LmdldCgpLCBleGVjdXRhYmxlLCBzY29wZUNoYWluKTsKKyAgICByZXR1cm4g
ZnVuY3Rpb247Cit9CisKKwogSlNGdW5jdGlvbjo6fkpTRnVuY3Rpb24oKQogewogICAgIEFTU0VS
VCh2cHRyKCkgPT0gSlNHbG9iYWxEYXRhOjpqc0Z1bmN0aW9uVlB0cik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKaW5kZXggOGI3M2IwYmUyZjJhMjk5N2Q5MDkw
NjAxMjk3MzBkMGRmNTBhMGRkNy4uM2U5YWQ2ZWY4ZDYwODE5YWRlYWMxZjJhMzEwMGM4ZWU3ZDFm
ZjA0OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlv
bi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaApAQCAt
NDYsMjUgKzQ2LDE1IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBmcmllbmQgY2xhc3MgREZH
OjpKSVRDb2RlR2VuZXJhdG9yOwogICAgICAgICBmcmllbmQgY2xhc3MgSlNHbG9iYWxEYXRhOwog
Ci0gICAgICAgIEpTRnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1
cmUqLCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiwgTmF0aXZlRnVuY3Rpb24pOwotICAg
ICAgICBKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwg
aW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYsIE5hdGl2ZUV4ZWN1dGFibGUqKTsKKyAgICAg
ICAgSlNGdW5jdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwog
ICAgICAgICBKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSosIEZ1bmN0aW9uRXhlY3V0YWJsZSosIFNjb3Bl
Q2hhaW5Ob2RlKik7CiAgICAgICAgIAogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBKU09i
amVjdFdpdGhHbG9iYWxPYmplY3QgQmFzZTsKIAotICAgICAgICBzdGF0aWMgSlNGdW5jdGlvbiog
Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBO
YXRpdmVGdW5jdGlvbiBuYXRpdmVGdW5jKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
bmV3IChhbGxvY2F0ZUNlbGw8SlNGdW5jdGlvbj4oKmV4ZWMtPmhlYXAoKSkpIEpTRnVuY3Rpb24o
ZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGxlbmd0aCwgaWRlbnQsIG5hdGl2ZUZ1bmMp
OwotICAgICAgICB9Ci0gICAgICAgIHN0YXRpYyBKU0Z1bmN0aW9uKiBjcmVhdGUoRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIE5hdGl2ZUV4ZWN1dGFibGUq
IG5hdGl2ZUV4ZWMpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRl
Q2VsbDxKU0Z1bmN0aW9uPigqZXhlYy0+aGVhcCgpKSkgSlNGdW5jdGlvbihleGVjLCBnbG9iYWxP
YmplY3QsIHN0cnVjdHVyZSwgbGVuZ3RoLCBpZGVudCwgbmF0aXZlRXhlYyk7Ci0gICAgICAgIH0K
LSAgICAgICAgc3RhdGljIEpTRnVuY3Rpb24qIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEZ1bmN0
aW9uRXhlY3V0YWJsZSogZnVuY0V4ZWMsIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluKQotICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SlNGdW5jdGlvbj4o
KmV4ZWMtPmhlYXAoKSkpIEpTRnVuY3Rpb24oZXhlYywgZnVuY0V4ZWMsIHNjb3BlQ2hhaW4pOwot
ICAgICAgICB9CisgICAgICAgIHN0YXRpYyBKU0Z1bmN0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiwg
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVy
JiBuYW1lLCBOYXRpdmVGdW5jdGlvbik7CisgICAgICAgIHN0YXRpYyBKU0Z1bmN0aW9uKiBjcmVh
dGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnQgbGVuZ3RoLCBj
b25zdCBJZGVudGlmaWVyJiBuYW1lLCBOYXRpdmVFeGVjdXRhYmxlKik7CisgICAgICAgIHN0YXRp
YyBKU0Z1bmN0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgU2Nv
cGVDaGFpbk5vZGUqKTsKICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgfkpTRnVuY3Rpb24oKTsK
IApAQCAtMTIzLDcgKzExMyw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByb3RlY3RlZDoKICAg
ICAgICAgY29uc3Qgc3RhdGljIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0
T3duUHJvcGVydHlTbG90IHwgSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgT3ZlcnJpZGVzVmlzaXRD
aGlsZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU09iamVjdDo6U3RydWN0dXJl
RmxhZ3M7CiAKLSAgICAgICAgdm9pZCBjb25zdHJ1Y3RvckJvZHkoRXhlY1N0YXRlKiwgaW50IGxl
bmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgRXhlY3V0YWJsZUJhc2UqKTsKKyAgICAgICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIGludCBsZW5n
dGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEV4ZWN1dGFibGVCYXNlKik7CisgICAgICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBGdW5jdGlvbkV4
ZWN1dGFibGUqLCBTY29wZUNoYWluTm9kZSopOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgZXhw
bGljaXQgSlNGdW5jdGlvbihWUHRyU3RlYWxpbmdIYWNrVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCBjMjMwZDcwMmI1M2ZkMTdl
NWU1ZGJlMjE0MjliMDE4ZjkxMTAyZDFjLi44NWM0Mjk2NjMxYWUzZTYzZDkzODAzNWVhNzA4MDA0
YmZjZWUwNzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmgKQEAgLTE1OSw3ICsxNTksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAg
ICwgbV93ZWFrUmFuZG9tKHN0YXRpY19jYXN0PHVuc2lnbmVkPihyYW5kb21OdW1iZXIoKSAqIChz
dGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkgKyAxLjApKSkKICAgICAgICAgICAg
ICwgbV9ldmFsRW5hYmxlZCh0cnVlKQogICAgICAgICB7Ci0gICAgICAgICAgICBjb25zdHJ1Y3Rv
ckJvZHkodGhpcyk7CisgICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCB0aGlz
KTsKICAgICAgICAgfQogCiAgICAgICAgIEpTR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTT2JqZWN0KiB0aGlzVmFsdWUpCkBAIC0x
NjksMTEgKzE2OSwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgICwgbV93ZWFrUmFu
ZG9tKHN0YXRpY19jYXN0PHVuc2lnbmVkPihyYW5kb21OdW1iZXIoKSAqIChzdGQ6Om51bWVyaWNf
bGltaXRzPHVuc2lnbmVkPjo6bWF4KCkgKyAxLjApKSkKICAgICAgICAgICAgICwgbV9ldmFsRW5h
YmxlZCh0cnVlKQogICAgICAgICB7Ci0gICAgICAgICAgICBjb25zdHJ1Y3RvckJvZHkodGhpc1Zh
bHVlKTsKKyAgICAgICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIHRoaXNWYWx1ZSk7
CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIGNvbnN0cnVjdG9yQm9keShKU09iamVjdCogdGhp
c1ZhbHVlKQorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSlNPYmplY3QqIHRoaXNWYWx1ZSkKICAgICAgICAgeworICAgICAgICAgICAgQmFzZTo6
ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAgICAgICAgICBDT01QSUxFX0FTU0VSVChK
U0dsb2JhbE9iamVjdDo6QW5vbnltb3VzU2xvdENvdW50ID09IDEsIEpTR2xvYmFsT2JqZWN0X2hh
c19vbmx5X2Ffc2luZ2xlX3Nsb3QpOwogICAgICAgICAgICAgcHV0VGhpc1RvQW5vbnltb3VzVmFs
dWUoMCk7CiAgICAgICAgICAgICBpbml0KHRoaXNWYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKaW5kZXggNjdmZGEwNTBhNjI4OGQ3MGE5NDI5
OGNlMDJhNzI2ZDgyOGUyMzIxZC4uMTMxYmFhN2FmMzIxMjczYzdkYmUwMjAxNmMzZjdmNDAzYzU5
MzRkNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9i
amVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3Qu
aApAQCAtNDEsNyArNDEsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSlNOb3RBbk9iamVj
dChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICA6IEpTTm9uRmluYWxPYmplY3QoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBleGVjLT5nbG9iYWxEYXRhKCkubm90QW5PYmplY3RTdHJ1Y3R1cmUuZ2V0
KCkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERh
dGEoKSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgcHVibGljOgpAQCAtNDksNyArNDgsOSBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgSlNOb3RBbk9iamVjdCogY3JlYXRl
KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxs
b2NhdGVDZWxsPEpTTm90QW5PYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBKU05vdEFuT2JqZWN0KGV4
ZWMpOworICAgICAgICAgICAgSlNOb3RBbk9iamVjdCogb2JqZWN0ID0gbmV3IChhbGxvY2F0ZUNl
bGw8SlNOb3RBbk9iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIEpTTm90QW5PYmplY3QoZXhlYyk7Cisg
ICAgICAgICAgICBvYmplY3QtPmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7Cisg
ICAgICAgICAgICByZXR1cm4gb2JqZWN0OwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIFN0
cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1
ZSBwcm90b3R5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09OT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3Qu
Y3BwCmluZGV4IDA1YmRlMjgxOWEwNmY5MTQ5NDgyMDliZTQzZDMzNjhjOTA0ZTBmMjguLjE3MzE1
MmIyOTE5M2RmMjAyNDU4MTIzNzY3NjhmYmQ4OWRlNzM2MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCkBAIC01Niw2ICs1NiwxMiBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIEpTT05PYmplY3Q6OkpTT05PYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU09iamVjdFdpdGhHbG9iYWxPYmpl
Y3QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFs
T2JqZWN0KTsKK30KKwordm9pZCBKU09OT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9i
amVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChpbmhlcml0cygm
c19pbmZvKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT05PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3Qu
aAppbmRleCA3N2JmNDM2OTkxMWI2ZWM0MGIzMGFjZDgzNDI3M2VkYzM5OTM1ZWFhLi40ODBlNzRi
ZGI4MzQ5MzZiZDI5ZjcyZTZhY2RlMjQ2MTdkZTZhNWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCkBAIC00OSw2ICs0OSw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAogICAgIHByb3RlY3Rl
ZDoKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCopOwogICAgICAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Q
cm9wZXJ0eVNsb3QgfCBKU09iamVjdDo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xv
YmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdC5jcHAKaW5kZXggODg1NTMwZjEwZjc5OTAxZGZmNjQ4NDNhNzQzNDMwNDg4
ZjVmN2E0Zi4uYWU3MDM4MDhiMGZiNDU0ZjU1ZjU0MDNmMDYxOTliMTM3M2UwYjJjMCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhH
bG9iYWxPYmplY3QuY3BwCkBAIC0zMywxMyArMzMsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiBKU09i
amVjdFdpdGhHbG9iYWxPYmplY3Q6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEpTTm9uRmlu
YWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsKLSAgICBm
aW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsK
IH0KIAotSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Qo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6SlNPYmplY3RX
aXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUpCiAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKIHsK
LSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QpOwogfQogCiB2b2lk
IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQpAQCAtNTAsNyArNDgsNyBA
QCB2b2lkIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbAogICAgIGlmICghZ2xvYmFsT2JqZWN0KQogICAgICAg
ICBjbGVhckFub255bW91c1ZhbHVlKEdsb2JhbE9iamVjdFNsb3QpOwogICAgIGVsc2UKLSAgICAg
ICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xvYmFsRGF0YSwgR2xvYmFsT2JqZWN0U2xvdCwgZ2xvYmFs
T2JqZWN0KTsKKyAgICAgICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxE
YXRhKCksIEdsb2JhbE9iamVjdFNsb3QsIGdsb2JhbE9iamVjdCk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdFdpdGhHbG9iYWxPYmplY3QuaAppbmRleCAxMzBlMDdkNjkwNTJmZDIxZmIyYTcyNmYxMjI4
MTdjOGE3NmZiYzg4Li4zNzk4NDhiNjU0MzY0NTQ5MWI3MmE0NWFhMWNhNTdjNTQxYjJlMjY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9i
YWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdp
dGhHbG9iYWxPYmplY3QuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoK
ICAgICBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
KTsKLSAgICBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRhJiwgSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqKTsKKyAgICBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoSlNHbG9i
YWxEYXRhJiwgU3RydWN0dXJlKik7CiAKICAgICBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoVlB0
clN0ZWFsaW5nSGFja1R5cGUpCiAgICAgICAgIDogSlNOb25GaW5hbE9iamVjdChWUHRyU3RlYWxp
bmdIYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0
aWNTY29wZU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNT
Y29wZU9iamVjdC5oCmluZGV4IGIxMTkzZmRiZGVmZWZhZTIxZmY1ZjRjYzQzMWQzNDI0OWNlNmE4
YWMuLmZlZGNiNGU3ZjdiZWQ3Yjg5MTIzZTUxODE2ZWU2MjhkNDhhODgzMDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKQEAg
LTUwLDE0ICs1MCwxOSBAQCBuYW1lc3BhY2UgSlNDewogICAgICAgICBzdGF0aWMgU3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3Rv
KSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8o
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8p
OyB9CiAKICAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWdu
ZWQgYXR0cmlidXRlcykKKyAgICAgICAgeworICAgICAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKKyAgICAgICAgICAgIG1fcmVnaXN0ZXJTdG9yZS5zZXQo
ZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCB2YWx1ZSk7CisgICAgICAgICAgICBzeW1ib2xUYWJs
ZSgpLmFkZChpZGVudC5pbXBsKCksIFN5bWJvbFRhYmxlRW50cnkoLTEsIGF0dHJpYnV0ZXMpKTsK
KyAgICAgICAgfQogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBJc0Vudmlyb25tZW50UmVjb3JkIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3Zl
cnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU1Zhcmlh
YmxlT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIEpTU3Rh
dGljU2NvcGVPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwg
SlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcykKICAgICAgICAgICAgIDogSlNWYXJp
YWJsZU9iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmdsb2JhbERhdGEoKS5zdGF0aWNT
Y29wZVN0cnVjdHVyZS5nZXQoKSwgJm1fc3ltYm9sVGFibGUsIHJlaW50ZXJwcmV0X2Nhc3Q8UmVn
aXN0ZXIqPigmbV9yZWdpc3RlclN0b3JlICsgMSkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIG1f
cmVnaXN0ZXJTdG9yZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCB2YWx1ZSk7Ci0gICAg
ICAgICAgICBzeW1ib2xUYWJsZSgpLmFkZChpZGVudC5pbXBsKCksIFN5bWJvbFRhYmxlRW50cnko
LTEsIGF0dHJpYnV0ZXMpKTsKKyAgICAgICAgICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMsIGlkZW50
LCB2YWx1ZSwgYXR0cmlidXRlcyk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIFN5bWJv
bFRhYmxlIG1fc3ltYm9sVGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1ZhcmlhYmxlT2JqZWN0LmgKaW5kZXggZjcxZWQzMDk5NDliMzEyMzRhZGFmYzg4ZThhNjRh
NTg2OTUyOTIwMC4uM2YxMTg0YjlkZDg4NDY2MzMwNDExODlhZmM1YjdjZTEwMTFkOGJmNiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaApA
QCAtNzQsNyArNzQsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgICwgbV9zeW1ib2xU
YWJsZShzeW1ib2xUYWJsZSkKICAgICAgICAgICAgICwgbV9yZWdpc3RlcnMocmVpbnRlcnByZXRf
Y2FzdDxXcml0ZUJhcnJpZXI8VW5rbm93bj4qPihyZWdpc3RlcnMpKQogICAgICAgICB7Ci0gICAg
ICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICAgICAgfQogCiAgICAgICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaAppbmRleCAzYjQzODMx
MjQzOGRiYzczZTA4NjA3YWUzYjZmMGZmNDllMWFlZGJhLi4zZTU4OWYyNzE0M2UyNGQ3MDlkYjE2
MGVmOGVhMTViN2U2MDY2ZThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1dyYXBwZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1dyYXBwZXJPYmplY3QuaApAQCAtNTMsNyArNTMsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICBpbmxpbmUgSlNXcmFwcGVyT2JqZWN0OjpKU1dyYXBwZXJPYmplY3QoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICAgICAgOiBKU05vbkZpbmFsT2Jq
ZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKICAgICB7Ci0gICAgICAgIGZpbmlzaENyZWF0aW9u
KGdsb2JhbERhdGEpOwogICAgIH0KIAogICAgIGlubGluZSBKU1ZhbHVlIEpTV3JhcHBlck9iamVj
dDo6aW50ZXJuYWxWYWx1ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L01hdGhPYmplY3QuY3BwCmluZGV4IGU0YzRiNWJlYzhkZDFmOWI4NGU0ZWY3YjE2YTkyZjU5MGI1
NzcyMTkuLjVlYzU2YTM2ZTczNzU1OWEzMGRmYjEyMDhhMGMxM2NlYmE5ODdiNmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCkBAIC04Nyw2ICs4Nywx
MiBAQCBjb25zdCBDbGFzc0luZm8gTWF0aE9iamVjdDo6c19pbmZvID0geyAiTWF0aCIsICZKU09i
amVjdFdpdGhHbG9iYWxPYmplY3Q6OnNfaW5mbwogTWF0aE9iamVjdDo6TWF0aE9iamVjdChFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3Ry
dWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCk7Cit9CisK
K3ZvaWQgTWF0aE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2Jh
bE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChpbmhlcml0
cygmc19pbmZvKSk7CiAKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9i
YWxEYXRhKCksIElkZW50aWZpZXIoZXhlYywgIkUiKSwganNOdW1iZXIoZXhwKDEuMCkpLCBEb250
RGVsZXRlIHwgRG9udEVudW0gfCBSZWFkT25seSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9NYXRoT2JqZWN0LmgKaW5kZXggOWNmYThkMDI3ZGUzY2Y4NmQyZDMyNjA3MDdmZTk3YWRl
MjZhNTFmNC4uN2ZiZWQ5MGJmYmQyY2IxMTVhZDg1MjRmZTQzZWQ3YTRmNjBhZTI4YSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaApAQCAtNDcsNiArNDcsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgorICAgICAgICB2
b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0Kik7CiAgICAgICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blBy
b3BlcnR5U2xvdCB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKICAgICB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcAppbmRleCAxMzk0NWM3
NTBlMjViNTY1NWUxNWFmYjZmNzA2YTE2ZDE3NDQ0NWMwLi4yMjY3NmQwZmZhOGNjNzQ2YWQxNmQ2
ZTQyOGYzYmM4Y2Q3MGQ3NjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlck9iamVjdC5jcHAKQEAgLTM0LDYgKzM0LDEyIEBAIGNvbnN0IENsYXNzSW5mbyBOdW1i
ZXJPYmplY3Q6OnNfaW5mbyA9IHsgIk51bWJlciIsICZKU1dyYXBwZXJPYmplY3Q6OnNfaW5mbywg
MCwKIE51bWJlck9iamVjdDo6TnVtYmVyT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU1dyYXBwZXJPYmplY3QoZ2xvYmFsRGF0YSwg
c3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOworfQorCit2b2lk
IE51bWJlck9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQor
eworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIEFTU0VSVChpbmhl
cml0cygmc19pbmZvKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bWJlck9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVt
YmVyT2JqZWN0LmgKaW5kZXggN2FjODFkNjM4YTUxMWVmODY1YzIwZjg1MzEzMGI5MGI2MWNhYWUw
Yi4uOTAxZjVlYjRiMGYzYjU0MTdmZGM5OWQyMjVlZWEyZjcxMzQ1MjFmYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmgKQEAgLTI4LDYgKzI4LDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgTnVtYmVyT2JqZWN0IDogcHVibGljIEpTV3JhcHBl
ck9iamVjdCB7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBOdW1iZXJPYmplY3QoSlNHbG9iYWxE
YXRhJiwgU3RydWN0dXJlKik7CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxE
YXRhJik7CiAKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSlNXcmFwcGVyT2JqZWN0IEJh
c2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90
b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBl
LmNwcAppbmRleCAwODdjZDI2MGNmNTVkM2YxNWIzMzY1MjUzNmE1NmJiNzc0MDE3OTlkLi41MDg5
YTVmZmRiZjc3M2QwZmY3ZTg2OTkyMTM1ZDU1NWFhMjk1NzY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKQEAgLTYzLDExICs2Mywx
MCBAQCBjb25zdCBDbGFzc0luZm8gT2JqZWN0UHJvdG90eXBlOjpzX2luZm8gPSB7ICJPYmplY3Qi
LCAmSlNOb25GaW5hbE9iamVjdDo6c19pbmZvLAogCiBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxM
KE9iamVjdFByb3RvdHlwZSk7CiAKLU9iamVjdFByb3RvdHlwZTo6T2JqZWN0UHJvdG90eXBlKEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBz
dHVjdHVyZSkKK09iamVjdFByb3RvdHlwZTo6T2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhl
YywgU3RydWN0dXJlKiBzdHVjdHVyZSkKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBzdHVjdHVyZSkKICAgICAsIG1faGFzTm9Qcm9wZXJ0aWVzV2l0aFVJbnQzMk5h
bWVzKHRydWUpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBnbG9i
YWxPYmplY3QpOwogfQogCiB2b2lkIE9iamVjdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAppbmRleCAw
YTJjOGZkNDhlZTdkNDlkZWFiZjkxYmVlMDU4NjBiMmZlOTNkYTMxLi41ODRhYzMwZGZjYTI0NzYw
ODcwMGRjMDZlN2ZhYWRkNDExZGZmODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PYmplY3RQcm90b3R5cGUuaApAQCAtMzEsNyArMzEsOSBAQCBuYW1lc3BhY2UgSlND
IHsKIAogICAgICAgICBzdGF0aWMgT2JqZWN0UHJvdG90eXBlKiBjcmVhdGUoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
ICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPE9iamVjdFBy
b3RvdHlwZT4oKmV4ZWMtPmhlYXAoKSkpIE9iamVjdFByb3RvdHlwZShleGVjLCBnbG9iYWxPYmpl
Y3QsIHN0cnVjdHVyZSk7CisgICAgICAgICAgICBPYmplY3RQcm90b3R5cGUqIHByb3RvdHlwZSA9
IG5ldyAoYWxsb2NhdGVDZWxsPE9iamVjdFByb3RvdHlwZT4oKmV4ZWMtPmhlYXAoKSkpIE9iamVj
dFByb3RvdHlwZShleGVjLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgcHJvdG90eXBlLT5maW5p
c2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CisgICAgICAgICAg
ICByZXR1cm4gcHJvdG90eXBlOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IENs
YXNzSW5mbyBzX2luZm87CkBAIC00OCw3ICs1MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIEpTR2xvYmFsT2JqZWN0Kik7CiAK
ICAgICBwcml2YXRlOgotICAgICAgICBPYmplY3RQcm90b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9i
YWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKKyAgICAgICAgT2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0
ZSosIFN0cnVjdHVyZSopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNv
bnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmly
dHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVy
JiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNw
cAppbmRleCA0Nzc5YjI1NmUwNGY1ZGMzYzI1YTZiNmMxNDk0MGMzNjM2ODRlNGQzLi5jOGExMzNi
NDI1Njg3MzE1ZmY2ZTgyMWMwYmEyN2E1N2ExNWEzM2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0xMDksOCArMTA5
LDE0IEBAIFJlZ0V4cENvbnN0cnVjdG9yOjpSZWdFeHBDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4
ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiB9CiAKIFJlZ0V4cE1hdGNoZXNBcnJheTo6
UmVnRXhwTWF0Y2hlc0FycmF5KEV4ZWNTdGF0ZSogZXhlYywgUmVnRXhwQ29uc3RydWN0b3JQcml2
YXRlKiBkYXRhKQotICAgIDogSlNBcnJheShleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKS0+cmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0dXJlKCksIGRhdGEtPmxh
c3ROdW1TdWJQYXR0ZXJucyArIDEsIENyZWF0ZUluaXRpYWxpemVkKQorICAgIDogSlNBcnJheShl
eGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cmVnRXhwTWF0
Y2hlc0FycmF5U3RydWN0dXJlKCkpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFs
RGF0YSgpLCBkYXRhKTsKK30KKwordm9pZCBSZWdFeHBNYXRjaGVzQXJyYXk6OmZpbmlzaENyZWF0
aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUmVnRXhwQ29uc3RydWN0b3JQcml2YXRlKiBk
YXRhKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGRhdGEtPmxhc3RO
dW1TdWJQYXR0ZXJucyArIDEsIENyZWF0ZUluaXRpYWxpemVkKTsKICAgICBSZWdFeHBDb25zdHJ1
Y3RvclByaXZhdGUqIGQgPSBuZXcgUmVnRXhwQ29uc3RydWN0b3JQcml2YXRlOwogICAgIGQtPmlu
cHV0ID0gZGF0YS0+bGFzdElucHV0OwogICAgIGQtPmxhc3RJbnB1dCA9IGRhdGEtPmxhc3RJbnB1
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNo
ZXNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0Fy
cmF5LmgKaW5kZXggZWQyMWJjODllNWUyN2QzNjFlNjUzMzllNGQ0M2Q2YTE2ZWFhNGRmMi4uODdk
NTljNzE0ZWI1NGRmMjgxNzNkZmVkZWJkZWQ1NDZmNjUxYzNhYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKQEAgLTM3LDYgKzM3
LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KICAgICAgICAgdmlydHVhbCB+UmVnRXhw
TWF0Y2hlc0FycmF5KCk7CiAKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oSlNHbG9iYWxEYXRhJiwgUmVnRXhwQ29uc3RydWN0b3JQcml2YXRlKiBkYXRhKTsKKwog
ICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYgc2xvdCkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cE9iamVjdC5jcHAKaW5kZXggMmMxMjY1NTkyZTg2ODUzNDQ5MjhlYzRkZTExZGZmMTkwMDQx
NDI5Ny4uODQxZDkzOTQxMTdhYjA5MTE3MzhkMGM0ODVlM2ZlNTBiNWExZGQxNiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCkBAIC02Niw2ICs2
NiwxMiBAQCBSZWdFeHBPYmplY3Q6OlJlZ0V4cE9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUgogICAgIDogSlNPYmplY3RXaXRoR2xvYmFs
T2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogICAgICwgZChhZG9wdFB0cihuZXcgUmVn
RXhwT2JqZWN0RGF0YShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgdGhpcywgcmVnRXhwKSkp
CiB7CisgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0KTsKK30KKwordm9pZCBSZWdFeHBP
YmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7Cisg
ICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2Jh
bE9iamVjdCk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAppbmRleCA3M2YyMTU0OTI2NzAw
NzliNTkzOTJhMjhlNWM2MTNmM2NkZjBiZTEzLi5iY2U0NTVhZjgxMmY5MWJhYmIyMjYwNzBhZDIw
ZTllMDQ2ZjI0MTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBP
YmplY3QuaApAQCAtNzQsNiArNzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByb3RlY3Rl
ZDoKICAgICAgICAgUmVnRXhwT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgUmVn
RXhwKik7CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqKTsKICAg
ICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzVmlz
aXRDaGlsZHJlbiB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdDo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwCmlu
ZGV4IDk2ZDk0ZDg0ZWFiYjUyNjA1OTY5N2ZlMzM2ZGFhYjc4MjEzNTRiNTQuLmU2NjZkZWUxNTc5
MmI3ZmJlODk3ZTYwZDJjNTAzZDYyM2I3NmZkODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5jcHAKQEAgLTMxLDcgKzMx
LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiBTdHJpY3RFdmFsQWN0aXZhdGlvbjo6U3RyaWN0RXZhbEFj
dGl2YXRpb24oRXhlY1N0YXRlKiBleGVjKQogICAgIDogSlNOb25GaW5hbE9iamVjdChleGVjLT5n
bG9iYWxEYXRhKCksIGV4ZWMtPmdsb2JhbERhdGEoKS5zdHJpY3RFdmFsQWN0aXZhdGlvblN0cnVj
dHVyZS5nZXQoKSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOwog
fQogCiBib29sIFN0cmljdEV2YWxBY3RpdmF0aW9uOjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5oCmluZGV4IDc2OTgxZmRiNDI4OTEzYzY3MDY0MWY4
MGI3YmRiMTFiNWYxYWY4MTQuLjhhYTIyMzRjODdjNTE1OWJlNTlkNjIwYzJhZDgxYTQwZTM5Njhm
YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxB
Y3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZh
bEFjdGl2YXRpb24uaApAQCAtMzYsNyArMzYsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3Ry
aWN0RXZhbEFjdGl2YXRpb24qIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgewotICAgICAg
ICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8U3RyaWN0RXZhbEFjdGl2YXRpb24+KCpleGVjLT5o
ZWFwKCkpKSBTdHJpY3RFdmFsQWN0aXZhdGlvbihleGVjKTsKKyAgICAgICAgU3RyaWN0RXZhbEFj
dGl2YXRpb24qIGFjdGl2YXRpb24gPSBuZXcgKGFsbG9jYXRlQ2VsbDxTdHJpY3RFdmFsQWN0aXZh
dGlvbj4oKmV4ZWMtPmhlYXAoKSkpIFN0cmljdEV2YWxBY3RpdmF0aW9uKGV4ZWMpOworICAgICAg
ICBhY3RpdmF0aW9uLT5maW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOworICAgICAg
ICByZXR1cm4gYWN0aXZhdGlvbjsKICAgICB9CiAKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJv
cGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKaW5kZXggMWQwYzdhYmY5OGQwODdjMGI1
MTdiNTIwMjQ2ZTJhOGVmZWIzMDc2Ni4uYjhmYWQ5ZTQ5NzM3N2FjYTc0NTcwMTNjZGEzNzAzYjhm
MjcwNTkzMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmpl
Y3QuY3BwCkBAIC0zMiw2ICszMiwxMiBAQCBjb25zdCBDbGFzc0luZm8gU3RyaW5nT2JqZWN0Ojpz
X2luZm8gPSB7ICJTdHJpbmciLCAmSlNXcmFwcGVyT2JqZWN0OjpzX2luZm8sIDAsCiBTdHJpbmdP
YmplY3Q6OlN0cmluZ09iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSog
c3RydWN0dXJlLCBKU1N0cmluZyogc3RyaW5nKQogICAgIDogSlNXcmFwcGVyT2JqZWN0KGdsb2Jh
bERhdGEsIHN0cnVjdHVyZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBzdHJp
bmcpOworfQorCit2b2lkIFN0cmluZ09iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU1N0cmluZyogc3RyaW5nKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0
aW9uKGdsb2JhbERhdGEpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgc2V0
SW50ZXJuYWxWYWx1ZShnbG9iYWxEYXRhLCBzdHJpbmcpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAppbmRleCA3ZDEzNWMxZTQxMjJmYWU3ZmFmZjE4
ZGIyZTFiYTM3ZDc1Y2Q0NTVmLi4wYjBjMjAwNjQ4YmViZjhhZTY0YjVjNzc5ZDFhNzU2M2MxOTY1
YmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaApA
QCAtNjAsNiArNjAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAgcHJvdGVj
dGVkOgorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIEpTU3RyaW5n
Kik7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU1dy
YXBwZXJPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogICAgICAgICBTdHJpbmdPYmplY3QoSlNHbG9i
YWxEYXRhJiwgU3RydWN0dXJlKiwgSlNTdHJpbmcqKTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFu
Z2VMb2cKaW5kZXggMTBhNjg2ZGNjNjk4MTBmNmM0ZjVmN2RhMTc3ZTVhZjAwZTRhYmQ3YS4uNzY5
ZTQ0MDg5Y2JmMDhiN2IxMDY1YTA5MTk3ZmNlYWRjODVlN2FmZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDgtMzAgIE1hcmsgSGFobmVuYmVyZyAgPG1o
YWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBVbnppcCBpbml0aWFsaXphdGlvbiBsaXN0
cyBhbmQgY29uc3RydWN0b3JzIGluIEpTQ2VsbCBoaWVyYXJjaHkgKDQvNykKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MTc0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29tcGxldGVkIHRoZSBmb3VydGgg
bGV2ZWwgb2YgdGhlIHJlZmFjdG9yaW5nIHRvIGFkZCBmaW5pc2hDcmVhdGlvbigpIAorICAgICAg
ICBtZXRob2RzIHRvIGFsbCBjbGFzc2VzIHdpdGhpbiB0aGUgSlNDZWxsIGhpZXJhcmNoeSB3aXRo
IG5vbi10cml2aWFsIAorICAgICAgICBjb25zdHJ1Y3RvciBib2RpZXMuCisKKyAgICAgICAgVGhp
cyBwcmltYXJpbHkgY29uc2lzdHMgb2YgcHVzaGluZyB0aGUgY2FsbHMgdG8gZmluaXNoQ3JlYXRp
b24oKSBkb3duIAorICAgICAgICBpbnRvIHRoZSBjb25zdHJ1Y3RvcnMgb2YgdGhlIHN1YmNsYXNz
ZXMgb2YgdGhlIHNlY29uZCBsZXZlbCBvZiB0aGUgaGllcmFyY2h5IAorICAgICAgICBhcyB3ZWxs
IGFzIHB1bGxpbmcgdGhlIGZpbmlzaENyZWF0aW9uKCkgY2FsbHMgb3V0IGludG8gdGhlIGNsYXNz
J3MgY29ycmVzcG9uZGluZworICAgICAgICBjcmVhdGUoKSBtZXRob2QgaWYgaXQgaGFzIG9uZS4g
IERvaW5nIGJvdGggc2ltdWx0YW5lb3VzbHkgYWxsb3dzIHVzIHRvIAorICAgICAgICBtYWludGFp
biB0aGUgaW52YXJpYW50IHRoYXQgdGhlIGZpbmlzaENyZWF0aW9uKCkgbWV0aG9kIGNoYWluIGlz
IGNhbGxlZCBleGFjdGx5IAorICAgICAgICBvbmNlIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgYW4g
b2JqZWN0LCBzaW5jZSBjYWxsaW5nIGl0IGFueSBvdGhlciBudW1iZXIgb2YgCisgICAgICAgIHRp
bWVzICgwLCAyLCBvciBtb3JlKSB3aWxsIGNhdXNlIGFuIGFzc2VydGlvbiBmYWlsdXJlLgorCisg
ICAgICAgICogVXNlck9iamVjdEltcC5jcHA6CisgICAgICAgIChVc2VyT2JqZWN0SW1wOjpVc2Vy
T2JqZWN0SW1wKToKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1wLmg6CisgICAgICAgIChVc2VyT2Jq
ZWN0SW1wOjpjcmVhdGUpOgorCiAyMDExLTA4LTI5ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVu
YmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgVW56aXAgaW5pdGlhbGl6YXRpb24gbGlzdHMgYW5k
IGNvbnN0cnVjdG9ycyBpbiBKU0NlbGwgaGllcmFyY2h5ICgzLzcpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvVXNlck9iamVjdEltcC5jcHAKaW5kZXggMGQ0ZDQ1YWY3MmY4YzI3NGQyMDMwZmJlM2I4NmJh
ZWM5ZTRmZDIxNi4uYWQzNjkzYjNhZDEzMDVlMGE5YzI0NmViNmM5OTgxMzM2MWUwZjRiZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcApAQCAtMzgsNyArMzgsNiBAQCBV
c2VyT2JqZWN0SW1wOjpVc2VyT2JqZWN0SW1wKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIEpTVQogICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRh
LCBzdHJ1Y3R1cmUpCiAgICAgLCBmSlNVc2VyT2JqZWN0KChKU1VzZXJPYmplY3QqKXVzZXJPYmpl
Y3QtPlJldGFpbigpKQogewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogfQogCiBV
c2VyT2JqZWN0SW1wOjp+VXNlck9iamVjdEltcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdEdsdWUvVXNlck9iamVjdEltcC5oIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmpl
Y3RJbXAuaAppbmRleCA4ZWU4ZTJhNzA0N2Y4NjlhMjk3MjY1Y2MxYzI2YzNmMzZmOTA4YTgwLi4x
NTk2MDcwMGNmYWM1YWEwNDQzYTg5YmE4NjM4NGNiN2QxNjc3ZTE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKQEAgLTQwLDcgKzQwLDkgQEAgcHVibGljOgogCiAgICAgc3Rh
dGljIFVzZXJPYmplY3RJbXAqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBKU1VzZXJPYmplY3QqIHVzZXJPYmplY3QpCiAgICAgewotICAgICAg
ICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8VXNlck9iamVjdEltcD4oZ2xvYmFsRGF0YS5oZWFw
KSkgVXNlck9iamVjdEltcChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUsIHVzZXJPYmplY3QpOworICAg
ICAgICBVc2VyT2JqZWN0SW1wKiBvYmplY3QgPSBuZXcgKGFsbG9jYXRlQ2VsbDxVc2VyT2JqZWN0
SW1wPihnbG9iYWxEYXRhLmhlYXApKSBVc2VyT2JqZWN0SW1wKGdsb2JhbERhdGEsIHN0cnVjdHVy
ZSwgdXNlck9iamVjdCk7CisgICAgICAgIG9iamVjdC0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0
YSk7CisgICAgICAgIHJldHVybiBvYmplY3Q7CiAgICAgfQogICAgIAogICAgIHZpcnR1YWwgflVz
ZXJPYmplY3RJbXAoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1ZjQxYjI1NzljZmYyNzI4ODgyNGQ1MjhmMzRj
MTliYzMwYmU5ZmI4Li4wNTcxNWQyMTRkZjc2ZDBiNmZmZmEwOGRkYjQ0ZmQ2N2Q5ZTYzMDU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMDgtMzAgIE1hcmsgSGFobmVuYmVyZyAg
PG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBVbnppcCBpbml0aWFsaXphdGlvbiBs
aXN0cyBhbmQgY29uc3RydWN0b3JzIGluIEpTQ2VsbCBoaWVyYXJjaHkgKDQvNykKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MTc0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisg
ICAgICAgIENvbXBsZXRlZCB0aGUgZm91cnRoIGxldmVsIG9mIHRoZSByZWZhY3RvcmluZyB0byBh
ZGQgZmluaXNoQ3JlYXRpb24oKSAKKyAgICAgICAgbWV0aG9kcyB0byBhbGwgY2xhc3NlcyB3aXRo
aW4gdGhlIEpTQ2VsbCBoaWVyYXJjaHkgd2l0aCBub24tdHJpdmlhbCAKKyAgICAgICAgY29uc3Ry
dWN0b3IgYm9kaWVzLgorCisgICAgICAgIFRoaXMgcHJpbWFyaWx5IGNvbnNpc3RzIG9mIHB1c2hp
bmcgdGhlIGNhbGxzIHRvIGZpbmlzaENyZWF0aW9uKCkgZG93biAKKyAgICAgICAgaW50byB0aGUg
Y29uc3RydWN0b3JzIG9mIHRoZSBzdWJjbGFzc2VzIG9mIHRoZSBzZWNvbmQgbGV2ZWwgb2YgdGhl
IGhpZXJhcmNoeSAKKyAgICAgICAgYXMgd2VsbCBhcyBwdWxsaW5nIHRoZSBmaW5pc2hDcmVhdGlv
bigpIGNhbGxzIG91dCBpbnRvIHRoZSBjbGFzcydzIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgY3Jl
YXRlKCkgbWV0aG9kIGlmIGl0IGhhcyBvbmUuICBEb2luZyBib3RoIHNpbXVsdGFuZW91c2x5IGFs
bG93cyB1cyB0byAKKyAgICAgICAgbWFpbnRhaW4gdGhlIGludmFyaWFudCB0aGF0IHRoZSBmaW5p
c2hDcmVhdGlvbigpIG1ldGhvZCBjaGFpbiBpcyBjYWxsZWQgZXhhY3RseSAKKyAgICAgICAgb25j
ZSBkdXJpbmcgdGhlIGNyZWF0aW9uIG9mIGFuIG9iamVjdCwgc2luY2UgY2FsbGluZyBpdCBhbnkg
b3RoZXIgbnVtYmVyIG9mIAorICAgICAgICB0aW1lcyAoMCwgMiwgb3IgbW9yZSkgd2lsbCBjYXVz
ZSBhbiBhc3NlcnRpb24gZmFpbHVyZS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93U2hlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6SlNET01X
aW5kb3dTaGVsbCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpjcmVhdGUp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaDoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV3JhcHBl
cjo6SlNET01XcmFwcGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmNyZWF0ZVdpbmRvd1No
ZWxsKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAg
ICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRp
bWUuaDoKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW06CisgICAgICAgIChK
U0M6OkJpbmRpbmdzOjpPYmpjRmFsbGJhY2tPYmplY3RJbXA6Ok9iamNGYWxsYmFja09iamVjdElt
cCk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjRmFsbGJhY2tPYmplY3RJbXA6OmZpbmlz
aENyZWF0aW9uKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6CisgICAgICAg
IChKU0M6OlJ1bnRpbWVBcnJheTo6UnVudGltZUFycmF5KToKKyAgICAgICAgKEpTQzo6UnVudGlt
ZUFycmF5OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXku
aDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpC
aW5kaW5nczo6UnVudGltZU9iamVjdDo6UnVudGltZU9iamVjdCk6CisgICAgICAgIChKU0M6OkJp
bmRpbmdzOjpSdW50aW1lT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYnJpZGdl
L3J1bnRpbWVfb2JqZWN0Lmg6CisKIDIwMTEtMDgtMzAgIEFudHRpIEtvaXZpc3RvICA8YW50dGlA
YXBwbGUuY29tPgogCiAgICAgICAgIHF1ZXJ5U2VsZWN0b3IvcXVlcnlTZWxlY3RvckFsbCBzaG91
bGQgdXNlIHNlbGVjdG9yIGNoZWNrZXIgZmFzdCBwYXRoIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAppbmRleCAwMGZhYzBhN2VlMTBkMTczNzY3
ZGQzZWM4NWY2OGU5Nzk2MDgyNWY3Li41ZDBkNDM2Y2M5Njg3M2FkOWZhMDM5NWYzNTVjZWFlZTMy
MTUzODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d1NoZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1No
ZWxsLmNwcApAQCAtNDMsMTEgKzQzLDEwIEBAIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNE
T01XaW5kb3dTaGVsbCk7CiAKIGNvbnN0IENsYXNzSW5mbyBKU0RPTVdpbmRvd1NoZWxsOjpzX2lu
Zm8gPSB7ICJKU0RPTVdpbmRvd1NoZWxsIiwgJkJhc2U6OnNfaW5mbywgMCwgMCB9OwogCi1KU0RP
TVdpbmRvd1NoZWxsOjpKU0RPTVdpbmRvd1NoZWxsKFBhc3NSZWZQdHI8RE9NV2luZG93PiB3aW5k
b3csIFN0cnVjdHVyZSogc3RydWN0dXJlLCBET01XcmFwcGVyV29ybGQqIHdvcmxkKQorSlNET01X
aW5kb3dTaGVsbDo6SlNET01XaW5kb3dTaGVsbChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRE9NV3Jh
cHBlcldvcmxkKiB3b3JsZCkKICAgICA6IEJhc2UoKndvcmxkLT5nbG9iYWxEYXRhKCksIHN0cnVj
dHVyZSkKICAgICAsIG1fd29ybGQod29ybGQpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oKndvcmxk
LT5nbG9iYWxEYXRhKCksIHdpbmRvdyk7CiB9CiAKIHZvaWQgSlNET01XaW5kb3dTaGVsbDo6Zmlu
aXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBQYXNzUmVmUHRyPERPTVdpbmRv
dz4gd2luZG93KQpAQCAtMTgxLDYgKzE4MCwxMyBAQCB2b2lkKiBKU0RPTVdpbmRvd1NoZWxsOjpv
cGVyYXRvciBuZXcoc2l6ZV90IHNpemUpCiAgICAgcmV0dXJuIGhlYXAuYWxsb2NhdGUoc2l6ZSk7
CiB9CiAKK0pTRE9NV2luZG93U2hlbGwqIEpTRE9NV2luZG93U2hlbGw6OmNyZWF0ZShQYXNzUmVm
UHRyPERPTVdpbmRvdz4gd2luZG93LCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBET01XcmFw
cGVyV29ybGQqIHdvcmxkKQoreworICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gbmV3IEpT
RE9NV2luZG93U2hlbGwoc3RydWN0dXJlLCB3b3JsZCk7CisgICAgc2hlbGwtPmZpbmlzaENyZWF0
aW9uKCp3b3JsZC0+Z2xvYmFsRGF0YSgpLCB3aW5kb3cpOworICAgIHJldHVybiBzaGVsbDsgCit9
CisKIC8vIC0tLS0KIC8vIENvbnZlcnNpb24gbWV0aG9kcwogLy8gLS0tLQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCmluZGV4IDU0NTk2NjEyYzdkYTUx
MjJhMzc3NTY1ZWE0YTBiZTE3ZTczMDEzMDQuLjMwMjgzNGZmYzY3OTU0MzRkYmU0N2Y0M2VlOTJl
NjZhNjY3YjRjYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93U2hlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d1NoZWxsLmgKQEAgLTU1LDcgKzU1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAg
IERPTVdpbmRvdyogaW1wbCgpIGNvbnN0OwogCi0gICAgICAgIHZvaWQqIG9wZXJhdG9yIG5ldyhz
aXplX3QpOworICAgICAgICBzdGF0aWMgSlNET01XaW5kb3dTaGVsbCogY3JlYXRlKFBhc3NSZWZQ
dHI8RE9NV2luZG93PiwgSlNDOjpTdHJ1Y3R1cmUqLCBET01XcmFwcGVyV29ybGQqKTsKIAogICAg
ICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkgCiAgICAgICAgIHsKQEAg
LTY1LDkgKzY1LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgRE9NV3JhcHBlcldv
cmxkKiB3b3JsZCgpIHsgcmV0dXJuIG1fd29ybGQuZ2V0KCk7IH0KIAogICAgIHByb3RlY3RlZDoK
KyAgICAgICAgSlNET01XaW5kb3dTaGVsbChKU0M6OlN0cnVjdHVyZSosIERPTVdyYXBwZXJXb3Js
ZCopOwogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6SlNHbG9iYWxEYXRhJiwgUGFz
c1JlZlB0cjxET01XaW5kb3c+KTsKIAogICAgIHByaXZhdGU6CisgICAgICAgIHZvaWQqIG9wZXJh
dG9yIG5ldyhzaXplX3QpOwogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVz
VmlzaXRDaGlsZHJlbiB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0
cnVjdHVyZUZsYWdzOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuKEpTQzo6
U2xvdFZpc2l0b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmgK
aW5kZXggOWE0YWNhNWM1MWI4Y2ZlYjc1MzBiMmE2ZTBlNzk4NDUxZmQ4NThlNi4uMWI4MjE5NzAz
Y2Y5MzkyMGQwYjg3N2M3NmQ3NzY1ZTdhYmYxMGI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XcmFwcGVyLmgKQEAgLTU5LDYgKzU5LDcgQEAgcHJvdGVjdGVkOgogICAgICAg
ICAvLyBuZXcgSmF2YVNjcmlwdCBvYmplY3RzIG9uIGRldGFjaGVkIHdpbmRvd3MgZHVlIHRvIERP
TVdpbmRvdzo6ZG9jdW1lbnQoKQogICAgICAgICAvLyBuZWVkaW5nIHRvIHJlYWNoIHRocm91Z2gg
dGhlIGZyYW1lIHRvIGdldCB0byB0aGUgRG9jdW1lbnQqLiAgU2VlIGJ1ZyAyNzY0MC4KICAgICAg
ICAgLy8gQVNTRVJUKGdsb2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAg
ICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9i
amVjdCk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRDb250cm9sbGVyLmNwcAppbmRleCA4NzAyOWQxZGIwMTIzMTQyM2IxZTg4YzVhYzVmOTUxNDBj
ZDk2MTZhLi5kMjVjNzIyYTQ5NWMzNWQxZGRhMWZiYTY1NjUxYmU0NzQyZjAyZTQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMTA4
LDcgKzEwOCw3IEBAIEpTRE9NV2luZG93U2hlbGwqIFNjcmlwdENvbnRyb2xsZXI6OmNyZWF0ZVdp
bmRvd1NoZWxsKERPTVdyYXBwZXJXb3JsZCogd29ybGQpCiB7CiAgICAgQVNTRVJUKCFtX3dpbmRv
d1NoZWxscy5jb250YWlucyh3b3JsZCkpOwogICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gSlNE
T01XaW5kb3dTaGVsbDo6Y3JlYXRlU3RydWN0dXJlKCp3b3JsZC0+Z2xvYmFsRGF0YSgpLCBqc051
bGwoKSk7Ci0gICAgU3Ryb25nPEpTRE9NV2luZG93U2hlbGw+IHdpbmRvd1NoZWxsKCp3b3JsZC0+
Z2xvYmFsRGF0YSgpLCBuZXcgSlNET01XaW5kb3dTaGVsbChtX2ZyYW1lLT5kb21XaW5kb3coKSwg
c3RydWN0dXJlLCB3b3JsZCkpOworICAgIFN0cm9uZzxKU0RPTVdpbmRvd1NoZWxsPiB3aW5kb3dT
aGVsbCgqd29ybGQtPmdsb2JhbERhdGEoKSwgSlNET01XaW5kb3dTaGVsbDo6Y3JlYXRlKG1fZnJh
bWUtPmRvbVdpbmRvdygpLCBzdHJ1Y3R1cmUsIHdvcmxkKSk7CiAgICAgU3Ryb25nPEpTRE9NV2lu
ZG93U2hlbGw+IHdpbmRvd1NoZWxsMih3aW5kb3dTaGVsbCk7CiAgICAgbV93aW5kb3dTaGVsbHMu
YWRkKHdvcmxkLCB3aW5kb3dTaGVsbCk7CiAgICAgd29ybGQtPmRpZENyZWF0ZVdpbmRvd1NoZWxs
KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQppbmRleCBkZWFhNWY4ODAwNTlmOTM0MmYyZDk1OGJkOTg4MjhhMWY2ZWUwYmQ1
Li4xMTJlZWQwZThjYTc5NWRmNWU1ZDQyOWUxZWJiMGZlYmQxOGE3OWZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTA1
Nyw3ICsxMDU3LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICB2aXJ0dWFsIHZvaWQgZGVmaW5lR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqIGdldHRlckZ1bmN0
aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkN1c3RvbVByb3RvdHlwZURlZmluZUdldHRlciJ9OwogCiAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIlxucHJpdmF0ZTpcbiIpOwotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgJHtjbGFzc05hbWV9UHJvdG90eXBlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1
cmUpIDogSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwgZ2xvYmFsT2Jq
ZWN0LCBzdHJ1Y3R1cmUpIHsgfVxuIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAk
e2NsYXNzTmFtZX1Qcm90b3R5cGUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkg
OiBKU0M6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpIHsg
ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0KTsgfVxuIik7CiAKICAgICAj
IHN0cnVjdHVyZSBmbGFncwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJwcm90ZWN0ZWQ6XG4i
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5o
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmgKaW5kZXggZDgwMTkw
MTA2NzU5ZTMxNjBkZjUzZThiM2IxZGYwNzQ2NTBjNzZlZS4uMTc1M2MwYmM3ZWUwOTYxMjgzYWNj
ZGI2ZjljNWQ3ZWEyZmZjNTQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29i
amMvb2JqY19ydW50aW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19y
dW50aW1lLmgKQEAgLTExNiw2ICsxMTYsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBTdHJ1
Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICB9CiAK
K3Byb3RlY3RlZDoKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0Kik7CisK
IHByaXZhdGU6CiAgICAgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wKEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlKiwgT2JqY0luc3RhbmNlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsK
ICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRP
d25Qcm9wZXJ0eVNsb3QgfCBKU09iamVjdDo6U3RydWN0dXJlRmxhZ3M7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KaW5kZXggNzUwYmM3ZWVmZGUxZTM4YTEzNjc2
Y2VhZjA5MjJkZTcxZjg1OTlkZi4uZGYwZTcxYzdmZWNiNjJlMTZmNzVkYTkxMjAzMWZhOTZiMWEy
YTdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1l
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQpAQCAt
MjAxLDYgKzIwMSwxMiBAQCBPYmpjRmFsbGJhY2tPYmplY3RJbXA6Ok9iamNGYWxsYmFja09iamVj
dEltcChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1YwogICAgICwgX2luc3RhbmNl
KGkpCiAgICAgLCBfaXRlbShwcm9wZXJ0eU5hbWUpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZ2xv
YmFsT2JqZWN0KTsKK30KKwordm9pZCBPYmpjRmFsbGJhY2tPYmplY3RJbXA6OmZpbmlzaENyZWF0
aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNoQ3Jl
YXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CiAgICAgQVNT
RVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
YXJyYXkuY3BwCmluZGV4IGI1ZjdhMDc4YjJjMDBjZjhkZmRjODA5MGM3YWY4NDAyMTI0ZDY1N2Iu
LmUwMWExNWYzN2NjOTFjNDU4ZWRhMTQxYzc0ODZkOGMyNjljNmRjYjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKQEAgLTQwLDYgKzQwLDEyIEBAIGNvbnN0IENsYXNz
SW5mbyBSdW50aW1lQXJyYXk6OnNfaW5mbyA9IHsgIlJ1bnRpbWVBcnJheSIsICZKU0FycmF5Ojpz
X2luZm8sIDAsIDAKIFJ1bnRpbWVBcnJheTo6UnVudGltZUFycmF5KEV4ZWNTdGF0ZSogZXhlYywg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEJpbmRpbmdzOjpBcnJheSogYXJyYXkpCiAgICAgOiBKU0Fy
cmF5KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9u
KGV4ZWMtPmdsb2JhbERhdGEoKSwgYXJyYXkpOworfQorCit2b2lkIFJ1bnRpbWVBcnJheTo6Zmlu
aXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBCaW5kaW5nczo6QXJyYXkqIGFy
cmF5KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIEFTU0VS
VChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgc2V0U3ViY2xhc3NEYXRhKGFycmF5KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCmluZGV4IGNiN2JjNjM1Nzc2ZDhlYmM5MTAz
OTUzMjBhZWZkZTQyYmNiOTA2ZDcuLjhkOGY1YWU2YmY2OGE2MzM4NjVkMGQwMmJmNjQzZjk1ZTQ0
YTg5NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaApAQCAtNzQsNiArNzQs
OCBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6CisgICAgdm9pZCBmaW5pc2hDcmVhdGlv
bihKU0dsb2JhbERhdGEmLCBCaW5kaW5nczo6QXJyYXkqKTsKKwogICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92
ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU0FycmF5OjpTdHJ1Y3R1cmVGbGFnczsKIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IGY0ZDBi
YWRlNWU4YmZhYTU5ZDNiOTE3MDAxYTNlNDA2YmY1OTU5NzcuLjk2NjQwZjAwOGZhYzFhYzQ3MTc2
NGZmODVlM2I4ZjY0NWI5MmJmMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX29iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2Jq
ZWN0LmNwcApAQCAtNDEsNiArNDEsMTIgQEAgUnVudGltZU9iamVjdDo6UnVudGltZU9iamVjdChF
eGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUKICAgICA6
IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKICAgICAs
IG1faW5zdGFuY2UoaW5zdGFuY2UpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0
KTsKK30KKwordm9pZCBSdW50aW1lT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVj
dC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19p
bmZvKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKaW5kZXggODYy
MmUzMTFmMjY2MDhjNTQ2ZGU4NmUwY2Y0YTNkNTU4NTM5OTJhMi4uOTllMDZlMDFjNWJhZjc4MDc3
ZmI5YTRiZGRmOTNhNWE0NGQ4YzNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfb2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2Jq
ZWN0LmgKQEAgLTc0LDYgKzc0LDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgUnVudGlt
ZU9iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFBhc3NSZWZQ
dHI8SW5zdGFuY2U+KTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0Kik7
CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0
T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEpTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdDo6U3RydWN0dXJlRmxhZ3M7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ZWZlOGM0M2RjNTMwMzkwMTk0NmEyYmViNTM2NTY2OGZkMzc4ODgyOS4uYjRmZDI0NzcwYWMzZGVm
ZjU5YjdjMDY4MDY1OGM3ZWFkZmYyM2QzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisy
MDExLTA4LTMwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAg
ICAgICAgVW56aXAgaW5pdGlhbGl6YXRpb24gbGlzdHMgYW5kIGNvbnN0cnVjdG9ycyBpbiBKU0Nl
bGwgaGllcmFyY2h5ICg0LzcpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NzE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIENvbXBsZXRlZCB0aGUgZm91cnRoIGxldmVsIG9mIHRoZSByZWZhY3RvcmluZyB0
byBhZGQgZmluaXNoQ3JlYXRpb24oKSAKKyAgICAgICAgbWV0aG9kcyB0byBhbGwgY2xhc3NlcyB3
aXRoaW4gdGhlIEpTQ2VsbCBoaWVyYXJjaHkgd2l0aCBub24tdHJpdmlhbCAKKyAgICAgICAgY29u
c3RydWN0b3IgYm9kaWVzLgorCisgICAgICAgIFRoaXMgcHJpbWFyaWx5IGNvbnNpc3RzIG9mIHB1
c2hpbmcgdGhlIGNhbGxzIHRvIGZpbmlzaENyZWF0aW9uKCkgZG93biAKKyAgICAgICAgaW50byB0
aGUgY29uc3RydWN0b3JzIG9mIHRoZSBzdWJjbGFzc2VzIG9mIHRoZSBzZWNvbmQgbGV2ZWwgb2Yg
dGhlIGhpZXJhcmNoeSAKKyAgICAgICAgYXMgd2VsbCBhcyBwdWxsaW5nIHRoZSBmaW5pc2hDcmVh
dGlvbigpIGNhbGxzIG91dCBpbnRvIHRoZSBjbGFzcydzIGNvcnJlc3BvbmRpbmcKKyAgICAgICAg
Y3JlYXRlKCkgbWV0aG9kIGlmIGl0IGhhcyBvbmUuICBEb2luZyBib3RoIHNpbXVsdGFuZW91c2x5
IGFsbG93cyB1cyB0byAKKyAgICAgICAgbWFpbnRhaW4gdGhlIGludmFyaWFudCB0aGF0IHRoZSBm
aW5pc2hDcmVhdGlvbigpIG1ldGhvZCBjaGFpbiBpcyBjYWxsZWQgZXhhY3RseSAKKyAgICAgICAg
b25jZSBkdXJpbmcgdGhlIGNyZWF0aW9uIG9mIGFuIG9iamVjdCwgc2luY2UgY2FsbGluZyBpdCBh
bnkgb3RoZXIgbnVtYmVyIG9mIAorICAgICAgICB0aW1lcyAoMCwgMiwgb3IgbW9yZSkgd2lsbCBj
YXVzZSBhbiBhc3NlcnRpb24gZmFpbHVyZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6
SlNOUE9iamVjdCk6CisgICAgICAgIChXZWJLaXQ6OkpTTlBPYmplY3Q6OmZpbmlzaENyZWF0aW9u
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oOgor
CiAyMDExLTA4LTMwICBBbGV4aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3Jn
PgogCiAgICAgICAgIFtRdF1bV0syXSBNYWtlIG1vdXNlIG92ZXIgd29yayBhZ2FpbiBmb3IgUURl
c2t0b3BXZWJWaWV3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCmluZGV4IDMzZWRiZTkyMmQ2Yjg1ZDY4OTcw
ODU1Yzk3MTVkZGE4MzEwOWI2YzQuLjIyOTEwZjVjYTQ3Njc2NjVhYTM4ZmM4ZWM0ZGNkY2U5NWZh
ZmRhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9KU05QT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKQEAgLTU1LDYgKzU1LDEyIEBAIEpTTlBPYmplY3Q6
OkpTTlBPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTlBSdW50aW1lT2JqZWN0
TWFwKiBvYmplY3RNCiAgICAgLCBtX29iamVjdE1hcChvYmplY3RNYXApCiAgICAgLCBtX25wT2Jq
ZWN0KG5wT2JqZWN0KQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7Cit9CisK
K3ZvaWQgSlNOUE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERh
dGEoKSwgZ2xvYmFsT2JqZWN0KTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogCiAg
ICAgLy8gV2Ugc2hvdWxkIG5ldmVyIGhhdmUgYW4gTlBKU09iamVjdCBpbnNpZGUgYSBKU05QT2Jq
ZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL0pTTlBPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9KU05QT2JqZWN0LmgKaW5kZXggMmVhMTIyODJiMWIzYWVmZWYxNjlmMjM3MTU3NzY0YTY0
YTU3YWQyMi4uNzU4MjJjM2M1OTY3M2Q4Y2RiN2E0N2JlYmM4NjFkM2JkOGI2OWJkYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNO
UE9iamVjdC5oCkBAIC01Nyw2ICs1Nyw5IEBAIHB1YmxpYzoKIAogICAgIE5QT2JqZWN0KiBucE9i
amVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbnBPYmplY3Q7IH0KIAorcHJvdGVjdGVkOgorICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCopOworCiBwcml2YXRlOgogICAg
IEpTTlBPYmplY3QoSlNDOjpKU0dsb2JhbE9iamVjdCosIE5QUnVudGltZU9iamVjdE1hcCosIE5Q
T2JqZWN0KiwgSlNDOjpTdHJ1Y3R1cmUqKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105705</attachid>
            <date>2011-08-30 14:58:26 -0700</date>
            <delta_ts>2011-08-31 11:34:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67174-20110830145825.patch</filename>
            <type>text/plain</type>
            <size>93969</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQwOTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcAppbmRleCBmYTlkMjE2ZGQxMTI1MDEyN2Vl
Njg1ZmUxZWM4ZDU5ZmYyNjhjOTllLi45NTA0YWQ4MGQ4NTNmM2M2NTVmODQyOGQ3ZDE2YTY1ZmVj
YjgzMDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuY3BwCkBAIC00Myw2ICs0MywxMiBAQCBKU0NhbGxiYWNrQ29uc3RydWN0b3I6
OkpTQ2FsbGJhY2tDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
YwogICAgICwgbV9jbGFzcyhqc0NsYXNzKQogICAgICwgbV9jYWxsYmFjayhjYWxsYmFjaykKIHsK
KyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QsIGpzQ2xhc3MpOworfQorCit2b2lkIEpT
Q2FsbGJhY2tDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDbGFzc1JlZiBqc0NsYXNzKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChp
bmhlcml0cygmc19pbmZvKSk7CiAgICAgaWYgKG1fY2xhc3MpCiAgICAgICAgIEpTQ2xhc3NSZXRh
aW4oanNDbGFzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuaAppbmRleCA0MGFhYmNmMTkyMTMxZDQxNDdiMDc4Mzg5OTkwOTlmOGExZTUx
ZWRhLi45MTE5MWRiNWY5Njc5OWUyMGNhNDZlOTEwMTRlNWVhNGFjNjY4Y2Q3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmgKQEAgLTUy
LDYgKzUyLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgSlNDYWxsYmFja0NvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgSlNDbGFzc1JlZiwgSlNPYmplY3RDYWxs
QXNDb25zdHJ1Y3RvckNhbGxiYWNrKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
T2JqZWN0KiwgSlNDbGFzc1JlZik7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdz
OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuaAppbmRleCBlZTk5MGEwMmZjZmI5OTRjMWQ0ODFlMjc4NTdlY2MzODA4MDBjNmI1Li45ZWU2
NzkzMDFlNWEyMzhlYTE3MDkzYzljOGQ1ZTJhNWUyMGM3NmM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTI0LDE2ICsxMjQsMjEgQEAgcHJv
dGVjdGVkOgogICAgIC8vIGZ1bmN0aW9uYWxpdHkgaGVyZS4KICAgICB2b2lkKiBvcGVyYXRvciBu
ZXcoc2l6ZV90LCB2b2lkKiBwdHIpIHsgcmV0dXJuIHB0cjsgfQogCisgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oSlNHbG9iYWxEYXRhJik7CisKIHB1YmxpYzoKICAgICB0eXBlZGVmIFBhcmVudCBCYXNl
OwogCiAgICAgc3RhdGljIEpTQ2FsbGJhY2tPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0Ns
YXNzUmVmIGNsYXNzUmVmLCB2b2lkKiBkYXRhKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAo
YWxsb2NhdGVDZWxsPEpTQ2FsbGJhY2tPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBKU0NhbGxiYWNr
T2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBjbGFzc1JlZiwgZGF0YSk7Cisg
ICAgICAgIEpTQ2FsbGJhY2tPYmplY3QqIGNhbGxiYWNrT2JqZWN0ID0gbmV3IChhbGxvY2F0ZUNl
bGw8SlNDYWxsYmFja09iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIEpTQ2FsbGJhY2tPYmplY3QoZXhl
YywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGNsYXNzUmVmLCBkYXRhKTsKKyAgICAgICAgcmV0
dXJuIGNhbGxiYWNrT2JqZWN0OwogICAgIH0KICAgICBzdGF0aWMgSlNDYWxsYmFja09iamVjdCog
Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDbGFzc1JlZiBjbGFzc1JlZiwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNl
bGw8SlNDYWxsYmFja09iamVjdD4oZ2xvYmFsRGF0YS5oZWFwKSkgSlNDYWxsYmFja09iamVjdChn
bG9iYWxEYXRhLCBjbGFzc1JlZiwgc3RydWN0dXJlKTsKKyAgICAgICAgSlNDYWxsYmFja09iamVj
dCogY2FsbGJhY2tPYmplY3QgPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0NhbGxiYWNrT2JqZWN0Pihn
bG9iYWxEYXRhLmhlYXApKSBKU0NhbGxiYWNrT2JqZWN0KGdsb2JhbERhdGEsIGNsYXNzUmVmLCBz
dHJ1Y3R1cmUpOworICAgICAgICByZXR1cm4gY2FsbGJhY2tPYmplY3Q7CiAgICAgfQogCiAgICAg
dm9pZCBzZXRQcml2YXRlKHZvaWQqIGRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAppbmRleCA2OTEwZTU2ZmY4Y2E0
OTk0YjYzMzZhODdhZDg2ZWQwZTE2OGM3Y2E2Li4yMjNkOWI2NWEzNDk3YTI0ZWRiMjA5NWRmOTQ3
N2FhNGNhYTBmZDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tPYmplY3RGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaApAQCAtNTQsOCArNTQsNyBAQCBKU0NhbGxiYWNrT2Jq
ZWN0PFBhcmVudD46OkpTQ2FsbGJhY2tPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9i
amVjdCogZ2xvYgogICAgIDogUGFyZW50KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogICAgICwg
bV9jYWxsYmFja09iamVjdERhdGEoYWRvcHRQdHIobmV3IEpTQ2FsbGJhY2tPYmplY3REYXRhKGRh
dGEsIGpzQ2xhc3MpKSkKIHsKLSAgICBBU1NFUlQoUGFyZW50Ojppbmhlcml0cygmc19pbmZvKSk7
Ci0gICAgaW5pdChleGVjKTsKKyAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3Qp
OwogfQogCiAvLyBHbG9iYWwgb2JqZWN0IGNvbnN0cnVjdG9yLgpAQCAtNjUsNiArNjQsMjIgQEAg
SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpKU0NhbGxiYWNrT2JqZWN0KEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNDbGFzc1JlZgogICAgIDogUGFyZW50KGdsb2JhbERhdGEsIHN0cnVjdHVy
ZSkKICAgICAsIG1fY2FsbGJhY2tPYmplY3REYXRhKGFkb3B0UHRyKG5ldyBKU0NhbGxiYWNrT2Jq
ZWN0RGF0YSgwLCBqc0NsYXNzKSkpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7
Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Cit2b2lkIEpTQ2FsbGJhY2tPYmplY3Q8UGFy
ZW50Pjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xv
YmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOworICAgIEFTU0VSVChQYXJlbnQ6OmluaGVyaXRzKCZz
X2luZm8pKTsKKyAgICBpbml0KGV4ZWMpOworfQorCisvLyBUaGlzIGlzIGp1c3QgZm9yIEdsb2Jh
bCBvYmplY3QsIHNvIHdlIGNhbiBhc3N1bWUgdGhhdCBCYXNlOjpmaW5pc2hDcmVhdGlvbiBpcyBK
U0dsb2JhbE9iamVjdDo6Y29uc3RydWN0b3JCb2R5LgordGVtcGxhdGUgPGNsYXNzIFBhcmVudD4K
K3ZvaWQgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEpCit7CisgICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOwogICAgIEFT
U0VSVChQYXJlbnQ6OmluaGVyaXRzKCZzX2luZm8pKTsKICAgICBBU1NFUlQoUGFyZW50Ojppc0ds
b2JhbE9iamVjdCgpKTsKICAgICBpbml0KHN0YXRpY19jYXN0PEpTR2xvYmFsT2JqZWN0Kj4odGhp
cyktPmdsb2JhbEV4ZWMoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAyODVjOTExNDgy
MjU1NTY3OTA5NGNiY2YxMzMzODdlMjMyNDcyZjMwLi5iZDkzNmYxYzViZDlkODYyYjdmMGY0ZjBh
MDAxNmQ1MTExNGQ1ZjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNDcg
QEAKKzIwMTEtMDgtMzAgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4K
KworICAgICAgICBVbnppcCBpbml0aWFsaXphdGlvbiBsaXN0cyBhbmQgY29uc3RydWN0b3JzIGlu
IEpTQ2VsbCBoaWVyYXJjaHkgKDQvNykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY3MTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQ29tcGxldGVkIHRoZSBmb3VydGggbGV2ZWwgb2YgdGhlIHJlZmFjdG9y
aW5nIHRvIGFkZCBmaW5pc2hDcmVhdGlvbigpIAorICAgICAgICBtZXRob2RzIHRvIGFsbCBjbGFz
c2VzIHdpdGhpbiB0aGUgSlNDZWxsIGhpZXJhcmNoeSB3aXRoIG5vbi10cml2aWFsIAorICAgICAg
ICBjb25zdHJ1Y3RvciBib2RpZXMuCisKKyAgICAgICAgVGhpcyBwcmltYXJpbHkgY29uc2lzdHMg
b2YgcHVzaGluZyB0aGUgY2FsbHMgdG8gZmluaXNoQ3JlYXRpb24oKSBkb3duIAorICAgICAgICBp
bnRvIHRoZSBjb25zdHJ1Y3RvcnMgb2YgdGhlIHN1YmNsYXNzZXMgb2YgdGhlIHNlY29uZCBsZXZl
bCBvZiB0aGUgaGllcmFyY2h5IAorICAgICAgICBhcyB3ZWxsIGFzIHB1bGxpbmcgdGhlIGZpbmlz
aENyZWF0aW9uKCkgY2FsbHMgb3V0IGludG8gdGhlIGNsYXNzJ3MgY29ycmVzcG9uZGluZworICAg
ICAgICBjcmVhdGUoKSBtZXRob2QgaWYgaXQgaGFzIG9uZS4gIERvaW5nIGJvdGggc2ltdWx0YW5l
b3VzbHkgYWxsb3dzIHVzIHRvIAorICAgICAgICBtYWludGFpbiB0aGUgaW52YXJpYW50IHRoYXQg
dGhlIGZpbmlzaENyZWF0aW9uKCkgbWV0aG9kIGNoYWluIGlzIGNhbGxlZCBleGFjdGx5IAorICAg
ICAgICBvbmNlIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgYW4gb2JqZWN0LCBzaW5jZSBjYWxsaW5n
IGl0IGFueSBvdGhlciBudW1iZXIgb2YgCisgICAgICAgIHRpbWVzICgwLCAyLCBvciBtb3JlKSB3
aWxsIGNhdXNlIGFuIGFzc2VydGlvbiBmYWlsdXJlLgorCisgICAgICAgICogQVBJL0pTQ2FsbGJh
Y2tDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6
SlNDYWxsYmFja0NvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja0NvbnN0cnVj
dG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rv
ci5oOgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpT
Q2FsbGJhY2tPYmplY3Q6OmNyZWF0ZSk6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3RG
dW5jdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6OjpKU0NhbGxiYWNrT2JqZWN0KToKKyAgICAgICAg
KEpTQzo6OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuSlNWQUxV
RTY0b25seS5leHA6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWY6Cisg
ICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6
RGVidWdnZXJBY3RpdmF0aW9uOjpEZWJ1Z2dlckFjdGl2YXRpb24pOgorICAgICAgICAoSlNDOjpE
ZWJ1Z2dlckFjdGl2YXRpb246OmNyZWF0ZSk6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJB
Y3RpdmF0aW9uLmg6CisgICAgICAgICogcnVudGltZS9Bcmd1bWVudHMuaDoKKyAgICAgICAgKEpT
Qzo6QXJndW1lbnRzOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpBcmd1bWVudHM6OmNyZWF0ZU5v
UGFyYW1ldGVycyk6CisgICAgICAgIChKU0M6OkFyZ3VtZW50czo6QXJndW1lbnRzKToKKyAgICAg
ICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6QXJyYXlQcm90
b3R5cGU6OkFycmF5UHJvdG90eXBlKToKKyAgICAgICAgKEpTQzo6QXJyYXlQcm90b3R5cGU6OmZp
bmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmg6CisgICAg
ICAgICogcnVudGltZS9Cb29sZWFuT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6Qm9vbGVhbk9i
amVjdDo6Qm9vbGVhbk9iamVjdCk6CisgICAgICAgIChKU0M6OkJvb2xlYW5PYmplY3Q6OmZpbmlz
aENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5PYmplY3QuaDoKKyAgICAgICAg
KiBydW50aW1lL0RhdGVJbnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZTo6
RGF0ZUluc3RhbmNlKToKKyAgICAgICAgKEpTQzo6RGF0ZUluc3RhbmNlOjpmaW5pc2hDcmVhdGlv
bik6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2UuaDoKKyAgICAgICAgKiBydW50aW1l
L0Vycm9ySW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpFcnJvcklu
c3RhbmNlKToKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6Y3JlYXRlKToKKyAgICAgICAg
KiBydW50aW1lL0Vycm9ySW5zdGFuY2UuaDoKKyAgICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90
eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JQcm90b3R5cGU6OkVycm9yUHJvdG90eXBlKToK
KyAgICAgICAgKEpTQzo6RXJyb3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAg
KiBydW50aW1lL0Vycm9yUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9FeGNlcHRpb25I
ZWxwZXJzLmNwcDoKKyAgICAgICAgKEpTQzo6SW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvcjo6SW50
ZXJydXB0ZWRFeGVjdXRpb25FcnJvcik6CisgICAgICAgIChKU0M6OkludGVycnVwdGVkRXhlY3V0
aW9uRXJyb3I6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlRlcm1pbmF0ZWRFeGVjdXRpb25FcnJv
cjo6VGVybWluYXRlZEV4ZWN1dGlvbkVycm9yKToKKyAgICAgICAgKEpTQzo6VGVybWluYXRlZEV4
ZWN1dGlvbkVycm9yOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5jcHA6
CisgICAgICAgIChKU0M6OkV2YWxFeGVjdXRhYmxlOjpFdmFsRXhlY3V0YWJsZSk6CisgICAgICAg
IChKU0M6OlByb2dyYW1FeGVjdXRhYmxlOjpQcm9ncmFtRXhlY3V0YWJsZSk6CisgICAgICAgIChK
U0M6OkZ1bmN0aW9uRXhlY3V0YWJsZTo6RnVuY3Rpb25FeGVjdXRhYmxlKToKKyAgICAgICAgKiBy
dW50aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKEpTQzo6TmF0aXZlRXhlY3V0YWJsZTo6Y3Jl
YXRlKToKKyAgICAgICAgKEpTQzo6TmF0aXZlRXhlY3V0YWJsZTo6TmF0aXZlRXhlY3V0YWJsZSk6
CisgICAgICAgIChKU0M6OkV2YWxFeGVjdXRhYmxlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpQ
cm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRh
YmxlOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHA6Cisg
ICAgICAgIChKU0M6OkludGVybmFsRnVuY3Rpb246OkludGVybmFsRnVuY3Rpb24pOgorICAgICAg
ICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVu
dGltZS9JbnRlcm5hbEZ1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24u
Y3BwOgorICAgICAgICAoSlNDOjpKU0FjdGl2YXRpb246OkpTQWN0aXZhdGlvbik6CisgICAgICAg
IChKU0M6OkpTQWN0aXZhdGlvbjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUv
SlNBY3RpdmF0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0FycmF5LmNwcDoKKyAgICAgICAg
KEpTQzo6SlNBcnJheTo6SlNBcnJheSk6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OmNyZWF0ZSk6
CisgICAgICAgICogcnVudGltZS9KU0FycmF5Lmg6CisgICAgICAgICogcnVudGltZS9KU0J5dGVB
cnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQnl0ZUFycmF5OjpKU0J5dGVBcnJheSk6CisgICAg
ICAgIChKU0M6OkpTQnl0ZUFycmF5OjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5j
dGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OkpTRnVuY3Rpb24pOgorICAgICAg
ICAoSlNDOjpKU0Z1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTRnVu
Y3Rpb246OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmg6CisgICAgICAg
ICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVj
dDo6SlNHbG9iYWxPYmplY3QpOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6ZmluaXNo
Q3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5oOgorICAgICAgICAo
SlNDOjpKU05vdEFuT2JqZWN0OjpKU05vdEFuT2JqZWN0KToKKyAgICAgICAgKEpTQzo6SlNOb3RB
bk9iamVjdDo6Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuY3BwOgorICAg
ICAgICAoSlNDOjpKU09OT2JqZWN0OjpKU09OT2JqZWN0KToKKyAgICAgICAgKEpTQzo6SlNPTk9i
amVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5oOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAg
KEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Qp
OgorICAgICAgICAoSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9u
KToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU1N0YXRp
Y1Njb3BlT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTU3RhdGljU2Nv
cGVPYmplY3Q6OkpTU3RhdGljU2NvcGVPYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNWYXJp
YWJsZU9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU1ZhcmlhYmxlT2JqZWN0OjpKU1ZhcmlhYmxl
T2JqZWN0KToKKyAgICAgICAgKiBydW50aW1lL0pTV3JhcHBlck9iamVjdC5oOgorICAgICAgICAo
SlNDOjpKU1dyYXBwZXJPYmplY3Q6OkpTV3JhcHBlck9iamVjdCk6CisgICAgICAgICogcnVudGlt
ZS9NYXRoT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6TWF0aE9iamVjdDo6TWF0aE9iamVjdCk6
CisgICAgICAgIChKU0M6Ok1hdGhPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBy
dW50aW1lL01hdGhPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL051bWJlck9iamVjdC5jcHA6
CisgICAgICAgIChKU0M6Ok51bWJlck9iamVjdDo6TnVtYmVyT2JqZWN0KToKKyAgICAgICAgKEpT
Qzo6TnVtYmVyT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9OdW1i
ZXJPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHA6CisgICAg
ICAgIChKU0M6Ok9iamVjdFByb3RvdHlwZTo6T2JqZWN0UHJvdG90eXBlKToKKyAgICAgICAgKiBy
dW50aW1lL09iamVjdFByb3RvdHlwZS5oOgorICAgICAgICAoSlNDOjpPYmplY3RQcm90b3R5cGU6
OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OlJlZ0V4cE1hdGNoZXNBcnJheTo6UmVnRXhwTWF0Y2hlc0FycmF5KToKKyAgICAg
ICAgKEpTQzo6UmVnRXhwTWF0Y2hlc0FycmF5OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICog
cnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6UmVnRXhwT2JqZWN0KToKKyAg
ICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVu
dGltZS9SZWdFeHBPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0
aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaWN0RXZhbEFjdGl2YXRpb246OlN0cmljdEV2YWxB
Y3RpdmF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmg6Cisg
ICAgICAgIChKU0M6OlN0cmljdEV2YWxBY3RpdmF0aW9uOjpjcmVhdGUpOgorICAgICAgICAqIHJ1
bnRpbWUvU3RyaW5nT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5nT2JqZWN0OjpTdHJp
bmdPYmplY3QpOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToK
KyAgICAgICAgKiBydW50aW1lL1N0cmluZ09iamVjdC5oOgorCiAyMDExLTA4LTMwICBBZGVtYXIg
ZGUgU291emEgUmVpcyBKci4gIDxhZGVtYXIucmVpc0BvcGVuYm9zc2Eub3JnPgogCiAgICAgICAg
IFtRdF0gRG8gbm90IHVuY29uZGl0aW9uYWxseSB1c2UgcGtnLWNvbmZpZyBpbiAucHJvIGZpbGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuSlNWQUxV
RTY0b25seS5leHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuSlNWQUxV
RTY0b25seS5leHAKaW5kZXggZWFhOWY1MTM5ZjIyZTAzYzgwZWQ3Y2Y0NzkyZTQ4ZGFmOTE2YTYx
MS4uMTM5NTk3ZjljYjA3YzVkNDhiZWQxODk4NGVjNDc0N2Y0YjRmMzQzOCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLkpTVkFMVUU2NG9ubHkuZXhwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5KU1ZBTFVFNjRvbmx5LmV4
cApAQCAtMSArMSwyIEBACi1fX1pOM0pTQzEwSlNGdW5jdGlvbkMxRVBOU185RXhlY1N0YXRlRVBO
U18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRWlSS05TXzEwSWRlbnRpZmllckVQRlB2
UzJfRQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5leHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCmluZGV4IDlm
NGEzYmRjYTIxM2IzYjViNTJmNThmZjQ2YjFiMzcwYjBkODVkZTcuLmE4ZjUzYjljMzM0NDBlZTAy
OTMxOGI4MTY2NmQ3MTEzZDMwZDZkNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5leHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmV4cApAQCAtMTExLDYgKzExMSw3IEBAIF9fWk4zSlNDMTBJZGVudGlmaWVyNGZyb21F
UE5TXzlFeGVjU3RhdGVFagogX19aTjNKU0MxMElkZW50aWZpZXI1ZXF1YWxFUEtOM1dURjEwU3Ry
aW5nSW1wbEVQS2MKIF9fWk4zSlNDMTBJZGVudGlmaWVyOHRvVUludDMyRVJLTlNfN1VTdHJpbmdF
UmIKIF9fWk4zSlNDMTBKU0Z1bmN0aW9uNG5hbWVFUE5TXzlFeGVjU3RhdGVFCitfX1pOM0pTQzEw
SlNGdW5jdGlvbjZjcmVhdGVFUE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RFUE5T
XzlTdHJ1Y3R1cmVFaVJLTlNfMTBJZGVudGlmaWVyRVBGUHZTMl9FCiBfX1pOM0pTQzEwSlNGdW5j
dGlvbjZzX2luZm9FCiBfX1pOM0pTQzEwdGhyb3dFcnJvckVQTlNfOUV4ZWNTdGF0ZUVOU183SlNW
YWx1ZUUKIF9fWk4zSlNDMTB0aHJvd0Vycm9yRVBOU185RXhlY1N0YXRlRVBOU184SlNPYmplY3RF
CkBAIC0xOTYsNyArMTk3LDcgQEAgX19aTjNKU0MxN0J5dGVjb2RlR2VuZXJhdG9yMjFzZXREdW1w
c0dlbmVyYXRlZENvZGVFYgogX19aTjNKU0MxN1Byb3BlcnR5TmFtZUFycmF5M2FkZEVQTjNXVEYx
MFN0cmluZ0ltcGxFCiBfX1pOM0pTQzE3Y29uc3RydWN0RnVuY3Rpb25FUE5TXzlFeGVjU3RhdGVF
UE5TXzE0SlNHbG9iYWxPYmplY3RFUktOU183QXJnTGlzdEVSS05TXzEwSWRlbnRpZmllckVSS05T
XzdVU3RyaW5nRWkKIF9fWk4zSlNDMTdjcmVhdGVTeW50YXhFcnJvckVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzdVU3RyaW5nRQotX19aTjNKU0MxOERlYnVnZ2VyQWN0aXZhdGlvbkMxRVJOU18xMkpTR2xv
YmFsRGF0YUVQTlNfOEpTT2JqZWN0RQorX19aTjNKU0MxOERlYnVnZ2VyQWN0aXZhdGlvbjZjcmVh
dGVFUk5TXzEySlNHbG9iYWxEYXRhRVBOU184SlNPYmplY3RFCiBfX1pOM0pTQzE4UHJvcGVydHlE
ZXNjcmlwdG9yMTFzZXRXcml0YWJsZUViCiBfX1pOM0pTQzE4UHJvcGVydHlEZXNjcmlwdG9yMTJz
ZXRVbmRlZmluZWRFdgogX19aTjNKU0MxOFByb3BlcnR5RGVzY3JpcHRvcjEzc2V0RGVzY3JpcHRv
ckVOU183SlNWYWx1ZUVqCkBAIC0yMTksOCArMjIwLDkgQEAgX19aTjNKU0MyM0Fic3RyYWN0U2Ft
cGxpbmdDb3VudGVyNGR1bXBFdgogX19aTjNKU0MyM29iamVjdFByb3RvRnVuY1RvU3RyaW5nRVBO
U185RXhlY1N0YXRlRQogX19aTjNKU0MyM3NldFVwU3RhdGljRnVuY3Rpb25TbG90RVBOU185RXhl
Y1N0YXRlRVBLTlNfOUhhc2hFbnRyeUVQTlNfOEpTT2JqZWN0RVJLTlNfMTBJZGVudGlmaWVyRVJO
U18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDMjREeW5hbWljR2xvYmFsT2JqZWN0U2NvcGVDMUVS
TlNfMTJKU0dsb2JhbERhdGFFUE5TXzE0SlNHbG9iYWxPYmplY3RFCitfX1pOM0pTQzI0SlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0MTRmaW5pc2hDcmVhdGlvbkVSTlNfMTJKU0dsb2JhbERhdGFFUE5T
XzE0SlNHbG9iYWxPYmplY3RFCitfX1pOM0pTQzI0SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0QzJF
Uk5TXzEySlNHbG9iYWxEYXRhRVBOU185U3RydWN0dXJlRQogX19aTjNKU0MyNEpTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdEMyRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRQotX19a
TjNKU0MyNEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEMyRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNf
MTRKU0dsb2JhbE9iamVjdEVQTlNfOVN0cnVjdHVyZUUKIF9fWk4zSlNDMjRjcmVhdGVTdGFja092
ZXJmbG93RXJyb3JFUE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pTQzI1ZXZhbHVhdGVJbkdsb2JhbENh
bGxGcmFtZUVSS05TXzdVU3RyaW5nRVJOU183SlNWYWx1ZUVQTlNfMTRKU0dsb2JhbE9iamVjdEUK
IF9fWk4zSlNDMzVjcmVhdGVJbnRlcnJ1cHRlZEV4ZWN1dGlvbkV4Y2VwdGlvbkVQTlNfMTJKU0ds
b2JhbERhdGFFCkBAIC0yNjksMTIgKzI3MSwxNCBAQCBfX1pOM0pTQzZKU0xvY2tDMUVQTlNfOUV4
ZWNTdGF0ZUUKIF9fWk4zSlNDNlJlZ0V4cEQxRXYKIF9fWk4zSlNDNlJlZ0V4cDZjcmVhdGVFUk5T
XzEySlNHbG9iYWxEYXRhRVJLTlNfN1VTdHJpbmdFTlNfMTFSZWdFeHBGbGFnc0UKIF9fWk4zSlND
N0pTQXJyYXkxM3Zpc2l0Q2hpbGRyZW5FUk5TXzExU2xvdFZpc2l0b3JFCitfX1pOM0pTQzdKU0Fy
cmF5MTRmaW5pc2hDcmVhdGlvbkVSTlNfMTJKU0dsb2JhbERhdGFFCiBfX1pOM0pTQzdKU0FycmF5
MTVzZXRTdWJjbGFzc0RhdGFFUHYKIF9fWk4zSlNDN0pTQXJyYXkxOGdldE93blByb3BlcnR5U2xv
dEVQTlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQorX19aTjNKU0M3SlNBcnJheTZj
cmVhdGVFUk5TXzEySlNHbG9iYWxEYXRhRVBOU185U3RydWN0dXJlRVJLTlNfN0FyZ0xpc3RFCitf
X1pOM0pTQzdKU0FycmF5NmNyZWF0ZUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVF
CiBfX1pOM0pTQzdKU0FycmF5NnNfaW5mb0UKIF9fWk4zSlNDN0pTQXJyYXk5c2V0TGVuZ3RoRWoK
IF9fWk4zSlNDN0pTQXJyYXlDMUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFCi1f
X1pOM0pTQzdKU0FycmF5QzFFUk5TXzEySlNHbG9iYWxEYXRhRVBOU185U3RydWN0dXJlRVJLTlNf
N0FyZ0xpc3RFCiBfX1pOM0pTQzdKU0FycmF5QzJFUk5TXzEySlNHbG9iYWxEYXRhRVBOU185U3Ry
dWN0dXJlRQogX19aTjNKU0M3SlNBcnJheUQyRXYKIF9fWk4zSlNDN0pTVmFsdWUxM2lzVmFsaWRD
YWxsZWVFdgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmRlZgppbmRleCBkMWNmZjc4NjM3N2EwZDQxMzYyY2QyZWZiN2I4NWVjMzkyZTA1YmM0Li44
ZTRkMmNhNjRiYWMzODRjZWI4ZGIxMTMzZmFhMGZiMzYwMzE2NTcwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmRlZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtOSwxMSArOSw5
IEBAIEVYUE9SVFMKICAgICA/PzBEeW5hbWljR2xvYmFsT2JqZWN0U2NvcGVASlNDQEBRQUVAQUFW
SlNHbG9iYWxEYXRhQDFAUEFWSlNHbG9iYWxPYmplY3RAMUBAWiAgCiAgICAgPz8wSW50ZXJuYWxG
dW5jdGlvbkBKU0NAQElBRUBQQVZKU0dsb2JhbERhdGFAMUBQQVZKU0dsb2JhbE9iamVjdEAxQFBB
VlN0cnVjdHVyZUAxQEFCVklkZW50aWZpZXJAMUBAWgogICAgID8/MEpTQXJyYXlASlNDQEBJQUVA
QUFWSlNHbG9iYWxEYXRhQDFAUEFWU3RydWN0dXJlQDFAQFoKLSAgICA/PzBKU0FycmF5QEpTQ0BA
SUFFQEFBVkpTR2xvYmFsRGF0YUAxQFBBVlN0cnVjdHVyZUAxQEFCVkFyZ0xpc3RAMUBAWgotICAg
ID8/MEpTRnVuY3Rpb25ASlNDQEBBQUVAUEFWRXhlY1N0YXRlQDFAUEFWSlNHbG9iYWxPYmplY3RA
MUBQQVZTdHJ1Y3R1cmVAMUBIQUJWSWRlbnRpZmllckAxQFA2SV9KMEBaQFoKICAgICA/PzBKU0xv
Y2tASlNDQEBRQUVAUEFWRXhlY1N0YXRlQDFAQFoKLSAgICA/PzBKU09iamVjdFdpdGhHbG9iYWxP
YmplY3RASlNDQEBJQUVAQUFWSlNHbG9iYWxEYXRhQDFAUEFWSlNHbG9iYWxPYmplY3RAMUBQQVZT
dHJ1Y3R1cmVAMUBAWgogICAgID8/MEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEBKU0NAQElBRUBQ
QVZKU0dsb2JhbE9iamVjdEAxQFBBVlN0cnVjdHVyZUAxQEBaCisgICAgPz8wSlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0QEpTQ0BASUFFQEFBVkpTR2xvYmFsRGF0YUAxQFBBVlN0cnVjdHVyZUAxQEBa
CiAgICAgPz8wTUQ1QFdURkBAUUFFQFhaCiAgICAgPz8wTXV0ZXhAV1RGQEBRQUVAWFoKICAgICA/
PzBSZWZDb3VudGVkTGVha0NvdW50ZXJAV1RGQEBRQUVAUEJEQFoKQEAgLTk1LDcgKzkzLDEwIEBA
IEVYUE9SVFMKICAgICA/Y29udmVydFVURjE2VG9VVEY4QFVuaWNvZGVAV1RGQEBZQT9BVzRDb252
ZXJzaW9uUmVzdWx0QDEyQFBBUEJfV1BCX1dQQVBBRFBBRF9OQFoKICAgICA/Y29udmVydFVURjhU
b1VURjE2QFVuaWNvZGVAV1RGQEBZQT9BVzRDb252ZXJzaW9uUmVzdWx0QDEyQFBBUEJEUEJEUEFQ
QV9XUEFfV19OQFoKICAgICA/Y3JlYXRlQEJ5dGVBcnJheUBXVEZAQFNBP0FWPyRQYXNzUmVmUHRy
QFZCeXRlQXJyYXlAV1RGQEBAMkBJQFoKKyAgICA/Y3JlYXRlQEpTQXJyYXlASlNDQEBTQVBBVjEy
QEFBVkpTR2xvYmFsRGF0YUAyQFBBVlN0cnVjdHVyZUAyQEBaCisgICAgP2NyZWF0ZUBKU0FycmF5
QEpTQ0BAU0FQQVYxMkBBQVZKU0dsb2JhbERhdGFAMkBQQVZTdHJ1Y3R1cmVAMkBBQlZBcmdMaXN0
QDJAQFoKICAgICA/Y3JlYXRlQEpTQnl0ZUFycmF5QEpTQ0BAU0FQQVYxMkBQQVZFeGVjU3RhdGVA
MkBQQVZTdHJ1Y3R1cmVAMkBQQVZCeXRlQXJyYXlAV1RGQEBAWgorICAgID9jcmVhdGVASlNGdW5j
dGlvbkBKU0NAQFNBUEFWMTJAUEFWRXhlY1N0YXRlQDJAUEFWSlNHbG9iYWxPYmplY3RAMkBQQVZT
dHJ1Y3R1cmVAMkBIQUJWSWRlbnRpZmllckAyQFA2SV9KMEBaQFoKICAgICA/Y3JlYXRlQEpTR2xv
YmFsRGF0YUBKU0NAQFNBP0FWPyRQYXNzUmVmUHRyQFZKU0dsb2JhbERhdGFASlNDQEBAV1RGQEBX
NFRocmVhZFN0YWNrVHlwZUAyQFc0SGVhcFNpemVAMkBAWgogICAgID9jcmVhdGVAT3BhcXVlSlNT
dHJpbmdAQFNBP0FWPyRQYXNzUmVmUHRyQFVPcGFxdWVKU1N0cmluZ0BAQFdURkBAQUJWVVN0cmlu
Z0BKU0NAQEBaCiAgICAgP2NyZWF0ZUBSZWdFeHBASlNDQEBTQVBBVjEyQEFBVkpTR2xvYmFsRGF0
YUAyQEFCVlVTdHJpbmdAMkBXNFJlZ0V4cEZsYWdzQDJAQFoKQEAgLTE2Nyw2ICsxNjgsNyBAQCBF
WFBPUlRTCiAgICAgP2Zhc3RaZXJvZWRNYWxsb2NAV1RGQEBZQVBBWElAWgogICAgID9maWxsR2V0
dGVyUHJvcGVydHlTbG90QEpTT2JqZWN0QEpTQ0BAUUFFWEFBVlByb3BlcnR5U2xvdEAyQFBBVj8k
V3JpdGVCYXJyaWVyQmFzZUBXNFVua25vd25ASlNDQEBAMkBAWgogICAgID9maW5hbGl6ZUBXZWFr
SGFuZGxlT3duZXJASlNDQEBVQUVYVj8kSGFuZGxlQFc0VW5rbm93bkBKU0NAQEAyQFBBWEBaCisg
ICAgP2ZpbmlzaENyZWF0aW9uQEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEBKU0NAQElBRVhBQVZK
U0dsb2JhbERhdGFAMkBQQVZKU0dsb2JhbE9iamVjdEAyQEBaCiAgICAgP2ZvY3VzQFByb2ZpbGVA
SlNDQEBRQUVYUEJWUHJvZmlsZU5vZGVAMkBAWgogICAgID9mcm9tQElkZW50aWZpZXJASlNDQEBT
QT9BVjEyQFBBVkV4ZWNTdGF0ZUAyQEhAWgogICAgID9mcm9tQElkZW50aWZpZXJASlNDQEBTQT9B
VjEyQFBBVkV4ZWNTdGF0ZUAyQElAWgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAppbmRleCBhZThhNWFjZDZhODU3MGFkNzM3
Y2UwZTAwY2M5ZDVhNjhhOTQwOWRkLi5hNzEwMWRjYjZiYWE0MGZmNGZlMGVmYTMyZDFkNTViNjhh
OTQxNGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVi
dWdnZXJBY3RpdmF0aW9uLmNwcApAQCAtMzAsMTAgKzMwLDE2IEBACiAKIG5hbWVzcGFjZSBKU0Mg
ewogCi1EZWJ1Z2dlckFjdGl2YXRpb246OkRlYnVnZ2VyQWN0aXZhdGlvbihKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTT2JqZWN0KiBhY3RpdmF0aW9uKQorRGVidWdnZXJBY3RpdmF0aW9uOjpE
ZWJ1Z2dlckFjdGl2YXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogICAgIDogSlNOb25G
aW5hbE9iamVjdChnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLmRlYnVnZ2VyQWN0aXZhdGlvblN0cnVj
dHVyZS5nZXQoKSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBhY3RpdmF0aW9u
KTsKK30KKworRGVidWdnZXJBY3RpdmF0aW9uKiBEZWJ1Z2dlckFjdGl2YXRpb246OmNyZWF0ZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTT2JqZWN0KiBvYmplY3QpCit7CisgICAgRGVidWdn
ZXJBY3RpdmF0aW9uKiBhY3RpdmF0aW9uID0gbmV3IChhbGxvY2F0ZUNlbGw8RGVidWdnZXJBY3Rp
dmF0aW9uPihnbG9iYWxEYXRhLmhlYXApKSBEZWJ1Z2dlckFjdGl2YXRpb24oZ2xvYmFsRGF0YSk7
CisgICAgYWN0aXZhdGlvbi0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgb2JqZWN0KTsKKyAg
ICByZXR1cm4gYWN0aXZhdGlvbjsKIH0KIAogdm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246OmZpbmlz
aENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNPYmplY3QqIGFjdGl2YXRpb24p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3Rp
dmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0
aW9uLmgKaW5kZXggMzQ0NGJkODRlNWU2YzBhNGM0ZmQyY2M4MDlmN2RmMjhjNWQ4ZDUzMy4uZDgz
YjJmNzBmYzRiMGI4YWE1OTlkZjQxNGM1ZjA3MmFjZDk4NGQ2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaApAQCAtMzQsMTIg
KzM0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpT
Tm9uRmluYWxPYmplY3QgQmFzZTsKIAotICAgICAgICBzdGF0aWMgRGVidWdnZXJBY3RpdmF0aW9u
KiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU09iamVjdCogb2JqZWN0KQotICAg
ICAgICB7Ci0gICAgICAgICAgICBEZWJ1Z2dlckFjdGl2YXRpb24qIGFjdGl2YXRpb24gPSBuZXcg
KGFsbG9jYXRlQ2VsbDxEZWJ1Z2dlckFjdGl2YXRpb24+KGdsb2JhbERhdGEuaGVhcCkpIERlYnVn
Z2VyQWN0aXZhdGlvbihnbG9iYWxEYXRhLCBvYmplY3QpOwotICAgICAgICAgICAgcmV0dXJuIGFj
dGl2YXRpb247Ci0gICAgICAgIH0KLQorICAgICAgICBzdGF0aWMgRGVidWdnZXJBY3RpdmF0aW9u
KiBjcmVhdGUoSlNHbG9iYWxEYXRhJiwgSlNPYmplY3QqKTsKICAgICAgICAgdmlydHVhbCB2b2lk
IHZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImKTsKICAgICAgICAgdmlydHVhbCBVU3RyaW5nIGNs
YXNzTmFtZSgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
Jik7CkBAIC02NCw3ICs1OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIEpTT2JqZWN0KiBhY3RpdmF0aW9uKTsKIAogICAgIHBy
aXZhdGU6Ci0gICAgICAgIERlYnVnZ2VyQWN0aXZhdGlvbihKU0dsb2JhbERhdGEmLCBKU09iamVj
dCopOworICAgICAgICBEZWJ1Z2dlckFjdGl2YXRpb24oSlNHbG9iYWxEYXRhJik7CiAgICAgICAg
IFdyaXRlQmFycmllcjxKU0FjdGl2YXRpb24+IG1fYWN0aXZhdGlvbjsKICAgICB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCmluZGV4IDA5ZDU1ZjIxNjM1NTU0
MWU0YmRkZmIyMjI1ODFiNzZmMDkzMTg4N2UuLjdkMGFmM2RlNGYyODVmZDRiNjZjMDhhMWZiYzdl
ODFlNTI0ZGMxZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
Z3VtZW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5o
CkBAIC02NCwxMiArNjQsMTQgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBBcmd1
bWVudHMqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQogICAgICAgICB7CiAgICAgICAgICAgICBBcmd1bWVudHMqIGFyZ3VtZW50cyA9IG5ldyAo
YWxsb2NhdGVDZWxsPEFyZ3VtZW50cz4oZ2xvYmFsRGF0YS5oZWFwKSkgQXJndW1lbnRzKGNhbGxG
cmFtZSk7CisgICAgICAgICAgICBhcmd1bWVudHMtPmZpbmlzaENyZWF0aW9uKGNhbGxGcmFtZSk7
CiAgICAgICAgICAgICByZXR1cm4gYXJndW1lbnRzOwogICAgICAgICB9CiAgICAgICAgIAogICAg
ICAgICBzdGF0aWMgQXJndW1lbnRzKiBjcmVhdGVOb1BhcmFtZXRlcnMoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKICAgICAgICAgewogICAgICAgICAgICAg
QXJndW1lbnRzKiBhcmd1bWVudHMgPSBuZXcgKGFsbG9jYXRlQ2VsbDxBcmd1bWVudHM+KGdsb2Jh
bERhdGEuaGVhcCkpIEFyZ3VtZW50cyhjYWxsRnJhbWUsIE5vUGFyYW1ldGVycyk7CisgICAgICAg
ICAgICBhcmd1bWVudHMtPmZpbmlzaENyZWF0aW9uKGNhbGxGcmFtZSwgTm9QYXJhbWV0ZXJzKTsK
ICAgICAgICAgICAgIHJldHVybiBhcmd1bWVudHM7CiAgICAgICAgIH0KIApAQCAtMTY2LDE0ICsx
NjgsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIDogSlNOb25GaW5hbE9iamVjdChjYWxs
RnJhbWUtPmdsb2JhbERhdGEoKSwgY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmFy
Z3VtZW50c1N0cnVjdHVyZSgpKQogICAgICAgICAsIGQoYWRvcHRQdHIobmV3IEFyZ3VtZW50c0Rh
dGEpKQogICAgIHsKLSAgICAgICAgZmluaXNoQ3JlYXRpb24oY2FsbEZyYW1lKTsKICAgICB9CiAK
ICAgICBpbmxpbmUgQXJndW1lbnRzOjpBcmd1bWVudHMoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIE5v
UGFyYW1ldGVyc1R5cGUpCiAgICAgICAgIDogSlNOb25GaW5hbE9iamVjdChjYWxsRnJhbWUtPmds
b2JhbERhdGEoKSwgY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmFyZ3VtZW50c1N0
cnVjdHVyZSgpKQogICAgICAgICAsIGQoYWRvcHRQdHIobmV3IEFyZ3VtZW50c0RhdGEpKQogICAg
IHsKLSAgICAgICAgZmluaXNoQ3JlYXRpb24oY2FsbEZyYW1lLCBOb1BhcmFtZXRlcnMpOwogICAg
IH0KICAgICAKICAgICBpbmxpbmUgdm9pZCBBcmd1bWVudHM6OmZpbmlzaENyZWF0aW9uKENhbGxG
cmFtZSogY2FsbEZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJyYXlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlQcm90b3R5cGUuY3BwCmluZGV4IDc4Y2UwMTJkMWI4NWNmNGM2NDcwNTIwZDNlMDYzOGNmNmM3
NWI5OGMuLjk5Njc0YmIyM2I0OTgxOGIyZjNhMzQ4NGMyNjZlMDEzOWQ4NmVmNDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTEx
Nyw2ICsxMTcsMTIgQEAgY29uc3QgQ2xhc3NJbmZvIEFycmF5UHJvdG90eXBlOjpzX2luZm8gPSB7
IkFycmF5IiwgJkpTQXJyYXk6OnNfaW5mbywgMCwgRXhlY1N0YXQKIEFycmF5UHJvdG90eXBlOjpB
cnJheVByb3RvdHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkKICAgICA6IEpTQXJyYXkoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHN0cnVj
dHVyZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QpOworfQorCit2b2lkIEFy
cmF5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgp
KTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHB1dEFub255bW91c1ZhbHVl
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCAwLCBnbG9iYWxPYmplY3QpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKaW5kZXggMTI0YzYx
YWM0ZGM3OTgzODVkZWVhNzg3ZGQ2NGQ1YmNiNmZiYTI1OC4uOWE2MjhlMGM2OTNjYTlkNzdlNzc2
YTg2YTk5ZDgyYTMwNWI3YzdiOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheVByb3RvdHlwZS5oCkBAIC00OSw2ICs0OSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNH
bG9iYWxPYmplY3QqKTsKKwogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQW5vbnltb3Vz
U2xvdENvdW50ID0gSlNBcnJheTo6QW5vbnltb3VzU2xvdENvdW50ICsgMTsKICAgICB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwCmluZGV4
IGUyNGEzMGE0YmI1NGFlNTAwZWQwZTlkNzE2NWZjOWNlN2E1ZDlhNjMuLmI5ZTMzZGM0ODQyOThi
NmNlZTY3NGUxOGQ1NGE4N2Y2MmRhZGZkNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwCkBAIC0zMCw2ICszMCwxMiBAQCBjb25zdCBDbGFz
c0luZm8gQm9vbGVhbk9iamVjdDo6c19pbmZvID0geyAiQm9vbGVhbiIsICZKU1dyYXBwZXJPYmpl
Y3Q6OnNfaW5mbywgMAogQm9vbGVhbk9iamVjdDo6Qm9vbGVhbk9iamVjdChKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNXcmFwcGVyT2JqZWN0
KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRh
KTsKK30KKwordm9pZCBCb29sZWFuT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAg
ICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCmluZGV4IDcwZWQxMjYxMmNmZTk1NzM3YTAxM2Uw
ZDdjNzQ2MzFjYjljMDY3ZWUuLjg0NjEwZDliODFmNTBlMWRhYjhkODM0MTVkZDQ3NTI4NTQ4OTdl
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmpl
Y3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmgK
QEAgLTI4LDYgKzI4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgQm9vbGVhbk9iamVj
dCA6IHB1YmxpYyBKU1dyYXBwZXJPYmplY3QgewogICAgIHByb3RlY3RlZDoKICAgICAgICAgQm9v
bGVhbk9iamVjdChKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqKTsKKyAgICAgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihKU0dsb2JhbERhdGEmKTsKIAogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRl
ZiBKU1dyYXBwZXJPYmplY3QgQmFzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlSW5zdGFuY2UuY3BwCmluZGV4IGQ4Y2EwNzI0OTFiODU4M2RmYzgxZTEyOTVhMmQ4YjM5
MmE2NDQ3ZGYuLjJlYzcyMWQ5YjViNDk2N2Q4ZTEzODI4NDEzODExMjcyM2E4ZGJjYjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcApAQCAtMzcs
MTUgKzM3LDIwIEBAIGNvbnN0IENsYXNzSW5mbyBEYXRlSW5zdGFuY2U6OnNfaW5mbyA9IHsiRGF0
ZSIsICZKU1dyYXBwZXJPYmplY3Q6OnNfaW5mbywgMCwgMH07CiBEYXRlSW5zdGFuY2U6OkRhdGVJ
bnN0YW5jZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNX
cmFwcGVyT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogewotICAgIEFTU0VS
VChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgc2V0SW50ZXJuYWxWYWx1ZShleGVjLT5nbG9iYWxE
YXRhKCksIGpzTmFOKCkpOworICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwg
anNOYU4oKSk7CiB9CiAKIERhdGVJbnN0YW5jZTo6RGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSogZXhl
YywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGRvdWJsZSB0aW1lKQogICAgIDogSlNXcmFwcGVyT2Jq
ZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9u
KGV4ZWMtPmdsb2JhbERhdGEoKSwganNOdW1iZXIodGltZUNsaXAodGltZSkpKTsKK30KKwordm9p
ZCBEYXRlSW5zdGFuY2U6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsK
ICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwotICAgIHNldEludGVybmFsVmFsdWUoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBqc051bWJlcih0aW1lQ2xpcCh0aW1lKSkpOworICAgIHNldEludGVy
bmFsVmFsdWUoZ2xvYmFsRGF0YSwgdmFsdWUpOwogfQogCiBjb25zdCBHcmVnb3JpYW5EYXRlVGlt
ZSogRGF0ZUluc3RhbmNlOjpjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZShFeGVjU3RhdGUqIGV4
ZWMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
SW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5o
CmluZGV4IGFmMmRmYTA1MGIzMzI1NmIyMzhjOWQzMGQ2Y2MyZmFlY2JkYTM2MWIuLjQ1NmQzNWQx
MzlhMmUyMzQ3NjhlODkyYzEzMGFhNWEyZTE1ZjAwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oCkBAIC0zMyw2ICszMyw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgIHByb3RlY3RlZDoKICAgICAgICAgRGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSosIFN0
cnVjdHVyZSosIGRvdWJsZSk7CiAgICAgICAgIERhdGVJbnN0YW5jZShFeGVjU3RhdGUqLCBTdHJ1
Y3R1cmUqKTsKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBKU1Zh
bHVlKTsKICAgICAgICAgCiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpTV3JhcHBlck9i
amVjdCBCYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JJbnN0YW5jZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3Rh
bmNlLmNwcAppbmRleCAzZTAzMzdiODk0ZDM1MzdhZTEyZWY1OTViYTk1OTFkODNlNWFkMjBmLi5i
MTU0YWEzYmEwODg3NzZmMWRkNDllMjdkNmZhODkwNWQ3YjEzMTNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcApAQCAtMjksMjYgKzI5LDIz
IEBAIEVycm9ySW5zdGFuY2U6OkVycm9ySW5zdGFuY2UoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0
YSwgc3RydWN0dXJlKQogICAgICwgbV9hcHBlbmRTb3VyY2VUb01lc3NhZ2UoZmFsc2UpCiB7Ci0g
ICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgVVN0cmluZygiIiwgMCkpOwotfQotCi1FcnJv
ckluc3RhbmNlOjpFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFVTdHJpbmcmIG1lc3NhZ2UpCi0gICAgOiBKU05vbkZpbmFs
T2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKLSAgICAsIG1fYXBwZW5kU291cmNlVG9NZXNz
YWdlKGZhbHNlKQotewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIG1lc3NhZ2UpOwog
fQogCiBFcnJvckluc3RhbmNlKiBFcnJvckluc3RhbmNlOjpjcmVhdGUoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgVVN0cmluZyYgbWVzc2FnZSkK
IHsKLSAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8RXJyb3JJbnN0YW5jZT4oZ2xvYmFsRGF0
YS5oZWFwKSkgRXJyb3JJbnN0YW5jZShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUsIG1lc3NhZ2UpOwor
ICAgIEVycm9ySW5zdGFuY2UqIGluc3RhbmNlID0gbmV3IChhbGxvY2F0ZUNlbGw8RXJyb3JJbnN0
YW5jZT4oZ2xvYmFsRGF0YS5oZWFwKSkgRXJyb3JJbnN0YW5jZShnbG9iYWxEYXRhLCBzdHJ1Y3R1
cmUpOworICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBtZXNzYWdlKTsK
KyAgICByZXR1cm4gaW5zdGFuY2U7CiB9CiAKIEVycm9ySW5zdGFuY2UqIEVycm9ySW5zdGFuY2U6
OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1ZhbHVlIG1l
c3NhZ2UpCiB7CisgICAgRXJyb3JJbnN0YW5jZSogaW5zdGFuY2UgPSBuZXcgKGFsbG9jYXRlQ2Vs
bDxFcnJvckluc3RhbmNlPigqZXhlYy0+aGVhcCgpKSkgRXJyb3JJbnN0YW5jZShleGVjLT5nbG9i
YWxEYXRhKCksIHN0cnVjdHVyZSk7CiAgICAgaWYgKG1lc3NhZ2UuaXNVbmRlZmluZWQoKSkKLSAg
ICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEVycm9ySW5zdGFuY2U+KCpleGVjLT5oZWFw
KCkpKSBFcnJvckluc3RhbmNlKGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKTsKLSAgICBy
ZXR1cm4gY3JlYXRlKGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlLCBtZXNzYWdlLnRvU3Ry
aW5nKGV4ZWMpKTsKKyAgICAgICAgaW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2Jh
bERhdGEoKSwgVVN0cmluZygiIiwgMCkpOworICAgIGVsc2UKKyAgICAgICAgaW5zdGFuY2UtPmZp
bmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgbWVzc2FnZS50b1N0cmluZyhleGVjKSk7
CisgICAgcmV0dXJuIGluc3RhbmNlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaAppbmRleCAwNmE5NTMyMTNj
YTViZTViNDUxYTNkYzhhMTFlOTJkYWExMjc2ZjkyLi5hNmE3Mzc4NTQ0NThkMDU0YjVhMDBlNGMz
NDQxYjA4YTk3YTUwM2IzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvckluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JJbnN0YW5jZS5oCkBAIC00OCw3ICs0OCw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJv
dGVjdGVkOgogICAgICAgICBleHBsaWNpdCBFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYsIFN0
cnVjdHVyZSopOwotICAgICAgICBleHBsaWNpdCBFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYs
IFN0cnVjdHVyZSosIGNvbnN0IFVTdHJpbmcmKTsKIAogICAgICAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgVVN0cmluZyYgbWVzc2FnZSkKICAg
ICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQ
cm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5
cGUuY3BwCmluZGV4IDM4NjA2OGJjM2U3OGY3YmJkZGIyNGMzNDdjOWQxZmZkN2NlZGE4MTEuLjY5
ODY3NTI0YzRjZTdlZjVjNzYzYjZhNTI3MmU3MTZjZTg0OTU3OWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKQEAgLTUzLDExICs1Mywx
MiBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEVycm9yUHJvdG90eXBlKTsKIEVycm9yUHJv
dG90eXBlOjpFcnJvclByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogRXJyb3JJbnN0YW5jZShl
eGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsKLSAgICBjb25zdHJ1Y3RvckJvZHkoZXhl
YywgZ2xvYmFsT2JqZWN0KTsKKyAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3Qp
OwogfQogCi12b2lkIEVycm9yUHJvdG90eXBlOjpjb25zdHJ1Y3RvckJvZHkoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQordm9pZCBFcnJvclByb3RvdHlwZTo6
ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQogeworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgIiIp
OwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPmds
b2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLm5hbWUsIGpzTm9udHJpdmlhbFN0cmlu
ZyhleGVjLCAiRXJyb3IiKSwgRG9udEVudW0pOwogICAgIHB1dEFub255bW91c1ZhbHVlKGdsb2Jh
bE9iamVjdC0+Z2xvYmFsRGF0YSgpLCAwLCBnbG9iYWxPYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmgKaW5kZXggOTgzNTcyYjYyMjNhN2Jk
MzhmYzNlNWFhMTg1NjliYzA4NDQwZWQ3OC4uZDdiMTUyMjVjODE4ZjEyZGQxYjQ2M2ZlMWY1NDcw
OGNkZmNmNDlhOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclBy
b3RvdHlwZS5oCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJvdGVj
dGVkOgogICAgICAgICBFcnJvclByb3RvdHlwZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCos
IFN0cnVjdHVyZSopOwotICAgICAgICB2b2lkIGNvbnN0cnVjdG9yQm9keShFeGVjU3RhdGUqLCBK
U0dsb2JhbE9iamVjdCopOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSos
IEpTR2xvYmFsT2JqZWN0Kik7CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgRXJyb3JJbnN0YW5jZTo6
U3RydWN0dXJlRmxhZ3M7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNT
bG90Q291bnQgPSBFcnJvckluc3RhbmNlOjpBbm9ueW1vdXNTbG90Q291bnQgKyAxOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAppbmRl
eCBiNThkODk1MTdlMzdlZGJhYjI3OTQwMzAxMTE2ZmUzYzIyM2MzNDgyLi40YmM0ZmFlMDYwNGNi
NjIxOGJkOTQwZWMyYWYzNGFlZGFkYTNkZjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcApAQCAtNDYsNyArNDYsNiBAQCBwcml2
YXRlOgogICAgIEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3IoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhKQogICAgICAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS5p
bnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yU3RydWN0dXJlLmdldCgpKQogICAgIHsKLSAgICAgICAg
ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAgfQogCiBwdWJsaWM6CkBAIC01NCw3ICs1
Myw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yKiBj
cmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5l
dyAoYWxsb2NhdGVDZWxsPEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3I+KGdsb2JhbERhdGEuaGVh
cCkpIEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3IoZ2xvYmFsRGF0YSk7CisgICAgICAgIEludGVy
cnVwdGVkRXhlY3V0aW9uRXJyb3IqIGVycm9yID0gbmV3IChhbGxvY2F0ZUNlbGw8SW50ZXJydXB0
ZWRFeGVjdXRpb25FcnJvcj4oZ2xvYmFsRGF0YS5oZWFwKSkgSW50ZXJydXB0ZWRFeGVjdXRpb25F
cnJvcihnbG9iYWxEYXRhKTsKKyAgICAgICAgZXJyb3ItPmZpbmlzaENyZWF0aW9uKGdsb2JhbERh
dGEpOworICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgfQogCiAgICAgdmlydHVhbCBDb21wbFR5
cGUgZXhjZXB0aW9uVHlwZSgpIGNvbnN0IHsgcmV0dXJuIEludGVycnVwdGVkOyB9CkBAIC03Miw3
ICs3Myw2IEBAIHByaXZhdGU6CiAgICAgVGVybWluYXRlZEV4ZWN1dGlvbkVycm9yKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSkKICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEs
IGdsb2JhbERhdGEudGVybWluYXRlZEV4ZWN1dGlvbkVycm9yU3RydWN0dXJlLmdldCgpKQogICAg
IHsKLSAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAgfQogCiBwdWJsaWM6
CkBAIC04MCw3ICs4MCw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBUZXJtaW5hdGVkRXhlY3V0
aW9uRXJyb3IqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCiAgICAgewotICAgICAg
ICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8VGVybWluYXRlZEV4ZWN1dGlvbkVycm9yPihnbG9i
YWxEYXRhLmhlYXApKSBUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3IoZ2xvYmFsRGF0YSk7CisgICAg
ICAgIFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvciogZXJyb3IgPSBuZXcgKGFsbG9jYXRlQ2VsbDxU
ZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3I+KGdsb2JhbERhdGEuaGVhcCkpIFRlcm1pbmF0ZWRFeGVj
dXRpb25FcnJvcihnbG9iYWxEYXRhKTsKKyAgICAgICAgZXJyb3ItPmZpbmlzaENyZWF0aW9uKGds
b2JhbERhdGEpOworICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgfQogCiAgICAgdmlydHVhbCBD
b21wbFR5cGUgZXhjZXB0aW9uVHlwZSgpIGNvbnN0IHsgcmV0dXJuIFRlcm1pbmF0ZWQ7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKaW5kZXggMzg5N2U5
MzY4YjJmOTA3OWFhNWI5MmYyZmQ0MDIxN2NlNjBlMDBlMi4uNTYxNzUyMjMwOTZhMmYyNjIzNWNl
N2IwNzE0ZTk2NjNkZWM5ODE1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXhlY3V0YWJsZS5jcHAKQEAgLTEyNyw3ICsxMjcsNiBAQCBjb25zdCBDbGFzc0luZm8gRXZhbEV4
ZWN1dGFibGU6OnNfaW5mbyA9IHsgIkV2YWxFeGVjdXRhYmxlIiwgJlNjcmlwdEV4ZWN1dGFibGU6
OgogRXZhbEV4ZWN1dGFibGU6OkV2YWxFeGVjdXRhYmxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
U291cmNlQ29kZSYgc291cmNlLCBib29sIGluU3RyaWN0Q29udGV4dCkKICAgICA6IFNjcmlwdEV4
ZWN1dGFibGUoZXhlYy0+Z2xvYmFsRGF0YSgpLmV2YWxFeGVjdXRhYmxlU3RydWN0dXJlLmdldCgp
LCBleGVjLCBzb3VyY2UsIGluU3RyaWN0Q29udGV4dCkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihl
eGVjLT5nbG9iYWxEYXRhKCkpOwogfQogCiBFdmFsRXhlY3V0YWJsZTo6fkV2YWxFeGVjdXRhYmxl
KCkKQEAgLTEzOSw3ICsxMzgsNiBAQCBjb25zdCBDbGFzc0luZm8gUHJvZ3JhbUV4ZWN1dGFibGU6
OnNfaW5mbyA9IHsgIlByb2dyYW1FeGVjdXRhYmxlIiwgJlNjcmlwdEV4ZWN1dAogUHJvZ3JhbUV4
ZWN1dGFibGU6OlByb2dyYW1FeGVjdXRhYmxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNl
Q29kZSYgc291cmNlKQogICAgIDogU2NyaXB0RXhlY3V0YWJsZShleGVjLT5nbG9iYWxEYXRhKCku
cHJvZ3JhbUV4ZWN1dGFibGVTdHJ1Y3R1cmUuZ2V0KCksIGV4ZWMsIHNvdXJjZSwgZmFsc2UpCiB7
Ci0gICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKIH0KIAogUHJvZ3JhbUV4
ZWN1dGFibGU6On5Qcm9ncmFtRXhlY3V0YWJsZSgpCkBAIC0xNDgsNyArMTQ2LDcgQEAgUHJvZ3Jh
bUV4ZWN1dGFibGU6On5Qcm9ncmFtRXhlY3V0YWJsZSgpCiAKIGNvbnN0IENsYXNzSW5mbyBGdW5j
dGlvbkV4ZWN1dGFibGU6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uRXhlY3V0YWJsZSIsICZTY3JpcHRF
eGVjdXRhYmxlOjpzX2luZm8sIDAsIDAgfTsKIAotRnVuY3Rpb25FeGVjdXRhYmxlOjpGdW5jdGlv
bkV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVyJiBu
YW1lLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBG
dW5jdGlvblBhcmFtZXRlcnMqIHBhcmFtZXRlcnMsIGJvb2wgaW5TdHJpY3RDb250ZXh0LCBpbnQg
Zmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpCitGdW5jdGlvbkV4ZWN1dGFibGU6OkZ1bmN0aW9uRXhl
Y3V0YWJsZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXImIG5hbWUs
IGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBmb3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0
aW9uUGFyYW1ldGVycyogcGFyYW1ldGVycywgYm9vbCBpblN0cmljdENvbnRleHQpCiAgICAgOiBT
Y3JpcHRFeGVjdXRhYmxlKGdsb2JhbERhdGEuZnVuY3Rpb25FeGVjdXRhYmxlU3RydWN0dXJlLmdl
dCgpLCBnbG9iYWxEYXRhLCBzb3VyY2UsIGluU3RyaWN0Q29udGV4dCkKICAgICAsIG1fbnVtQ2Fw
dHVyZWRWYXJpYWJsZXMoMCkKICAgICAsIG1fZm9yY2VVc2VzQXJndW1lbnRzKGZvcmNlVXNlc0Fy
Z3VtZW50cykKQEAgLTE1NiwxMCArMTU0LDkgQEAgRnVuY3Rpb25FeGVjdXRhYmxlOjpGdW5jdGlv
bkV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWUKICAg
ICAsIG1fbmFtZShuYW1lKQogICAgICwgbV9zeW1ib2xUYWJsZSgwKQogewotICAgIGZpbmlzaENy
ZWF0aW9uKGdsb2JhbERhdGEsIG5hbWUsIGZpcnN0TGluZSwgbGFzdExpbmUpOwogfQogCi1GdW5j
dGlvbkV4ZWN1dGFibGU6OkZ1bmN0aW9uRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBmb3JjZVVz
ZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyogcGFyYW1ldGVycywgYm9vbCBpblN0cmlj
dENvbnRleHQsIGludCBmaXJzdExpbmUsIGludCBsYXN0TGluZSkKK0Z1bmN0aW9uRXhlY3V0YWJs
ZTo6RnVuY3Rpb25FeGVjdXRhYmxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
bmFtZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBib29sIGZvcmNlVXNlc0FyZ3VtZW50cywg
RnVuY3Rpb25QYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzLCBib29sIGluU3RyaWN0Q29udGV4dCkKICAg
ICA6IFNjcmlwdEV4ZWN1dGFibGUoZXhlYy0+Z2xvYmFsRGF0YSgpLmZ1bmN0aW9uRXhlY3V0YWJs
ZVN0cnVjdHVyZS5nZXQoKSwgZXhlYywgc291cmNlLCBpblN0cmljdENvbnRleHQpCiAgICAgLCBt
X251bUNhcHR1cmVkVmFyaWFibGVzKDApCiAgICAgLCBtX2ZvcmNlVXNlc0FyZ3VtZW50cyhmb3Jj
ZVVzZXNBcmd1bWVudHMpCkBAIC0xNjcsNyArMTY0LDYgQEAgRnVuY3Rpb25FeGVjdXRhYmxlOjpG
dW5jdGlvbkV4ZWN1dGFibGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBuYW1l
LAogICAgICwgbV9uYW1lKG5hbWUpCiAgICAgLCBtX3N5bWJvbFRhYmxlKDApCiB7Ci0gICAgZmlu
aXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBuYW1lLCBmaXJzdExpbmUsIGxhc3RMaW5l
KTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVj
dXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKaW5k
ZXggNWZhZGJiODEyNDFhMGNlM2UxMzgzMTg1ODhhZjQyMTE2N2ZhMWI2OS4uNjM5YmJlNDcwMGFm
MzM0MzQyNDFkMTU1MDhhZGQ3ZDQxYTcyYTE3YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuaApAQCAtMTc2LDE2ICsxNzYsMjEgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHN0YXRpYyBOYXRpdmVFeGVjdXRhYmxlKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY2FsbFRodW5rLCBOYXRpdmVGdW5jdGlv
biBmdW5jdGlvbiwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvbnN0cnVjdFRodW5rLCBOYXRpdmVG
dW5jdGlvbiBjb25zdHJ1Y3RvcikKICAgICAgICAgewogICAgICAgICAgICAgTmF0aXZlRXhlY3V0
YWJsZSogZXhlY3V0YWJsZTsKLSAgICAgICAgICAgIGlmICghY2FsbFRodW5rKQotICAgICAgICAg
ICAgICAgIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxOYXRpdmVFeGVjdXRhYmxlPihn
bG9iYWxEYXRhLmhlYXApKSBOYXRpdmVFeGVjdXRhYmxlKGdsb2JhbERhdGEsIEpJVENvZGUoKSwg
ZnVuY3Rpb24sIEpJVENvZGUoKSwgY29uc3RydWN0b3IpOwotICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxOYXRpdmVFeGVjdXRh
YmxlPihnbG9iYWxEYXRhLmhlYXApKSBOYXRpdmVFeGVjdXRhYmxlKGdsb2JhbERhdGEsIEpJVENv
ZGU6Okhvc3RGdW5jdGlvbihjYWxsVGh1bmspLCBmdW5jdGlvbiwgSklUQ29kZTo6SG9zdEZ1bmN0
aW9uKGNvbnN0cnVjdFRodW5rKSwgY29uc3RydWN0b3IpOworICAgICAgICAgICAgaWYgKCFjYWxs
VGh1bmspIHsKKyAgICAgICAgICAgICAgICBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8
TmF0aXZlRXhlY3V0YWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkgTmF0aXZlRXhlY3V0YWJsZShnbG9i
YWxEYXRhLCBmdW5jdGlvbiwgY29uc3RydWN0b3IpOworICAgICAgICAgICAgICAgIGV4ZWN1dGFi
bGUtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIEpJVENvZGUoKSwgSklUQ29kZSgpKTsKKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXhlY3V0YWJsZSA9IG5ldyAoYWxs
b2NhdGVDZWxsPE5hdGl2ZUV4ZWN1dGFibGU+KGdsb2JhbERhdGEuaGVhcCkpIE5hdGl2ZUV4ZWN1
dGFibGUoZ2xvYmFsRGF0YSwgZnVuY3Rpb24sIGNvbnN0cnVjdG9yKTsKKyAgICAgICAgICAgICAg
ICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBKSVRDb2RlOjpIb3N0RnVu
Y3Rpb24oY2FsbFRodW5rKSwgSklUQ29kZTo6SG9zdEZ1bmN0aW9uKGNvbnN0cnVjdFRodW5rKSk7
CisgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAgICAgICAg
fQogI2Vsc2UKICAgICAgICAgc3RhdGljIE5hdGl2ZUV4ZWN1dGFibGUqIGNyZWF0ZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlv
biBjb25zdHJ1Y3RvcikKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2Nh
dGVDZWxsPE5hdGl2ZUV4ZWN1dGFibGU+KGdsb2JhbERhdGEuaGVhcCkpIE5hdGl2ZUV4ZWN1dGFi
bGUoZ2xvYmFsRGF0YSwgZnVuY3Rpb24sIGNvbnN0cnVjdG9yKTsKKyAgICAgICAgICAgIE5hdGl2
ZUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxOYXRpdmVFeGVjdXRh
YmxlPihnbG9iYWxEYXRhLmhlYXApKSBOYXRpdmVFeGVjdXRhYmxlKGdsb2JhbERhdGEsIGZ1bmN0
aW9uLCBjb25zdHJ1Y3Rvcik7CisgICAgICAgICAgICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlv
bihnbG9iYWxEYXRhKTsKKyAgICAgICAgICAgIHJldHVybiBleGVjdXRhYmxlOwogICAgICAgICB9
CiAjZW5kaWYKIApAQCAtMjExLDEyICsyMTYsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgCiAgICAg
cHJpdmF0ZToKICNpZiBFTkFCTEUoSklUKQotICAgICAgICBOYXRpdmVFeGVjdXRhYmxlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSklUQ29kZSBjYWxsVGh1bmssIE5hdGl2ZUZ1bmN0aW9uIGZ1
bmN0aW9uLCBKSVRDb2RlIGNvbnN0cnVjdFRodW5rLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3Rv
cikKKyAgICAgICAgTmF0aXZlRXhlY3V0YWJsZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIE5h
dGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKICAgICAg
ICAgICAgIDogRXhlY3V0YWJsZUJhc2UoZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS5uYXRpdmVFeGVj
dXRhYmxlU3RydWN0dXJlLmdldCgpLCBOVU1fUEFSQU1FVEVSU19JU19IT1NUKQogICAgICAgICAg
ICAgLCBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQogICAgICAgICAgICAgLCBtX2NvbnN0cnVjdG9yKGNv
bnN0cnVjdG9yKQogICAgICAgICB7Ci0gICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxE
YXRhLCBjYWxsVGh1bmssIGNvbnN0cnVjdFRodW5rKTsKICAgICAgICAgfQogI2Vsc2UKICAgICAg
ICAgTmF0aXZlRXhlY3V0YWJsZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0
aW9uIGZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKQEAgLTIyNCw3ICsyMjgs
NiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgICwgbV9mdW5jdGlvbihmdW5jdGlvbikK
ICAgICAgICAgICAgICwgbV9jb25zdHJ1Y3Rvcihjb25zdHJ1Y3RvcikKICAgICAgICAgewotICAg
ICAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAgICAgIH0KICNlbmRpZgog
CkBAIC0zMTcsNiArMzIwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBFdmFs
RXhlY3V0YWJsZSogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291
cmNlLCBib29sIGlzSW5TdHJpY3RDb250ZXh0KSAKICAgICAgICAgewogICAgICAgICAgICAgRXZh
bEV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxFdmFsRXhlY3V0YWJs
ZT4oKmV4ZWMtPmhlYXAoKSkpIEV2YWxFeGVjdXRhYmxlKGV4ZWMsIHNvdXJjZSwgaXNJblN0cmlj
dENvbnRleHQpOworICAgICAgICAgICAgZXhlY3V0YWJsZS0+ZmluaXNoQ3JlYXRpb24oZXhlYy0+
Z2xvYmFsRGF0YSgpKTsKICAgICAgICAgICAgIHJldHVybiBleGVjdXRhYmxlOwogICAgICAgICB9
CiAKQEAgLTM1NCw2ICszNTgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIFBy
b2dyYW1FeGVjdXRhYmxlKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2Rl
JiBzb3VyY2UpCiAgICAgICAgIHsKICAgICAgICAgICAgIFByb2dyYW1FeGVjdXRhYmxlKiBleGVj
dXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8UHJvZ3JhbUV4ZWN1dGFibGU+KCpleGVjLT5oZWFw
KCkpKSBQcm9ncmFtRXhlY3V0YWJsZShleGVjLCBzb3VyY2UpOworICAgICAgICAgICAgZXhlY3V0
YWJsZS0+ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKICAgICAgICAgICAgIHJl
dHVybiBleGVjdXRhYmxlOwogICAgICAgICB9CiAKQEAgLTQxMiwxMyArNDE3LDE1IEBAIG5hbWVz
cGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBGdW5jdGlvbkV4ZWN1dGFibGUqIGNyZWF0ZShF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUm
IHNvdXJjZSwgYm9vbCBmb3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyogcGFy
YW1ldGVycywgYm9vbCBpc0luU3RyaWN0Q29udGV4dCwgaW50IGZpcnN0TGluZSwgaW50IGxhc3RM
aW5lKQogICAgICAgICB7Ci0gICAgICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFi
bGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxGdW5jdGlvbkV4ZWN1dGFibGU+KCpleGVjLT5oZWFwKCkp
KSBGdW5jdGlvbkV4ZWN1dGFibGUoZXhlYywgbmFtZSwgc291cmNlLCBmb3JjZVVzZXNBcmd1bWVu
dHMsIHBhcmFtZXRlcnMsIGlzSW5TdHJpY3RDb250ZXh0LCBmaXJzdExpbmUsIGxhc3RMaW5lKTsK
KyAgICAgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2Nh
dGVDZWxsPEZ1bmN0aW9uRXhlY3V0YWJsZT4oKmV4ZWMtPmhlYXAoKSkpIEZ1bmN0aW9uRXhlY3V0
YWJsZShleGVjLCBuYW1lLCBzb3VyY2UsIGZvcmNlVXNlc0FyZ3VtZW50cywgcGFyYW1ldGVycywg
aXNJblN0cmljdENvbnRleHQpOworICAgICAgICAgICAgZXhlY3V0YWJsZS0+ZmluaXNoQ3JlYXRp
b24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBuYW1lLCBmaXJzdExpbmUsIGxhc3RMaW5lKTsKICAgICAg
ICAgICAgIHJldHVybiBleGVjdXRhYmxlOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIEZ1
bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3Qg
SWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBib29sIGZvcmNlVXNl
c0FyZ3VtZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzLCBib29sIGlzSW5TdHJp
Y3RDb250ZXh0LCBpbnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2NhdGVDZWxs
PEZ1bmN0aW9uRXhlY3V0YWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkgRnVuY3Rpb25FeGVjdXRhYmxl
KGdsb2JhbERhdGEsIG5hbWUsIHNvdXJjZSwgZm9yY2VVc2VzQXJndW1lbnRzLCBwYXJhbWV0ZXJz
LCBpc0luU3RyaWN0Q29udGV4dCwgZmlyc3RMaW5lLCBsYXN0TGluZSk7CisgICAgICAgICAgICBG
dW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxGdW5jdGlv
bkV4ZWN1dGFibGU+KGdsb2JhbERhdGEuaGVhcCkpIEZ1bmN0aW9uRXhlY3V0YWJsZShnbG9iYWxE
YXRhLCBuYW1lLCBzb3VyY2UsIGZvcmNlVXNlc0FyZ3VtZW50cywgcGFyYW1ldGVycywgaXNJblN0
cmljdENvbnRleHQpOworICAgICAgICAgICAgZXhlY3V0YWJsZS0+ZmluaXNoQ3JlYXRpb24oZ2xv
YmFsRGF0YSwgbmFtZSwgZmlyc3RMaW5lLCBsYXN0TGluZSk7CiAgICAgICAgICAgICByZXR1cm4g
ZXhlY3V0YWJsZTsKICAgICAgICAgfQogCkBAIC01MzksOCArNTQ2LDggQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJs
ZShKU0dsb2JhbERhdGEmLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25zdCBTb3VyY2VDb2Rl
JiwgYm9vbCBmb3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyosIGJvb2wsIGlu
dCBmaXJzdExpbmUsIGludCBsYXN0TGluZSk7Ci0gICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZShF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25zdCBTb3VyY2VDb2RlJiwgYm9v
bCBmb3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyosIGJvb2wsIGludCBmaXJz
dExpbmUsIGludCBsYXN0TGluZSk7CisgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZShKU0dsb2Jh
bERhdGEmLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25zdCBTb3VyY2VDb2RlJiwgYm9vbCBm
b3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyosIGJvb2wpOworICAgICAgICBG
dW5jdGlvbkV4ZWN1dGFibGUoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29u
c3QgU291cmNlQ29kZSYsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRl
cnMqLCBib29sKTsKIAogICAgICAgICBKU09iamVjdCogY29tcGlsZUZvckNhbGxJbnRlcm5hbChF
eGVjU3RhdGUqLCBTY29wZUNoYWluTm9kZSosIEV4ZWNTdGF0ZSogY2FsbGVlQXJnc0V4ZWMpOwog
ICAgICAgICBKU09iamVjdCogY29tcGlsZUZvckNvbnN0cnVjdEludGVybmFsKEV4ZWNTdGF0ZSos
IFNjb3BlQ2hhaW5Ob2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGVybmFsRnVuY3Rpb24uY3BwCmluZGV4IGJjYTE3NDcxMzJkNGM5NzMxN2Q1N2NkODBlNDkx
ZDQ4NjI4YWNlOTAuLjA3YzBmN2Y1YmY2NWEzZTc1NmI1MWMyNDAzN2NhY2MzM2M0MmU2MjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24u
Y3BwCkBAIC00NCw3ICs0NCwxNCBAQCBJbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9u
KFZQdHJTdGVhbGluZ0hhY2tUeXBlKQogSW50ZXJuYWxGdW5jdGlvbjo6SW50ZXJuYWxGdW5jdGlv
bihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKQogICAgIDogSlNP
YmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogewotICAgIGNv
bnN0cnVjdG9yQm9keSgqZ2xvYmFsRGF0YSwgbmFtZSk7CisgICAgZmluaXNoQ3JlYXRpb24oKmds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgbmFtZSk7Cit9CisKK3ZvaWQgSW50ZXJuYWxGdW5jdGlv
bjo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKQoreworICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCk7CisgICAgQVNTRVJUKGluaGVy
aXRzKCZzX2luZm8pKTsKKyAgICBwdXREaXJlY3QoZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS5wcm9w
ZXJ0eU5hbWVzLT5uYW1lLCBqc1N0cmluZygmZ2xvYmFsRGF0YSwgbmFtZS5pc051bGwoKSA/ICIi
IDogbmFtZS51c3RyaW5nKCkpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiB9
CiAKIGNvbnN0IFVTdHJpbmcmIEludGVybmFsRnVuY3Rpb246Om5hbWUoRXhlY1N0YXRlKiBleGVj
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5j
dGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5o
CmluZGV4IDE0MzZmMzJkNmU3YTdkZTI4ZjU0ZjkxMDkwM2JkMWY3ODEwNzBlNjUuLjYwNjdiZThk
YmZkZGIzN2NhNDYwNzk4MWE3MzA4YTU4MzgwNjg1Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKQEAgLTU0LDExICs1NCw3IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgICAgIEludGVybmFsRnVuY3Rpb24oSlNHbG9iYWxEYXRhKiwg
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBjb25zdCBJZGVudGlmaWVyJik7CiAKLSAgICAg
ICAgdm9pZCBjb25zdHJ1Y3RvckJvZHkoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJ
ZGVudGlmaWVyJiBuYW1lKQotICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQoaW5oZXJpdHMo
JnNfaW5mbykpOwotICAgICAgICAgICAgcHV0RGlyZWN0KGdsb2JhbERhdGEsIGdsb2JhbERhdGEu
cHJvcGVydHlOYW1lcy0+bmFtZSwganNTdHJpbmcoJmdsb2JhbERhdGEsIG5hbWUuaXNOdWxsKCkg
PyAiIiA6IG5hbWUudXN0cmluZygpKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0p
OwotICAgICAgICB9CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiwg
SlNHbG9iYWxPYmplY3QqLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKTsKIAogICAgIHByaXZhdGU6
CiAgICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERhdGEmKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAppbmRleCA1
MDI4OTAyYzk5MmQxNGExMjU0YTczYTBkZGM2OWM5OWY3ZmEwYjYyLi41Yzk5ZDdhNjU0MzhkMWNl
NzlkYzdjYjUwNWE4NTc3YTNmNjk3YmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKQEAgLTQ2LDYgKzQ2LDEyIEBAIEpTQWN0aXZhdGlvbjo6
SlNBY3RpdmF0aW9uKENhbGxGcmFtZSogY2FsbEZyYW1lLCBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1
bmN0aW9uRXhlCiAgICAgLCBtX3JlcXVpcmVzRHluYW1pY0NoZWNrcyhmdW5jdGlvbkV4ZWN1dGFi
bGUtPnVzZXNFdmFsKCkpCiAgICAgLCBtX2FyZ3VtZW50c1JlZ2lzdGVyKGZ1bmN0aW9uRXhlY3V0
YWJsZS0+Z2VuZXJhdGVkQnl0ZWNvZGUoKS5hcmd1bWVudHNSZWdpc3RlcigpKQogeworICAgIGZp
bmlzaENyZWF0aW9uKGNhbGxGcmFtZSk7Cit9CisKK3ZvaWQgSlNBY3RpdmF0aW9uOjpmaW5pc2hD
cmVhdGlvbihDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bihjYWxsRnJhbWUtPmdsb2JhbERhdGEoKSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8p
KTsKIAogICAgIC8vIFdlIGhhdmUgdG8gbWFudWFsbHkgcmVmIGFuZCBkZXJlZiB0aGUgc3ltYm9s
IHRhYmxlIGFzIEpTVmFyaWFibGVPYmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBY3RpdmF0aW9uLmgKaW5kZXggZjE1OTFhYWExODBlYWUxM2YzNWY1OTIwNjQ4NDIwOWJi
M2Y4ZTBhZC4uZGEyZTQ2NTVlMDY5NGY3YzU5M2QzYWYxNzFkNjAwZmQwNzA2NjI1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKQEAgLTc3LDYgKzc3
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IH0KIAogICAg
IHByb3RlY3RlZDoKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihDYWxsRnJhbWUqKTsKICAg
ICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSXNFbnZpcm9ubWVu
dFJlY29yZCB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc1Zpc2l0Q2hp
bGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNWYXJpYWJsZU9iamVjdDo6U3Ry
dWN0dXJlRmxhZ3M7CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5LmNwcAppbmRleCAxODVkN2FlYjZiZmM0NTI5MTZiYmZlYmIxNzEwNGRiMDc2NzVk
OTMyLi5jNjVhOTIzN2M3NDhkNmQ0NjA1MTM0NGVlMTdjMTUzOGUzNzY3MTAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcApAQCAtMTM0LDE5ICsxMzQsNiBAQCBK
U0FycmF5OjpKU0FycmF5KFZQdHJTdGVhbGluZ0hhY2tUeXBlKQogSlNBcnJheTo6SlNBcnJheShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNO
b25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiB7Ci0gICAgZmluaXNoQ3JlYXRp
b24oZ2xvYmFsRGF0YSk7Ci19Ci0KLUpTQXJyYXk6OkpTQXJyYXkoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgdW5zaWduZWQgaW5pdGlhbExlbmd0aCwgQXJy
YXlDcmVhdGlvbk1vZGUgY3JlYXRpb25Nb2RlKQotICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9i
YWxEYXRhLCBzdHJ1Y3R1cmUpCi17Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgaW5p
dGlhbExlbmd0aCwgY3JlYXRpb25Nb2RlKTsKLX0KLQotSlNBcnJheTo6SlNBcnJheShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBBcmdMaXN0JiBs
aXN0KQotICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCi17Ci0g
ICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgbGlzdCk7CiB9CiAKIHZvaWQgSlNBcnJheTo6
ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQpAQCAtMjQ5LDYgKzIzNiwy
NyBAQCB2b2lkIEpTQXJyYXk6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgY29uc3QgQXJnTGlzdCYgbGlzdCkKICAgICBIZWFwOjpoZWFwKHRoaXMpLT5yZXBvcnRFeHRy
YU1lbW9yeUNvc3Qoc3RvcmFnZVNpemUoaW5pdGlhbFN0b3JhZ2UpKTsKIH0KIAorSlNBcnJheSog
SlNBcnJheTo6Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUpCit7CisgICAgSlNBcnJheSogYXJyYXkgPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0FycmF5
PihnbG9iYWxEYXRhLmhlYXApKSBKU0FycmF5KGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7CisgICAg
YXJyYXktPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOworICAgIHJldHVybiBhcnJheTsKK30K
KworSlNBcnJheSogSlNBcnJheTo6Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIHVuc2lnbmVkIGluaXRpYWxMZW5ndGgsIEFycmF5Q3JlYXRpb25N
b2RlIGNyZWF0ZU1vZGUpCit7CisgICAgSlNBcnJheSogYXJyYXkgPSBuZXcgKGFsbG9jYXRlQ2Vs
bDxKU0FycmF5PihnbG9iYWxEYXRhLmhlYXApKSBKU0FycmF5KGdsb2JhbERhdGEsIHN0cnVjdHVy
ZSk7CisgICAgYXJyYXktPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGluaXRpYWxMZW5ndGgs
IGNyZWF0ZU1vZGUpOworICAgIHJldHVybiBhcnJheTsKK30KKworSlNBcnJheSogSlNBcnJheTo6
Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNv
bnN0IEFyZ0xpc3QmIGluaXRpYWxWYWx1ZXMpCit7CisgICAgSlNBcnJheSogYXJyYXkgPSBuZXcg
KGFsbG9jYXRlQ2VsbDxKU0FycmF5PihnbG9iYWxEYXRhLmhlYXApKSBKU0FycmF5KGdsb2JhbERh
dGEsIHN0cnVjdHVyZSk7CisgICAgYXJyYXktPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGlu
aXRpYWxWYWx1ZXMpOworICAgIHJldHVybiBhcnJheTsKK30KKwogSlNBcnJheTo6fkpTQXJyYXko
KQogewogICAgIEFTU0VSVCh2cHRyKCkgPT0gSlNHbG9iYWxEYXRhOjpqc0FycmF5VlB0cik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKaW5kZXggZThlMWZhOTJkNWZkNDAx
OTMxZTc4MjM1ZDMyNjU0MTM5ZDY2ZGZlNi4uODZkYWY4NDY3OTYwYjAwYzY5ZGRiNDhiZTg4MGVi
Njc0YTNmNTQzYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
cnJheS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaApAQCAt
NjIsOCArNjIsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAg
ZXhwbGljaXQgSlNBcnJheShKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAgSlNB
cnJheShKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqLCB1bnNpZ25lZCBpbml0aWFsTGVuZ3RoLCBB
cnJheUNyZWF0aW9uTW9kZSk7Ci0gICAgICAgIEpTQXJyYXkoSlNHbG9iYWxEYXRhJiwgU3RydWN0
dXJlKiwgY29uc3QgQXJnTGlzdCYgaW5pdGlhbFZhbHVlcyk7CiAKICAgICAgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihKU0dsb2JhbERhdGEmKTsKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihK
U0dsb2JhbERhdGEmLCB1bnNpZ25lZCBpbml0aWFsTGVuZ3RoLCBBcnJheUNyZWF0aW9uTW9kZSk7
CkBAIC03NSwyMCArNzMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSlNBcnJheShWUHRy
U3RlYWxpbmdIYWNrVHlwZSk7CiAgICAgICAgIHZpcnR1YWwgfkpTQXJyYXkoKTsKIAotICAgICAg
ICBzdGF0aWMgSlNBcnJheSogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9j
YXRlQ2VsbDxKU0FycmF5PihnbG9iYWxEYXRhLmhlYXApKSBKU0FycmF5KGdsb2JhbERhdGEsIHN0
cnVjdHVyZSk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHN0YXRpYyBKU0FycmF5KiBj
cmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgdW5z
aWduZWQgaW5pdGlhbExlbmd0aCwgQXJyYXlDcmVhdGlvbk1vZGUgY3JlYXRlTW9kZSkKLSAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEpTQXJyYXk+KGdsb2Jh
bERhdGEuaGVhcCkpIEpTQXJyYXkoZ2xvYmFsRGF0YSwgc3RydWN0dXJlLCBpbml0aWFsTGVuZ3Ro
LCBjcmVhdGVNb2RlKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgc3RhdGljIEpTQXJy
YXkqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBjb25zdCBBcmdMaXN0JiBpbml0aWFsVmFsdWVzKQotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SlNBcnJheT4oZ2xvYmFsRGF0YS5oZWFwKSkgSlNBcnJh
eShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUsIGluaXRpYWxWYWx1ZXMpOwotICAgICAgICB9CisgICAg
ICAgIHN0YXRpYyBKU0FycmF5KiBjcmVhdGUoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKik7Cisg
ICAgICAgIHN0YXRpYyBKU0FycmF5KiBjcmVhdGUoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiwg
dW5zaWduZWQgaW5pdGlhbExlbmd0aCwgQXJyYXlDcmVhdGlvbk1vZGUgY3JlYXRlTW9kZSk7Cisg
ICAgICAgIHN0YXRpYyBKU0FycmF5KiBjcmVhdGUoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiwg
Y29uc3QgQXJnTGlzdCYgaW5pdGlhbFZhbHVlcyk7CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFy
cmF5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcApp
bmRleCBiYmU3NjMyYTJlMjFhMzk5N2Q0NzM1ZWY2NmNkMWQzZjc2NzFhMDc5Li5mMTRmMWEzNmRh
MTJlY2QzNTM1NWM0NGM4NTIwMzQzZjBkNDQ5MjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCkBAIC0zOSwxMiArMzksMTMgQEAgSlNCeXRlQXJy
YXk6OkpTQnl0ZUFycmF5KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEJ5
dGVBcnJheSogc3RvcmEKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBzdHJ1Y3R1cmUpCiAgICAgLCBtX3N0b3JhZ2Uoc3RvcmFnZSkKIHsKLSAgICBmaW5pc2hDcmVh
dGlvbihleGVjKTsKIH0KICAgICAgICAgCiBKU0J5dGVBcnJheSogSlNCeXRlQXJyYXk6OmNyZWF0
ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBCeXRlQXJyYXkqIHN0b3Jh
Z2UpCiB7Ci0gICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEpTQnl0ZUFycmF5PigqZXhlYy0+
aGVhcCgpKSkgSlNCeXRlQXJyYXkoZXhlYywgc3RydWN0dXJlLCBzdG9yYWdlKTsKKyAgICBKU0J5
dGVBcnJheSogYXJyYXkgPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0J5dGVBcnJheT4oKmV4ZWMtPmhl
YXAoKSkpIEpTQnl0ZUFycmF5KGV4ZWMsIHN0cnVjdHVyZSwgc3RvcmFnZSk7CisgICAgYXJyYXkt
PmZpbmlzaENyZWF0aW9uKGV4ZWMpOworICAgIHJldHVybiBhcnJheTsKIH0KIAogI2lmICFBU1NF
UlRfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5j
cHAKaW5kZXggNDk5YWViNmQyNzQ4YzI5NDA4OTBiYzJiYmM3ZGQ4ZGE4NjRlYmVlZC4uNjM5NTFi
YTRlYjU1OTQxZjBhZDRiMTVhYzFkNzZiY2Q4ZGQ5ZTFhNiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAgLTYxLDIxICs2MSwxMSBAQCBKU0Z1bmN0
aW9uOjpKU0Z1bmN0aW9uKFZQdHJTdGVhbGluZ0hhY2tUeXBlKQogewogfQogCi1KU0Z1bmN0aW9u
OjpKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5h
bWUsIE5hdGl2ZUV4ZWN1dGFibGUqIHRodW5rKQorSlNGdW5jdGlvbjo6SlNGdW5jdGlvbihFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogICAgIDogQmFzZShnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKICAgICAsIG1fZXhl
Y3V0YWJsZSgpCiAgICAgLCBtX3Njb3BlQ2hhaW4oZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBn
bG9iYWxPYmplY3QtPmdsb2JhbFNjb3BlQ2hhaW4oKSkKIHsKLSAgICBjb25zdHJ1Y3RvckJvZHko
ZXhlYywgbGVuZ3RoLCBuYW1lLCB0aHVuayk7Ci19Ci0KLUpTRnVuY3Rpb246OkpTRnVuY3Rpb24o
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgTmF0aXZlRnVu
Y3Rpb24gZnVuYykKLSAgICA6IEJhc2UoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCi0gICAgLCBt
X2V4ZWN1dGFibGUoKQotICAgICwgbV9zY29wZUNoYWluKGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhp
cywgZ2xvYmFsT2JqZWN0LT5nbG9iYWxTY29wZUNoYWluKCkpCi17Ci0gICAgLy8gQ2FuJ3QgZG8g
dGhpcyBkdXJpbmcgaW5pdGlhbGl6YXRpb24gYmVjYXVzZSBnZXRIb3N0RnVuY3Rpb24gbWlnaHQg
ZG8gYSBHQyBhbGxvY2F0aW9uLgotICAgIGNvbnN0cnVjdG9yQm9keShleGVjLCBsZW5ndGgsIG5h
bWUsICBleGVjLT5nbG9iYWxEYXRhKCkuZ2V0SG9zdEZ1bmN0aW9uKGZ1bmMpKTsKIH0KIAogSlNG
dW5jdGlvbjo6SlNGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEZ1bmN0aW9uRXhlY3V0YWJsZSog
ZXhlY3V0YWJsZSwgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW5Ob2RlKQpAQCAtODMsMTkgKzcz
LDQ3IEBAIEpTRnVuY3Rpb246OkpTRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBGdW5jdGlvbkV4
ZWN1dGFibGUqIGV4ZWN1dGFibGUsIFNjb3BlQ2hhCiAgICAgLCBtX2V4ZWN1dGFibGUoZXhlYy0+
Z2xvYmFsRGF0YSgpLCB0aGlzLCBleGVjdXRhYmxlKQogICAgICwgbV9zY29wZUNoYWluKGV4ZWMt
Pmdsb2JhbERhdGEoKSwgdGhpcywgc2NvcGVDaGFpbk5vZGUpCiB7Ci0gICAgQVNTRVJUKGluaGVy
aXRzKCZzX2luZm8pKTsKLSAgICBzZXRTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzY29w
ZUNoYWluTm9kZS0+Z2xvYmFsT2JqZWN0LT5uYW1lZEZ1bmN0aW9uU3RydWN0dXJlKCkpOwotICAg
IHB1dERpcmVjdE9mZnNldChleGVjLT5nbG9iYWxEYXRhKCksIHNjb3BlQ2hhaW5Ob2RlLT5nbG9i
YWxPYmplY3QtPmZ1bmN0aW9uTmFtZU9mZnNldCgpLCBleGVjdXRhYmxlLT5uYW1lVmFsdWUoKSk7
CiB9CiAKLWlubGluZSB2b2lkIEpTRnVuY3Rpb246OmNvbnN0cnVjdG9yQm9keShFeGVjU3RhdGUq
IGV4ZWMsIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEV4ZWN1dGFibGVCYXNl
KiBleGVjdXRhYmxlKQoraW5saW5lIHZvaWQgSlNGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24oRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQgbGVuZ3RoLCBj
b25zdCBJZGVudGlmaWVyJiBuYW1lLCBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSkKIHsKKyAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFs
T2JqZWN0KTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIG1fZXhlY3V0YWJs
ZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBleGVjdXRhYmxlKTsKICAgICBwdXREaXJl
Y3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5nbG9iYWxEYXRhKCkucHJvcGVydHlOYW1lcy0+
bmFtZSwganNTdHJpbmcoZXhlYywgbmFtZS5pc051bGwoKSA/ICIiIDogbmFtZS51c3RyaW5nKCkp
LCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KGV4ZWMt
Pmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIobGVu
Z3RoKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogfQogCitpbmxpbmUgdm9p
ZCBKU0Z1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgU2NvcGVD
aGFpbk5vZGUqIHNjb3BlQ2hhaW5Ob2RlKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGds
b2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOworICAgIEFTU0VSVChpbmhl
cml0cygmc19pbmZvKSk7CisgICAgc2V0U3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgc2Nv
cGVDaGFpbk5vZGUtPmdsb2JhbE9iamVjdC0+bmFtZWRGdW5jdGlvblN0cnVjdHVyZSgpKTsKKyAg
ICBwdXREaXJlY3RPZmZzZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzY29wZUNoYWluTm9kZS0+Z2xv
YmFsT2JqZWN0LT5mdW5jdGlvbk5hbWVPZmZzZXQoKSwgZXhlY3V0YWJsZS0+bmFtZVZhbHVlKCkp
OworfQorCitKU0Z1bmN0aW9uKiBKU0Z1bmN0aW9uOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50IGxl
bmd0aCwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIE5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmN0
aW9uKQoreworICAgIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlID0gZXhlYy0+Z2xvYmFsRGF0
YSgpLmdldEhvc3RGdW5jdGlvbihuYXRpdmVGdW5jdGlvbik7CisgICAgSlNGdW5jdGlvbiogZnVu
Y3Rpb24gPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0Z1bmN0aW9uPigqZXhlYy0+aGVhcCgpKSkgSlNG
dW5jdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7CisgICAgLy8gQ2FuJ3QgZG8g
dGhpcyBkdXJpbmcgaW5pdGlhbGl6YXRpb24gYmVjYXVzZSBnZXRIb3N0RnVuY3Rpb24gbWlnaHQg
ZG8gYSBHQyBhbGxvY2F0aW9uLgorICAgIGZ1bmN0aW9uLT5maW5pc2hDcmVhdGlvbihleGVjLCBn
bG9iYWxPYmplY3QsIGxlbmd0aCwgaWRlbnQsIGV4ZWN1dGFibGUpOworICAgIHJldHVybiBmdW5j
dGlvbjsKK30KK0pTRnVuY3Rpb24qIEpTRnVuY3Rpb246OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQg
bGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZl
RXhlY3V0YWJsZSkKK3sKKyAgICBKU0Z1bmN0aW9uKiBmdW5jdGlvbiA9IG5ldyAoYWxsb2NhdGVD
ZWxsPEpTRnVuY3Rpb24+KCpleGVjLT5oZWFwKCkpKSBKU0Z1bmN0aW9uKGV4ZWMsIGdsb2JhbE9i
amVjdCwgc3RydWN0dXJlKTsKKyAgICBmdW5jdGlvbi0+ZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xv
YmFsT2JqZWN0LCBsZW5ndGgsIGlkZW50LCBuYXRpdmVFeGVjdXRhYmxlKTsKKyAgICByZXR1cm4g
ZnVuY3Rpb247Cit9CitKU0Z1bmN0aW9uKiBKU0Z1bmN0aW9uOjpjcmVhdGUoRXhlY1N0YXRlKiBl
eGVjLCBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIFNjb3BlQ2hhaW5Ob2RlKiBzY29w
ZUNoYWluKQoreworICAgIEpTRnVuY3Rpb24qIGZ1bmN0aW9uID0gbmV3IChhbGxvY2F0ZUNlbGw8
SlNGdW5jdGlvbj4oKmV4ZWMtPmhlYXAoKSkpIEpTRnVuY3Rpb24oZXhlYywgZXhlY3V0YWJsZSwg
c2NvcGVDaGFpbik7CisgICAgZnVuY3Rpb24tPmZpbmlzaENyZWF0aW9uKGV4ZWMsIHNjb3BlQ2hh
aW4tPmdsb2JhbE9iamVjdC5nZXQoKSwgZXhlY3V0YWJsZSwgc2NvcGVDaGFpbik7CisgICAgcmV0
dXJuIGZ1bmN0aW9uOworfQorCisKIEpTRnVuY3Rpb246On5KU0Z1bmN0aW9uKCkKIHsKICAgICBB
U1NFUlQodnB0cigpID09IEpTR2xvYmFsRGF0YTo6anNGdW5jdGlvblZQdHIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IDhiNzNiMGJlMmYyYTI5OTdk
OTA5MDYwMTI5NzMwZDBkZjUwYTBkZDcuLjNlOWFkNmVmOGQ2MDgxOWFkZWFjMWYyYTMxMDBjOGVl
N2QxZmYwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVu
Y3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgK
QEAgLTQ2LDI1ICs0NiwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgZnJpZW5kIGNsYXNz
IERGRzo6SklUQ29kZUdlbmVyYXRvcjsKICAgICAgICAgZnJpZW5kIGNsYXNzIEpTR2xvYmFsRGF0
YTsKIAotICAgICAgICBKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlKiwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYsIE5hdGl2ZUZ1bmN0aW9uKTsK
LSAgICAgICAgSlNGdW5jdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZSosIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImLCBOYXRpdmVFeGVjdXRhYmxlKik7Cisg
ICAgICAgIEpTRnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
KTsKICAgICAgICAgSlNGdW5jdGlvbihFeGVjU3RhdGUqLCBGdW5jdGlvbkV4ZWN1dGFibGUqLCBT
Y29wZUNoYWluTm9kZSopOwogICAgICAgICAKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYg
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IEJhc2U7CiAKLSAgICAgICAgc3RhdGljIEpTRnVuY3Rp
b24qIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBpZGVu
dCwgTmF0aXZlRnVuY3Rpb24gbmF0aXZlRnVuYykKLSAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEpTRnVuY3Rpb24+KCpleGVjLT5oZWFwKCkpKSBKU0Z1bmN0
aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBsZW5ndGgsIGlkZW50LCBuYXRpdmVG
dW5jKTsKLSAgICAgICAgfQotICAgICAgICBzdGF0aWMgSlNGdW5jdGlvbiogY3JlYXRlKEV4ZWNT
dGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBOYXRpdmVFeGVjdXRh
YmxlKiBuYXRpdmVFeGVjKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxv
Y2F0ZUNlbGw8SlNGdW5jdGlvbj4oKmV4ZWMtPmhlYXAoKSkpIEpTRnVuY3Rpb24oZXhlYywgZ2xv
YmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGxlbmd0aCwgaWRlbnQsIG5hdGl2ZUV4ZWMpOwotICAgICAg
ICB9Ci0gICAgICAgIHN0YXRpYyBKU0Z1bmN0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBG
dW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmNFeGVjLCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbikK
LSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEpTRnVuY3Rp
b24+KCpleGVjLT5oZWFwKCkpKSBKU0Z1bmN0aW9uKGV4ZWMsIGZ1bmNFeGVjLCBzY29wZUNoYWlu
KTsKLSAgICAgICAgfQorICAgICAgICBzdGF0aWMgSlNGdW5jdGlvbiogY3JlYXRlKEV4ZWNTdGF0
ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRp
ZmllciYgbmFtZSwgTmF0aXZlRnVuY3Rpb24pOworICAgICAgICBzdGF0aWMgSlNGdW5jdGlvbiog
Y3JlYXRlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgaW50IGxlbmd0
aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgTmF0aXZlRXhlY3V0YWJsZSopOworICAgICAgICBz
dGF0aWMgSlNGdW5jdGlvbiogY3JlYXRlKEV4ZWNTdGF0ZSosIEZ1bmN0aW9uRXhlY3V0YWJsZSos
IFNjb3BlQ2hhaW5Ob2RlKik7CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIH5KU0Z1bmN0aW9u
KCk7CiAKQEAgLTEyMyw3ICsxMTMsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcm90ZWN0ZWQ6
CiAgICAgICAgIGNvbnN0IHN0YXRpYyB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRl
c0dldE93blByb3BlcnR5U2xvdCB8IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc1Zp
c2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0cnVj
dHVyZUZsYWdzOwogCi0gICAgICAgIHZvaWQgY29uc3RydWN0b3JCb2R5KEV4ZWNTdGF0ZSosIGlu
dCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEV4ZWN1dGFibGVCYXNlKik7CisgICAg
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBpbnQg
bGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBFeGVjdXRhYmxlQmFzZSopOworICAgICAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgRnVuY3Rp
b25FeGVjdXRhYmxlKiwgU2NvcGVDaGFpbk5vZGUqKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAg
IGV4cGxpY2l0IEpTRnVuY3Rpb24oVlB0clN0ZWFsaW5nSGFja1R5cGUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggYzIzMGQ3MDJiNTNm
ZDE3ZTVlNWRiZTIxNDI5YjAxOGY5MTEwMmQxYy4uODVjNDI5NjYzMWFlM2U2M2Q5MzgwMzVlYTcw
ODAwNGJmY2VlMDczMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5oCkBAIC0xNTksNyArMTU5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
ICAgICAsIG1fd2Vha1JhbmRvbShzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmFuZG9tTnVtYmVyKCkg
KiAoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpICsgMS4wKSkpCiAgICAgICAg
ICAgICAsIG1fZXZhbEVuYWJsZWQodHJ1ZSkKICAgICAgICAgewotICAgICAgICAgICAgY29uc3Ry
dWN0b3JCb2R5KHRoaXMpOworICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwg
dGhpcyk7CiAgICAgICAgIH0KIAogICAgICAgICBKU0dsb2JhbE9iamVjdChKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU09iamVjdCogdGhpc1ZhbHVlKQpA
QCAtMTY5LDExICsxNjksMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAsIG1fd2Vh
a1JhbmRvbShzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmFuZG9tTnVtYmVyKCkgKiAoc3RkOjpudW1l
cmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpICsgMS4wKSkpCiAgICAgICAgICAgICAsIG1fZXZh
bEVuYWJsZWQodHJ1ZSkKICAgICAgICAgewotICAgICAgICAgICAgY29uc3RydWN0b3JCb2R5KHRo
aXNWYWx1ZSk7CisgICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCB0aGlzVmFs
dWUpOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBjb25zdHJ1Y3RvckJvZHkoSlNPYmplY3Qq
IHRoaXNWYWx1ZSkKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTT2JqZWN0KiB0aGlzVmFsdWUpCiAgICAgICAgIHsKKyAgICAgICAgICAgIEJh
c2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgICAgICAgICAgQ09NUElMRV9BU1NF
UlQoSlNHbG9iYWxPYmplY3Q6OkFub255bW91c1Nsb3RDb3VudCA9PSAxLCBKU0dsb2JhbE9iamVj
dF9oYXNfb25seV9hX3NpbmdsZV9zbG90KTsKICAgICAgICAgICAgIHB1dFRoaXNUb0Fub255bW91
c1ZhbHVlKDApOwogICAgICAgICAgICAgaW5pdCh0aGlzVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCmluZGV4IDY3ZmRhMDUwYTYyODhkNzBh
OTQyOThjZTAyYTcyNmQ4MjhlMjMyMWQuLjEzMWJhYTdhZjMyMTI3M2M3ZGJlMDIwMTZjM2Y3ZjQw
M2M1OTM0ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90
QW5PYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2Jq
ZWN0LmgKQEAgLTQxLDcgKzQxLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTTm90QW5P
YmplY3QoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGV4
ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+Z2xvYmFsRGF0YSgpLm5vdEFuT2JqZWN0U3RydWN0dXJl
LmdldCgpKQogICAgICAgICB7Ci0gICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9i
YWxEYXRhKCkpOwogICAgICAgICB9CiAgICAgICAgIAogICAgIHB1YmxpYzoKQEAgLTQ5LDcgKzQ4
LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIEpTTm90QW5PYmplY3QqIGNy
ZWF0ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcg
KGFsbG9jYXRlQ2VsbDxKU05vdEFuT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgSlNOb3RBbk9iamVj
dChleGVjKTsKKyAgICAgICAgICAgIEpTTm90QW5PYmplY3QqIG9iamVjdCA9IG5ldyAoYWxsb2Nh
dGVDZWxsPEpTTm90QW5PYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBKU05vdEFuT2JqZWN0KGV4ZWMp
OworICAgICAgICAgICAgb2JqZWN0LT5maW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkp
OworICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
VmFsdWUgcHJvdG90eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPTk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2Jq
ZWN0LmNwcAppbmRleCAwNWJkZTI4MTlhMDZmOTE0OTQ4MjA5YmU0M2QzMzY4YzkwNGUwZjI4Li4x
NzMxNTJiMjkxOTNkZjIwMjQ1ODEyMzc2NzY4ZmJkODlkZTczNjBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcApAQCAtNTYsNiArNTYsMTIgQEAgbmFt
ZXNwYWNlIEpTQyB7CiBKU09OT2JqZWN0OjpKU09OT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNPYmplY3RXaXRoR2xvYmFs
T2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGds
b2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgSlNPTk9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9i
YWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKICAgICBBU1NFUlQoaW5oZXJp
dHMoJnNfaW5mbykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2Jq
ZWN0LmgKaW5kZXggNzdiZjQzNjk5MTFiNmVjNDBiMzBhY2Q4MzQyNzNlZGMzOTkzNWVhYS4uNDgw
ZTc0YmRiODM0OTM2YmQyOWY3MmU2YWNkZTI0NjE3ZGU2YTVmMiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaApAQCAtNDksNiArNDksNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKICAgICBwcm90
ZWN0ZWQ6CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqKTsKICAg
ICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0
T3duUHJvcGVydHlTbG90IHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgcHJpdmF0
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dFdpdGhHbG9iYWxPYmplY3QuY3BwCmluZGV4IDg4NTUzMGYxMGY3OTkwMWRmZjY0ODQzYTc0MzQz
MDQ4OGY1ZjdhNGYuLmFlNzAzODA4YjBmYjQ1NGY1NWY1NDAzZjA2MTk5YjEzNzNlMGIyYzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2Jh
bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RX
aXRoR2xvYmFsT2JqZWN0LmNwcApAQCAtMzMsMTMgKzMzLDExIEBAIG5hbWVzcGFjZSBKU0Mgewog
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU05v
bkZpbmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7Ci0g
ICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVj
dCk7CiB9CiAKLUpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6SlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCitKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OkpTT2Jq
ZWN0V2l0aEdsb2JhbE9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSog
c3RydWN0dXJlKQogICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUp
CiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0KTsKIH0KIAog
dm9pZCBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKQEAgLTUwLDcgKzQ4
LDcgQEAgdm9pZCBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWwKICAgICBpZiAoIWdsb2JhbE9iamVjdCkKICAg
ICAgICAgY2xlYXJBbm9ueW1vdXNWYWx1ZShHbG9iYWxPYmplY3RTbG90KTsKICAgICBlbHNlCi0g
ICAgICAgIHB1dEFub255bW91c1ZhbHVlKGdsb2JhbERhdGEsIEdsb2JhbE9iamVjdFNsb3QsIGds
b2JhbE9iamVjdCk7CisgICAgICAgIHB1dEFub255bW91c1ZhbHVlKGdsb2JhbE9iamVjdC0+Z2xv
YmFsRGF0YSgpLCBHbG9iYWxPYmplY3RTbG90LCBnbG9iYWxPYmplY3QpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgKaW5kZXggMTMwZTA3ZDY5MDUyZmQyMWZiMmE3MjZm
MTIyODE3YzhhNzZmYmM4OC4uMzc5ODQ4YjY1NDM2NDU0OTFiNzJhNDVhYTFjYTU3YzU0MWIyZTI2
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogCiBwcm90ZWN0
ZWQ6CiAgICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlKik7Ci0gICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYsIEpTR2xv
YmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CisgICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KEpT
R2xvYmFsRGF0YSYsIFN0cnVjdHVyZSopOwogCiAgICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0
KFZQdHJTdGVhbGluZ0hhY2tUeXBlKQogICAgICAgICA6IEpTTm9uRmluYWxPYmplY3QoVlB0clN0
ZWFsaW5nSGFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3RhdGljU2NvcGVPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Rh
dGljU2NvcGVPYmplY3QuaAppbmRleCBiMTE5M2ZkYmRlZmVmYWUyMWZmNWY0Y2M0MzFkMzQyNDlj
ZTZhOGFjLi5mZWRjYjRlN2Y3YmVkN2I4OTEyM2U1MTgxNmVlNjI4ZDQ4YTg4MzAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5o
CkBAIC01MCwxNCArNTAsMTkgQEAgbmFtZXNwYWNlIEpTQ3sKICAgICAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBw
cm90bykgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG8sIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsgfQogCiAgICAgcHJvdGVjdGVkOgorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIEpTVmFsdWUgdmFsdWUsIHVu
c2lnbmVkIGF0dHJpYnV0ZXMpCisgICAgICAgIHsKKyAgICAgICAgICAgIEJhc2U6OmZpbmlzaENy
ZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CisgICAgICAgICAgICBtX3JlZ2lzdGVyU3RvcmUu
c2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgdmFsdWUpOworICAgICAgICAgICAgc3ltYm9s
VGFibGUoKS5hZGQoaWRlbnQuaW1wbCgpLCBTeW1ib2xUYWJsZUVudHJ5KC0xLCBhdHRyaWJ1dGVz
KSk7CisgICAgICAgIH0KICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gSXNFbnZpcm9ubWVudFJlY29yZCB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNW
YXJpYWJsZU9iamVjdDo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBwcml2YXRlOgogICAgICAgICBK
U1N0YXRpY1Njb3BlT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRl
bnQsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCiAgICAgICAgICAgICA6IEpT
VmFyaWFibGVPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5nbG9iYWxEYXRhKCkuc3Rh
dGljU2NvcGVTdHJ1Y3R1cmUuZ2V0KCksICZtX3N5bWJvbFRhYmxlLCByZWludGVycHJldF9jYXN0
PFJlZ2lzdGVyKj4oJm1fcmVnaXN0ZXJTdG9yZSArIDEpKQogICAgICAgICB7Ci0gICAgICAgICAg
ICBtX3JlZ2lzdGVyU3RvcmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgdmFsdWUpOwot
ICAgICAgICAgICAgc3ltYm9sVGFibGUoKS5hZGQoaWRlbnQuaW1wbCgpLCBTeW1ib2xUYWJsZUVu
dHJ5KC0xLCBhdHRyaWJ1dGVzKSk7CisgICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBp
ZGVudCwgdmFsdWUsIGF0dHJpYnV0ZXMpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBT
eW1ib2xUYWJsZSBtX3N5bWJvbFRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oCmluZGV4IGY3MWVkMzA5OTQ5YjMxMjM0YWRhZmM4OGU4
YTY0YTU4Njk1MjkyMDAuLjNmMTE4NGI5ZGQ4ODQ2NjMzMDQxMTg5YWZjNWI3Y2UxMDExZDhiZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0
LmgKQEAgLTc0LDcgKzc0LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAsIG1fc3lt
Ym9sVGFibGUoc3ltYm9sVGFibGUpCiAgICAgICAgICAgICAsIG1fcmVnaXN0ZXJzKHJlaW50ZXJw
cmV0X2Nhc3Q8V3JpdGVCYXJyaWVyPFVua25vd24+Kj4ocmVnaXN0ZXJzKSkKICAgICAgICAgewot
ICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAgICAgIH0KIAogICAg
ICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmgKaW5kZXggM2I0
MzgzMTI0MzhkYmM3M2UwODYwN2FlM2I2ZjBmZjQ5ZTFhZWRiYS4uM2U1ODlmMjcxNDNlMjRkNzA5
ZGIxNjBlZjhlYTE1YjdlNjA2NmU4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmgKQEAgLTUzLDcgKzUzLDYgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgaW5saW5lIEpTV3JhcHBlck9iamVjdDo6SlNXcmFwcGVyT2JqZWN0KEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgICAgIDogSlNOb25GaW5h
bE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiAgICAgewotICAgICAgICBmaW5pc2hDcmVh
dGlvbihnbG9iYWxEYXRhKTsKICAgICB9CiAKICAgICBpbmxpbmUgSlNWYWx1ZSBKU1dyYXBwZXJP
YmplY3Q6OmludGVybmFsVmFsdWUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9NYXRoT2JqZWN0LmNwcAppbmRleCBlNGM0YjViZWM4ZGQxZjliODRlNGVmN2IxNmE5MmY1
OTBiNTc3MjE5Li41ZWM1NmEzNmU3Mzc1NTlhMzBkZmIxMjA4YTBjMTNjZWJhOTg3YjZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcApAQCAtODcsNiAr
ODcsMTIgQEAgY29uc3QgQ2xhc3NJbmZvIE1hdGhPYmplY3Q6OnNfaW5mbyA9IHsgIk1hdGgiLCAm
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpzX2luZm8KIE1hdGhPYmplY3Q6Ok1hdGhPYmplY3Qo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKICAgICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3Qs
IHN0cnVjdHVyZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QpOwor
fQorCit2b2lkIE1hdGhPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihn
bG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKICAgICBBU1NFUlQoaW5o
ZXJpdHMoJnNfaW5mbykpOwogCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24oZXhlYy0+
Z2xvYmFsRGF0YSgpLCBJZGVudGlmaWVyKGV4ZWMsICJFIiksIGpzTnVtYmVyKGV4cCgxLjApKSwg
RG9udERlbGV0ZSB8IERvbnRFbnVtIHwgUmVhZE9ubHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTWF0aE9iamVjdC5oCmluZGV4IDljZmE4ZDAyN2RlM2NmODZkMmQzMjYwNzA3ZmU5
N2FkZTI2YTUxZjQuLjdmYmVkOTBiZmJkMmNiMTE1YWQ4NTI0ZmU0M2VkN2E0ZjYwYWUyOGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKQEAgLTQ3LDYgKzQ3
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKKyAgICAg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopOwogICAg
ICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRP
d25Qcm9wZXJ0eVNsb3QgfCBKU09iamVjdDo6U3RydWN0dXJlRmxhZ3M7CiAgICAgfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5jcHAKaW5kZXggMTM5
NDVjNzUwZTI1YjU2NTVlMTVhZmI2ZjcwNmExNmQxNzQ0NDVjMC4uMjI2NzZkMGZmYThjYzc0NmFk
MTZkNmU0MjhmM2JjOGNkNzBkNzYyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJPYmplY3QuY3BwCkBAIC0zNCw2ICszNCwxMiBAQCBjb25zdCBDbGFzc0luZm8g
TnVtYmVyT2JqZWN0OjpzX2luZm8gPSB7ICJOdW1iZXIiLCAmSlNXcmFwcGVyT2JqZWN0OjpzX2lu
Zm8sIDAsCiBOdW1iZXJPYmplY3Q6Ok51bWJlck9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNXcmFwcGVyT2JqZWN0KGdsb2JhbERh
dGEsIHN0cnVjdHVyZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKK30KKwor
dm9pZCBOdW1iZXJPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICBBU1NFUlQo
aW5oZXJpdHMoJnNfaW5mbykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OdW1iZXJPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlck9iamVjdC5oCmluZGV4IDdhYzgxZDYzOGE1MTFlZjg2NWMyMGY4NTMxMzBiOTBiNjFj
YWFlMGIuLjkwMWY1ZWI0YjBmM2I1NDE3ZmRjOTlkMjI1ZWVhMmY3MTM0NTIxZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oCkBAIC0yOCw2ICsyOCw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIE51bWJlck9iamVjdCA6IHB1YmxpYyBKU1dy
YXBwZXJPYmplY3QgewogICAgIHByb3RlY3RlZDoKICAgICAgICAgTnVtYmVyT2JqZWN0KEpTR2xv
YmFsRGF0YSYsIFN0cnVjdHVyZSopOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xv
YmFsRGF0YSYpOwogCiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpTV3JhcHBlck9iamVj
dCBCYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3Rv
dHlwZS5jcHAKaW5kZXggMDg3Y2QyNjBjZjU1ZDNmMTViMzM2NTI1MzZhNTZiYjc3NDAxNzk5ZC4u
NTA4OWE1ZmZkYmY3NzNkMGZmN2U4Njk5MjEzNWQ1NTVhYTI5NTc2NCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCkBAIC02MywxMSAr
NjMsMTAgQEAgY29uc3QgQ2xhc3NJbmZvIE9iamVjdFByb3RvdHlwZTo6c19pbmZvID0geyAiT2Jq
ZWN0IiwgJkpTTm9uRmluYWxPYmplY3Q6OnNfaW5mbywKIAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5f
Q0VMTChPYmplY3RQcm90b3R5cGUpOwogCi1PYmplY3RQcm90b3R5cGU6Ok9iamVjdFByb3RvdHlw
ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZSogc3R1Y3R1cmUpCitPYmplY3RQcm90b3R5cGU6Ok9iamVjdFByb3RvdHlwZShFeGVjU3RhdGUq
IGV4ZWMsIFN0cnVjdHVyZSogc3R1Y3R1cmUpCiAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGV4ZWMt
Pmdsb2JhbERhdGEoKSwgc3R1Y3R1cmUpCiAgICAgLCBtX2hhc05vUHJvcGVydGllc1dpdGhVSW50
MzJOYW1lcyh0cnVlKQogewotICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwg
Z2xvYmFsT2JqZWN0KTsKIH0KIAogdm9pZCBPYmplY3RQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9u
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlw
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKaW5k
ZXggMGEyYzhmZDQ4ZWU3ZDQ5ZGVhYmY5MWJlZTA1ODYwYjJmZTkzZGEzMS4uNTg0YWMzMGRmY2Ey
NDc2MDg3MDBkYzA2ZTdmYWFkZDQxMWRmZjgwNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKQEAgLTMxLDcgKzMxLDkgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICAgICAgc3RhdGljIE9iamVjdFByb3RvdHlwZSogY3JlYXRlKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxPYmpl
Y3RQcm90b3R5cGU+KCpleGVjLT5oZWFwKCkpKSBPYmplY3RQcm90b3R5cGUoZXhlYywgZ2xvYmFs
T2JqZWN0LCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgT2JqZWN0UHJvdG90eXBlKiBwcm90b3R5
cGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxPYmplY3RQcm90b3R5cGU+KCpleGVjLT5oZWFwKCkpKSBP
YmplY3RQcm90b3R5cGUoZXhlYywgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIHByb3RvdHlwZS0+
ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOworICAgICAg
ICAgICAgcmV0dXJuIHByb3RvdHlwZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25z
dCBDbGFzc0luZm8gc19pbmZvOwpAQCAtNDgsNyArNTAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBKU0dsb2JhbE9iamVjdCop
OwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgT2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0ZSosIEpT
R2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CisgICAgICAgIE9iamVjdFByb3RvdHlwZShFeGVj
U3RhdGUqLCBTdHJ1Y3R1cmUqKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1
Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rv
ci5jcHAKaW5kZXggNDc3OWIyNTZlMDRmNWRjM2MyNWE2YjZjMTQ5NDBjMzYzNjg0ZTRkMy4uYzhh
MTMzYjQyNTY4NzMxNWZmNmU4MjFjMGJhMjdhNTdhMTVhMzNlYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcApAQCAtMTA5LDgg
KzEwOSwxNCBAQCBSZWdFeHBDb25zdHJ1Y3Rvcjo6UmVnRXhwQ29uc3RydWN0b3IoRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogfQogCiBSZWdFeHBNYXRjaGVzQXJy
YXk6OlJlZ0V4cE1hdGNoZXNBcnJheShFeGVjU3RhdGUqIGV4ZWMsIFJlZ0V4cENvbnN0cnVjdG9y
UHJpdmF0ZSogZGF0YSkKLSAgICA6IEpTQXJyYXkoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCktPnJlZ0V4cE1hdGNoZXNBcnJheVN0cnVjdHVyZSgpLCBkYXRh
LT5sYXN0TnVtU3ViUGF0dGVybnMgKyAxLCBDcmVhdGVJbml0aWFsaXplZCkKKyAgICA6IEpTQXJy
YXkoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnJlZ0V4
cE1hdGNoZXNBcnJheVN0cnVjdHVyZSgpKQogeworICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmds
b2JhbERhdGEoKSwgZGF0YSk7Cit9CisKK3ZvaWQgUmVnRXhwTWF0Y2hlc0FycmF5OjpmaW5pc2hD
cmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFJlZ0V4cENvbnN0cnVjdG9yUHJpdmF0
ZSogZGF0YSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBkYXRhLT5s
YXN0TnVtU3ViUGF0dGVybnMgKyAxLCBDcmVhdGVJbml0aWFsaXplZCk7CiAgICAgUmVnRXhwQ29u
c3RydWN0b3JQcml2YXRlKiBkID0gbmV3IFJlZ0V4cENvbnN0cnVjdG9yUHJpdmF0ZTsKICAgICBk
LT5pbnB1dCA9IGRhdGEtPmxhc3RJbnB1dDsKICAgICBkLT5sYXN0SW5wdXQgPSBkYXRhLT5sYXN0
SW5wdXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBN
YXRjaGVzQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNo
ZXNBcnJheS5oCmluZGV4IGVkMjFiYzg5ZTVlMjdkMzYxZTY1MzM5ZTRkNDNkNmExNmVhYTRkZjIu
Ljg3ZDU5YzcxNGViNTRkZjI4MTczZGZlZGViZGVkNTQ2ZjY1MWMzYWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCkBAIC0zNyw2
ICszNyw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAgICAgICAgIHZpcnR1YWwgflJl
Z0V4cE1hdGNoZXNBcnJheSgpOwogCisgICAgcHJvdGVjdGVkOgorICAgICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIFJlZ0V4cENvbnN0cnVjdG9yUHJpdmF0ZSogZGF0YSk7
CisKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBPYmplY3QuY3BwCmluZGV4IDJjMTI2NTU5MmU4Njg1MzQ0OTI4ZWM0ZGUxMWRmZjE5
MDA0MTQyOTcuLjg0MWQ5Mzk0MTE3YWIwOTExNzM4ZDBjNDg1ZTNmZTUwYjVhMWRkMTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApAQCAtNjYs
NiArNjYsMTIgQEAgUmVnRXhwT2JqZWN0OjpSZWdFeHBPYmplY3QoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFIKICAgICA6IEpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKICAgICAsIGQoYWRvcHRQdHIobmV3
IFJlZ0V4cE9iamVjdERhdGEoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHRoaXMsIHJlZ0V4
cCkpKQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgUmVn
RXhwT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQor
eworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBn
bG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKaW5kZXggNzNmMjE1NDky
NjcwMDc5YjU5MzkyYTI4ZTVjNjEzZjNjZGYwYmUxMy4uYmNlNDU1YWY4MTJmOTFiYWJiMjI2MDcw
YWQyMGU5ZTA0NmYyNDExMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwT2JqZWN0LmgKQEAgLTc0LDYgKzc0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcm90
ZWN0ZWQ6CiAgICAgICAgIFJlZ0V4cE9iamVjdChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSos
IFJlZ0V4cCopOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0Kik7
CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRl
c1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU09iamVjdFdp
dGhHbG9iYWxPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNw
cAppbmRleCA5NmQ5NGQ4NGVhYmI1MjYwNTk2OTdmZTMzNmRhYWI3ODIxMzU0YjU0Li5lNjY2ZGVl
MTU3OTJiN2ZiZTg5N2U2MGQyYzUwM2Q2MjNiNzZmZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwCkBAIC0zMSw3
ICszMSw2IEBAIG5hbWVzcGFjZSBKU0MgewogU3RyaWN0RXZhbEFjdGl2YXRpb246OlN0cmljdEV2
YWxBY3RpdmF0aW9uKEV4ZWNTdGF0ZSogZXhlYykKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5nbG9iYWxEYXRhKCkuc3RyaWN0RXZhbEFjdGl2YXRpb25T
dHJ1Y3R1cmUuZ2V0KCkpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgp
KTsKIH0KIAogYm9vbCBTdHJpY3RFdmFsQWN0aXZhdGlvbjo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uaAppbmRleCA3Njk4MWZkYjQyODkxM2M2NzA2
NDFmODBiN2JkYjExYjVmMWFmODE0Li44YWEyMjM0Yzg3YzUxNTliZTU5ZDYyMGMyYWQ4MWE0MGUz
OTY4ZmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RF
dmFsQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlj
dEV2YWxBY3RpdmF0aW9uLmgKQEAgLTM2LDcgKzM2LDkgQEAgcHVibGljOgogCiAgICAgc3RhdGlj
IFN0cmljdEV2YWxBY3RpdmF0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFN0cmljdEV2YWxBY3RpdmF0aW9uPigqZXhl
Yy0+aGVhcCgpKSkgU3RyaWN0RXZhbEFjdGl2YXRpb24oZXhlYyk7CisgICAgICAgIFN0cmljdEV2
YWxBY3RpdmF0aW9uKiBhY3RpdmF0aW9uID0gbmV3IChhbGxvY2F0ZUNlbGw8U3RyaWN0RXZhbEFj
dGl2YXRpb24+KCpleGVjLT5oZWFwKCkpKSBTdHJpY3RFdmFsQWN0aXZhdGlvbihleGVjKTsKKyAg
ICAgICAgYWN0aXZhdGlvbi0+ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKKyAg
ICAgICAgcmV0dXJuIGFjdGl2YXRpb247CiAgICAgfQogCiAgICAgdmlydHVhbCBib29sIGRlbGV0
ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCmluZGV4IDFkMGM3YWJmOThkMDg3
YzBiNTE3YjUyMDI0NmUyYThlZmViMzA3NjYuLmI4ZmFkOWU0OTczNzdhY2E3NDU3MDEzY2RhMzcw
M2I4ZjI3MDU5MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
T2JqZWN0LmNwcApAQCAtMzIsNiArMzIsMTIgQEAgY29uc3QgQ2xhc3NJbmZvIFN0cmluZ09iamVj
dDo6c19pbmZvID0geyAiU3RyaW5nIiwgJkpTV3JhcHBlck9iamVjdDo6c19pbmZvLCAwLAogU3Ry
aW5nT2JqZWN0OjpTdHJpbmdPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgSlNTdHJpbmcqIHN0cmluZykKICAgICA6IEpTV3JhcHBlck9iamVjdChn
bG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwg
c3RyaW5nKTsKK30KKwordm9pZCBTdHJpbmdPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSlNTdHJpbmcqIHN0cmluZykKK3sKKyAgICBCYXNlOjpmaW5pc2hD
cmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAg
IHNldEludGVybmFsVmFsdWUoZ2xvYmFsRGF0YSwgc3RyaW5nKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKaW5kZXggN2QxMzVjMWU0MTIyZmFlN2Zh
ZmYxOGRiMmUxYmEzN2Q3NWNkNDU1Zi4uMGIwYzIwMDY0OGJlYmY4YWU2NGI1Yzc3OWQxYTc1NjNj
MTk2NWJlYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0
LmgKQEAgLTYwLDYgKzYwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KIAogICAgIHBy
b3RlY3RlZDoKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBKU1N0
cmluZyopOwogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwg
SlNXcmFwcGVyT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKICAgICAgICAgU3RyaW5nT2JqZWN0KEpT
R2xvYmFsRGF0YSYsIFN0cnVjdHVyZSosIEpTU3RyaW5nKik7CiAgICAgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUv
Q2hhbmdlTG9nCmluZGV4IDEwYTY4NmRjYzY5ODEwZjZjNGY1ZjdkYTE3N2U1YWYwMGU0YWJkN2Eu
Ljc2OWU0NDA4OWNiZjA4YjdiMTA2NWEwOTE5N2ZjZWFkYzg1ZTdhZmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDExLTA4LTMwICBNYXJrIEhhaG5lbmJlcmcg
IDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgVW56aXAgaW5pdGlhbGl6YXRpb24g
bGlzdHMgYW5kIGNvbnN0cnVjdG9ycyBpbiBKU0NlbGwgaGllcmFyY2h5ICg0LzcpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzE3NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbXBsZXRlZCB0aGUgZm91
cnRoIGxldmVsIG9mIHRoZSByZWZhY3RvcmluZyB0byBhZGQgZmluaXNoQ3JlYXRpb24oKSAKKyAg
ICAgICAgbWV0aG9kcyB0byBhbGwgY2xhc3NlcyB3aXRoaW4gdGhlIEpTQ2VsbCBoaWVyYXJjaHkg
d2l0aCBub24tdHJpdmlhbCAKKyAgICAgICAgY29uc3RydWN0b3IgYm9kaWVzLgorCisgICAgICAg
IFRoaXMgcHJpbWFyaWx5IGNvbnNpc3RzIG9mIHB1c2hpbmcgdGhlIGNhbGxzIHRvIGZpbmlzaENy
ZWF0aW9uKCkgZG93biAKKyAgICAgICAgaW50byB0aGUgY29uc3RydWN0b3JzIG9mIHRoZSBzdWJj
bGFzc2VzIG9mIHRoZSBzZWNvbmQgbGV2ZWwgb2YgdGhlIGhpZXJhcmNoeSAKKyAgICAgICAgYXMg
d2VsbCBhcyBwdWxsaW5nIHRoZSBmaW5pc2hDcmVhdGlvbigpIGNhbGxzIG91dCBpbnRvIHRoZSBj
bGFzcydzIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgY3JlYXRlKCkgbWV0aG9kIGlmIGl0IGhhcyBv
bmUuICBEb2luZyBib3RoIHNpbXVsdGFuZW91c2x5IGFsbG93cyB1cyB0byAKKyAgICAgICAgbWFp
bnRhaW4gdGhlIGludmFyaWFudCB0aGF0IHRoZSBmaW5pc2hDcmVhdGlvbigpIG1ldGhvZCBjaGFp
biBpcyBjYWxsZWQgZXhhY3RseSAKKyAgICAgICAgb25jZSBkdXJpbmcgdGhlIGNyZWF0aW9uIG9m
IGFuIG9iamVjdCwgc2luY2UgY2FsbGluZyBpdCBhbnkgb3RoZXIgbnVtYmVyIG9mIAorICAgICAg
ICB0aW1lcyAoMCwgMiwgb3IgbW9yZSkgd2lsbCBjYXVzZSBhbiBhc3NlcnRpb24gZmFpbHVyZS4K
KworICAgICAgICAqIFVzZXJPYmplY3RJbXAuY3BwOgorICAgICAgICAoVXNlck9iamVjdEltcDo6
VXNlck9iamVjdEltcCk6CisgICAgICAgICogVXNlck9iamVjdEltcC5oOgorICAgICAgICAoVXNl
ck9iamVjdEltcDo6Y3JlYXRlKToKKwogMjAxMS0wOC0yOSAgTWFyayBIYWhuZW5iZXJnICA8bWhh
aG5lbmJlcmdAYXBwbGUuY29tPgogCiAgICAgICAgIFVuemlwIGluaXRpYWxpemF0aW9uIGxpc3Rz
IGFuZCBjb25zdHJ1Y3RvcnMgaW4gSlNDZWxsIGhpZXJhcmNoeSAoMy83KQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwCmluZGV4IDBkNGQ0NWFmNzJmOGMyNzRkMjAzMGZiZTNi
ODZiYWVjOWU0ZmQyMTYuLmFkMzY5M2IzYWQxMzA1ZTBhOWMyNDZlYjZjOTk4MTMzNjFlMGY0YmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKQEAgLTM4LDcgKzM4LDYg
QEAgVXNlck9iamVjdEltcDo6VXNlck9iamVjdEltcChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1UKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFs
RGF0YSwgc3RydWN0dXJlKQogICAgICwgZkpTVXNlck9iamVjdCgoSlNVc2VyT2JqZWN0Kil1c2Vy
T2JqZWN0LT5SZXRhaW4oKSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKIH0K
IAogVXNlck9iamVjdEltcDo6flVzZXJPYmplY3RJbXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2Vy
T2JqZWN0SW1wLmgKaW5kZXggOGVlOGUyYTcwNDdmODY5YTI5NzI2NWNjMWMyNmMzZjM2ZjkwOGE4
MC4uMTU5NjA3MDBjZmFjNWFhMDQ0M2E4OWJhODYzODRjYjdkMTY3N2UxNyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdEdsdWUvVXNlck9iamVjdEltcC5oCkBAIC00MCw3ICs0MCw5IEBAIHB1YmxpYzoKIAogICAg
IHN0YXRpYyBVc2VyT2JqZWN0SW1wKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNVc2VyT2JqZWN0KiB1c2VyT2JqZWN0KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFVzZXJPYmplY3RJbXA+KGdsb2JhbERhdGEu
aGVhcCkpIFVzZXJPYmplY3RJbXAoZ2xvYmFsRGF0YSwgc3RydWN0dXJlLCB1c2VyT2JqZWN0KTsK
KyAgICAgICAgVXNlck9iamVjdEltcCogb2JqZWN0ID0gbmV3IChhbGxvY2F0ZUNlbGw8VXNlck9i
amVjdEltcD4oZ2xvYmFsRGF0YS5oZWFwKSkgVXNlck9iamVjdEltcChnbG9iYWxEYXRhLCBzdHJ1
Y3R1cmUsIHVzZXJPYmplY3QpOworICAgICAgICBvYmplY3QtPmZpbmlzaENyZWF0aW9uKGdsb2Jh
bERhdGEpOworICAgICAgICByZXR1cm4gb2JqZWN0OwogICAgIH0KICAgICAKICAgICB2aXJ0dWFs
IH5Vc2VyT2JqZWN0SW1wKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWY0MWIyNTc5Y2ZmMjcyODg4MjRkNTI4
ZjM0YzE5YmMzMGJlOWZiOC4uMDU3MTVkMjE0ZGY3NmQwYjZmZmZhMDhkZGI0NGZkNjdkOWU2MzA1
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDExLTA4LTMwICBNYXJrIEhhaG5lbmJl
cmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgVW56aXAgaW5pdGlhbGl6YXRp
b24gbGlzdHMgYW5kIGNvbnN0cnVjdG9ycyBpbiBKU0NlbGwgaGllcmFyY2h5ICg0LzcpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzE3NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4K
KworICAgICAgICBDb21wbGV0ZWQgdGhlIGZvdXJ0aCBsZXZlbCBvZiB0aGUgcmVmYWN0b3Jpbmcg
dG8gYWRkIGZpbmlzaENyZWF0aW9uKCkgCisgICAgICAgIG1ldGhvZHMgdG8gYWxsIGNsYXNzZXMg
d2l0aGluIHRoZSBKU0NlbGwgaGllcmFyY2h5IHdpdGggbm9uLXRyaXZpYWwgCisgICAgICAgIGNv
bnN0cnVjdG9yIGJvZGllcy4KKworICAgICAgICBUaGlzIHByaW1hcmlseSBjb25zaXN0cyBvZiBw
dXNoaW5nIHRoZSBjYWxscyB0byBmaW5pc2hDcmVhdGlvbigpIGRvd24gCisgICAgICAgIGludG8g
dGhlIGNvbnN0cnVjdG9ycyBvZiB0aGUgc3ViY2xhc3NlcyBvZiB0aGUgc2Vjb25kIGxldmVsIG9m
IHRoZSBoaWVyYXJjaHkgCisgICAgICAgIGFzIHdlbGwgYXMgcHVsbGluZyB0aGUgZmluaXNoQ3Jl
YXRpb24oKSBjYWxscyBvdXQgaW50byB0aGUgY2xhc3MncyBjb3JyZXNwb25kaW5nCisgICAgICAg
IGNyZWF0ZSgpIG1ldGhvZCBpZiBpdCBoYXMgb25lLiAgRG9pbmcgYm90aCBzaW11bHRhbmVvdXNs
eSBhbGxvd3MgdXMgdG8gCisgICAgICAgIG1haW50YWluIHRoZSBpbnZhcmlhbnQgdGhhdCB0aGUg
ZmluaXNoQ3JlYXRpb24oKSBtZXRob2QgY2hhaW4gaXMgY2FsbGVkIGV4YWN0bHkgCisgICAgICAg
IG9uY2UgZHVyaW5nIHRoZSBjcmVhdGlvbiBvZiBhbiBvYmplY3QsIHNpbmNlIGNhbGxpbmcgaXQg
YW55IG90aGVyIG51bWJlciBvZiAKKyAgICAgICAgdGltZXMgKDAsIDIsIG9yIG1vcmUpIHdpbGwg
Y2F1c2UgYW4gYXNzZXJ0aW9uIGZhaWx1cmUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd1NoZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OkpT
RE9NV2luZG93U2hlbGwpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6Y3Jl
YXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmg6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdy
YXBwZXI6OkpTRE9NV3JhcHBlcik6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVXaW5k
b3dTaGVsbCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06
CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19y
dW50aW1lLmg6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tOgorICAgICAg
ICAoSlNDOjpCaW5kaW5nczo6T2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpPYmpjRmFsbGJhY2tPYmpl
Y3RJbXApOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpm
aW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwOgorICAg
ICAgICAoSlNDOjpSdW50aW1lQXJyYXk6OlJ1bnRpbWVBcnJheSk6CisgICAgICAgIChKU0M6OlJ1
bnRpbWVBcnJheTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2Fy
cmF5Lmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcDoKKyAgICAgICAgKEpT
Qzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OlJ1bnRpbWVPYmplY3QpOgorICAgICAgICAoSlND
OjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJy
aWRnZS9ydW50aW1lX29iamVjdC5oOgorCiAyMDExLTA4LTMwICBBbnR0aSBLb2l2aXN0byAgPGFu
dHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBxdWVyeVNlbGVjdG9yL3F1ZXJ5U2VsZWN0b3JBbGwg
c2hvdWxkIHVzZSBzZWxlY3RvciBjaGVja2VyIGZhc3QgcGF0aCAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKaW5kZXggMDBmYWMwYTdlZTEwZDE3
Mzc2N2RkM2VjODVmNjhlOTc5NjA4MjVmNy4uNWQwZDQzNmNjOTY4NzNhZDlmYTAzOTVmMzU1Y2Vh
ZWUzMjE1Mzg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dTaGVsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dTaGVsbC5jcHAKQEAgLTQzLDExICs0MywxMCBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxM
KEpTRE9NV2luZG93U2hlbGwpOwogCiBjb25zdCBDbGFzc0luZm8gSlNET01XaW5kb3dTaGVsbDo6
c19pbmZvID0geyAiSlNET01XaW5kb3dTaGVsbCIsICZCYXNlOjpzX2luZm8sIDAsIDAgfTsKIAot
SlNET01XaW5kb3dTaGVsbDo6SlNET01XaW5kb3dTaGVsbChQYXNzUmVmUHRyPERPTVdpbmRvdz4g
d2luZG93LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCkKK0pT
RE9NV2luZG93U2hlbGw6OkpTRE9NV2luZG93U2hlbGwoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIERP
TVdyYXBwZXJXb3JsZCogd29ybGQpCiAgICAgOiBCYXNlKCp3b3JsZC0+Z2xvYmFsRGF0YSgpLCBz
dHJ1Y3R1cmUpCiAgICAgLCBtX3dvcmxkKHdvcmxkKQogewotICAgIGZpbmlzaENyZWF0aW9uKCp3
b3JsZC0+Z2xvYmFsRGF0YSgpLCB3aW5kb3cpOwogfQogCiB2b2lkIEpTRE9NV2luZG93U2hlbGw6
OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUGFzc1JlZlB0cjxET01X
aW5kb3c+IHdpbmRvdykKQEAgLTE4MSw2ICsxODAsMTMgQEAgdm9pZCogSlNET01XaW5kb3dTaGVs
bDo6b3BlcmF0b3IgbmV3KHNpemVfdCBzaXplKQogICAgIHJldHVybiBoZWFwLmFsbG9jYXRlKHNp
emUpOwogfQogCitKU0RPTVdpbmRvd1NoZWxsKiBKU0RPTVdpbmRvd1NoZWxsOjpjcmVhdGUoUGFz
c1JlZlB0cjxET01XaW5kb3c+IHdpbmRvdywgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRE9N
V3JhcHBlcldvcmxkKiB3b3JsZCkKK3sKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IG5l
dyBKU0RPTVdpbmRvd1NoZWxsKHN0cnVjdHVyZSwgd29ybGQpOworICAgIHNoZWxsLT5maW5pc2hD
cmVhdGlvbigqd29ybGQtPmdsb2JhbERhdGEoKSwgd2luZG93KTsKKyAgICByZXR1cm4gc2hlbGw7
IAorfQorCiAvLyAtLS0tCiAvLyBDb252ZXJzaW9uIG1ldGhvZHMKIC8vIC0tLS0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAppbmRleCA1NDU5NjYxMmM3
ZGE1MTIyYTM3NzU2NWVhNGEwYmUxN2U3MzAxMzA0Li4zMDI4MzRmZmM2Nzk1NDM0ZGJlNDdmNDNl
ZTkyZTY2YTY2N2I0Y2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd1NoZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dTaGVsbC5oCkBAIC01NSw3ICs1NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAg
ICAgICBET01XaW5kb3cqIGltcGwoKSBjb25zdDsKIAotICAgICAgICB2b2lkKiBvcGVyYXRvciBu
ZXcoc2l6ZV90KTsKKyAgICAgICAgc3RhdGljIEpTRE9NV2luZG93U2hlbGwqIGNyZWF0ZShQYXNz
UmVmUHRyPERPTVdpbmRvdz4sIEpTQzo6U3RydWN0dXJlKiwgRE9NV3JhcHBlcldvcmxkKik7CiAK
ICAgICAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpIAogICAgICAgICB7
CkBAIC02NSw5ICs2NSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIERPTVdyYXBw
ZXJXb3JsZCogd29ybGQoKSB7IHJldHVybiBtX3dvcmxkLmdldCgpOyB9CiAKICAgICBwcm90ZWN0
ZWQ6CisgICAgICAgIEpTRE9NV2luZG93U2hlbGwoSlNDOjpTdHJ1Y3R1cmUqLCBET01XcmFwcGVy
V29ybGQqKTsKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OkpTR2xvYmFsRGF0YSYs
IFBhc3NSZWZQdHI8RE9NV2luZG93Pik7CiAKICAgICBwcml2YXRlOgorICAgICAgICB2b2lkKiBv
cGVyYXRvciBuZXcoc2l6ZV90KTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJy
aWRlc1Zpc2l0Q2hpbGRyZW4gfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNl
OjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihK
U0M6OlNsb3RWaXNpdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdyYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBl
ci5oCmluZGV4IDlhNGFjYTVjNTFiOGNmZWI3NTMwYjJhNmUwZTc5ODQ1MWZkODU4ZTYuLjFiODIx
OTcwM2NmOTM5MjBkMGI4NzdjNzZkNzc2NWU3YWJmMTBiNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCkBAIC01OSw2ICs1OSw3IEBAIHByb3RlY3RlZDoKICAg
ICAgICAgLy8gbmV3IEphdmFTY3JpcHQgb2JqZWN0cyBvbiBkZXRhY2hlZCB3aW5kb3dzIGR1ZSB0
byBET01XaW5kb3c6OmRvY3VtZW50KCkKICAgICAgICAgLy8gbmVlZGluZyB0byByZWFjaCB0aHJv
dWdoIHRoZSBmcmFtZSB0byBnZXQgdG8gdGhlIERvY3VtZW50Ki4gIFNlZSBidWcgMjc2NDAuCiAg
ICAgICAgIC8vIEFTU0VSVChnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7
CisgICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9i
YWxPYmplY3QpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggODcwMjlkMWRiMDEyMzE0MjNiMWU4OGM1YWM1Zjk1
MTQwY2Q5NjE2YS4uZDI1YzcyMmE0OTVjMzVkMWRkYTFmYmE2NTY1MWJlNDc0MmYwMmU0MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAg
LTEwOCw3ICsxMDgsNyBAQCBKU0RPTVdpbmRvd1NoZWxsKiBTY3JpcHRDb250cm9sbGVyOjpjcmVh
dGVXaW5kb3dTaGVsbChET01XcmFwcGVyV29ybGQqIHdvcmxkKQogewogICAgIEFTU0VSVCghbV93
aW5kb3dTaGVsbHMuY29udGFpbnMod29ybGQpKTsKICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9
IEpTRE9NV2luZG93U2hlbGw6OmNyZWF0ZVN0cnVjdHVyZSgqd29ybGQtPmdsb2JhbERhdGEoKSwg
anNOdWxsKCkpOwotICAgIFN0cm9uZzxKU0RPTVdpbmRvd1NoZWxsPiB3aW5kb3dTaGVsbCgqd29y
bGQtPmdsb2JhbERhdGEoKSwgbmV3IEpTRE9NV2luZG93U2hlbGwobV9mcmFtZS0+ZG9tV2luZG93
KCksIHN0cnVjdHVyZSwgd29ybGQpKTsKKyAgICBTdHJvbmc8SlNET01XaW5kb3dTaGVsbD4gd2lu
ZG93U2hlbGwoKndvcmxkLT5nbG9iYWxEYXRhKCksIEpTRE9NV2luZG93U2hlbGw6OmNyZWF0ZSht
X2ZyYW1lLT5kb21XaW5kb3coKSwgc3RydWN0dXJlLCB3b3JsZCkpOwogICAgIFN0cm9uZzxKU0RP
TVdpbmRvd1NoZWxsPiB3aW5kb3dTaGVsbDIod2luZG93U2hlbGwpOwogICAgIG1fd2luZG93U2hl
bGxzLmFkZCh3b3JsZCwgd2luZG93U2hlbGwpOwogICAgIHdvcmxkLT5kaWRDcmVhdGVXaW5kb3dT
aGVsbCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KaW5kZXggZGVhYTVmODgwMDU5ZjkzNDJmMmQ5NThiZDk4ODI4YTFmNmVl
MGJkNS4uMTEyZWVkMGU4Y2E3OTVkZjVlNWQ0MjllMWViYjBmZWJkMThhNzlmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAg
LTEwNTcsNyArMTA1Nyw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgdmlydHVhbCB2b2lkIGRlZmluZUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0KiBnZXR0ZXJG
dW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcyk7XG4iKSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDdXN0b21Qcm90b3R5cGVEZWZpbmVHZXR0ZXIifTsKIAogICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICJcbnByaXZhdGU6XG4iKTsKLSAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiICAgICR7Y2xhc3NOYW1lfVByb3RvdHlwZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OlN0cnVjdHVyZSogc3Ry
dWN0dXJlKSA6IEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIGdsb2Jh
bE9iamVjdCwgc3RydWN0dXJlKSB7IH1cbiIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgJHtjbGFzc05hbWV9UHJvdG90eXBlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1
cmUpIDogSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJl
KSB7IGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCk7IH1cbiIpOwogCiAg
ICAgIyBzdHJ1Y3R1cmUgZmxhZ3MKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHJvdGVjdGVk
OlxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRp
bWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCmluZGV4IGQ4
MDE5MDEwNjc1OWUzMTYwZGY1M2U4YjNiMWRmMDc0NjUwYzc2ZWUuLjE3NTNjMGJjN2VlMDk2MTI4
M2FjY2RiNmY5YzVkN2VhMmZmYzU0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9vYmpjL29iamNfcnVudGltZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29i
amNfcnVudGltZS5oCkBAIC0xMTYsNiArMTE2LDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAg
fQogCitwcm90ZWN0ZWQ6CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCop
OworCiBwcml2YXRlOgogICAgIE9iamNGYWxsYmFja09iamVjdEltcChKU0dsb2JhbE9iamVjdCos
IFN0cnVjdHVyZSosIE9iamNJbnN0YW5jZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSk7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVz
R2V0T3duUHJvcGVydHlTbG90IHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCmluZGV4IDc1MGJjN2VlZmRlMWUzOGEx
MzY3NmNlYWYwOTIyZGU3MWY4NTk5ZGYuLmRmMGU3MWM3ZmVjYjYyZTE2Zjc1ZGE5MTIwMzFmYTk2
YjFhMmE3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVu
dGltZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0K
QEAgLTIwMSw2ICsyMDEsMTIgQEAgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpPYmpjRmFsbGJhY2tP
YmplY3RJbXAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWMKICAgICAsIF9pbnN0
YW5jZShpKQogICAgICwgX2l0ZW0ocHJvcGVydHlOYW1lKQogeworICAgIGZpbmlzaENyZWF0aW9u
KGdsb2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpmaW5pc2hD
cmVhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlz
aENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogICAg
IEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX2FycmF5LmNwcAppbmRleCBiNWY3YTA3OGIyYzAwY2Y4ZGZkYzgwOTBjN2FmODQwMjEyNGQ2
NTdiLi5lMDFhMTVmMzdjYzkxYzQ1OGVkYTE0MWM3NDg2ZDhjMjY5YzZkY2IwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC00MCw2ICs0MCwxMiBAQCBjb25zdCBD
bGFzc0luZm8gUnVudGltZUFycmF5OjpzX2luZm8gPSB7ICJSdW50aW1lQXJyYXkiLCAmSlNBcnJh
eTo6c19pbmZvLCAwLCAwCiBSdW50aW1lQXJyYXk6OlJ1bnRpbWVBcnJheShFeGVjU3RhdGUqIGV4
ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBCaW5kaW5nczo6QXJyYXkqIGFycmF5KQogICAgIDog
SlNBcnJheShleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsKKyAgICBmaW5pc2hDcmVh
dGlvbihleGVjLT5nbG9iYWxEYXRhKCksIGFycmF5KTsKK30KKwordm9pZCBSdW50aW1lQXJyYXk6
OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgQmluZGluZ3M6OkFycmF5
KiBhcnJheSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICBB
U1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHNldFN1YmNsYXNzRGF0YShhcnJheSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAppbmRleCBjYjdiYzYzNTc3NmQ4ZWJj
OTEwMzk1MzIwYWVmZGU0MmJjYjkwNmQ3Li44ZDhmNWFlNmJmNjhhNjMzODY1ZDBkMDJiZjY0M2Y5
NWU0NGE4OTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJh
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTc0LDYg
Kzc0LDggQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgorICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oSlNHbG9iYWxEYXRhJiwgQmluZGluZ3M6OkFycmF5Kik7CisKICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Qg
fCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNBcnJheTo6U3RydWN0dXJlRmxhZ3M7CiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAppbmRleCBm
NGQwYmFkZTVlOGJmYWE1OWQzYjkxNzAwMWEzZTQwNmJmNTk1OTc3Li45NjY0MGYwMDhmYWMxYWM0
NzE3NjRmZjg1ZTNiOGY2NDViOTJiZjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X29iamVjdC5jcHAKQEAgLTQxLDYgKzQxLDEyIEBAIFJ1bnRpbWVPYmplY3Q6OlJ1bnRpbWVPYmpl
Y3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlCiAg
ICAgOiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiAg
ICAgLCBtX2luc3RhbmNlKGluc3RhbmNlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9i
amVjdCk7Cit9CisKK3ZvaWQgUnVudGltZU9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxP
YmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKICAgICBBU1NFUlQoaW5oZXJpdHMo
JnNfaW5mbykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9vYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCmluZGV4
IDg2MjJlMzExZjI2NjA4YzU0NmRlODZlMGNmNGEzZDU1ODUzOTkyYTIuLjk5ZTA2ZTAxYzViYWY3
ODA3N2ZiOWE0YmRkZjkzYTVhNDRkOGMzYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX29iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X29iamVjdC5oCkBAIC03NCw2ICs3NCw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIFJ1
bnRpbWVPYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBQYXNz
UmVmUHRyPEluc3RhbmNlPik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVj
dCopOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRl
c0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU09iamVj
dFdpdGhHbG9iYWxPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGVmZThjNDNkYzUzMDM5MDE5NDZhMmJlYjUzNjU2NjhmZDM3ODg4MjkuLmI0ZmQyNDc3MGFj
M2RlZmY1OWI3YzA2ODA2NThjN2VhZGZmMjNkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBA
QAorMjAxMS0wOC0zMCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgor
CisgICAgICAgIFVuemlwIGluaXRpYWxpemF0aW9uIGxpc3RzIGFuZCBjb25zdHJ1Y3RvcnMgaW4g
SlNDZWxsIGhpZXJhcmNoeSAoNC83KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjcxNzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDb21wbGV0ZWQgdGhlIGZvdXJ0aCBsZXZlbCBvZiB0aGUgcmVmYWN0b3Jp
bmcgdG8gYWRkIGZpbmlzaENyZWF0aW9uKCkgCisgICAgICAgIG1ldGhvZHMgdG8gYWxsIGNsYXNz
ZXMgd2l0aGluIHRoZSBKU0NlbGwgaGllcmFyY2h5IHdpdGggbm9uLXRyaXZpYWwgCisgICAgICAg
IGNvbnN0cnVjdG9yIGJvZGllcy4KKworICAgICAgICBUaGlzIHByaW1hcmlseSBjb25zaXN0cyBv
ZiBwdXNoaW5nIHRoZSBjYWxscyB0byBmaW5pc2hDcmVhdGlvbigpIGRvd24gCisgICAgICAgIGlu
dG8gdGhlIGNvbnN0cnVjdG9ycyBvZiB0aGUgc3ViY2xhc3NlcyBvZiB0aGUgc2Vjb25kIGxldmVs
IG9mIHRoZSBoaWVyYXJjaHkgCisgICAgICAgIGFzIHdlbGwgYXMgcHVsbGluZyB0aGUgZmluaXNo
Q3JlYXRpb24oKSBjYWxscyBvdXQgaW50byB0aGUgY2xhc3MncyBjb3JyZXNwb25kaW5nCisgICAg
ICAgIGNyZWF0ZSgpIG1ldGhvZCBpZiBpdCBoYXMgb25lLiAgRG9pbmcgYm90aCBzaW11bHRhbmVv
dXNseSBhbGxvd3MgdXMgdG8gCisgICAgICAgIG1haW50YWluIHRoZSBpbnZhcmlhbnQgdGhhdCB0
aGUgZmluaXNoQ3JlYXRpb24oKSBtZXRob2QgY2hhaW4gaXMgY2FsbGVkIGV4YWN0bHkgCisgICAg
ICAgIG9uY2UgZHVyaW5nIHRoZSBjcmVhdGlvbiBvZiBhbiBvYmplY3QsIHNpbmNlIGNhbGxpbmcg
aXQgYW55IG90aGVyIG51bWJlciBvZiAKKyAgICAgICAgdGltZXMgKDAsIDIsIG9yIG1vcmUpIHdp
bGwgY2F1c2UgYW4gYXNzZXJ0aW9uIGZhaWx1cmUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkpTTlBPYmpl
Y3Q6OkpTTlBPYmplY3QpOgorICAgICAgICAoV2ViS2l0OjpKU05QT2JqZWN0OjpmaW5pc2hDcmVh
dGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3Qu
aDoKKwogMjAxMS0wOC0zMCAgQWxleGlzIE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3Nh
Lm9yZz4KIAogICAgICAgICBbUXRdW1dLMl0gTWFrZSBtb3VzZSBvdmVyIHdvcmsgYWdhaW4gZm9y
IFFEZXNrdG9wV2ViVmlldy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAppbmRleCAzM2VkYmU5MjJkNmI4NWQ2
ODk3MDg1NWM5NzE1ZGRhODMxMDliNmM0Li4yMjkxMGY1Y2E0NzY3NjY1YWEzOGZjOGVjNGRjZGNl
OTVmYWZkYWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCkBAIC01NSw2ICs1NSwxMiBAQCBKU05QT2Jq
ZWN0OjpKU05QT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE5QUnVudGltZU9i
amVjdE1hcCogb2JqZWN0TQogICAgICwgbV9vYmplY3RNYXAob2JqZWN0TWFwKQogICAgICwgbV9u
cE9iamVjdChucE9iamVjdCkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QpOwor
fQorCit2b2lkIEpTTlBPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9i
YWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsK
IAogICAgIC8vIFdlIHNob3VsZCBuZXZlciBoYXZlIGFuIE5QSlNPYmplY3QgaW5zaWRlIGEgSlNO
UE9iamVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9KU05QT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvSlNOUE9iamVjdC5oCmluZGV4IDJlYTEyMjgyYjFiM2FlZmVmMTY5ZjIzNzE1Nzc2
NGE2NGE1N2FkMjIuLjc1ODIyYzNjNTk2NzNkOGNkYjdhNDdiZWJjODYxZDNiZDhiNjliZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBPYmplY3QuaApAQCAtNTcsNiArNTcsOSBAQCBwdWJsaWM6CiAKICAgICBOUE9iamVjdCog
bnBPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX25wT2JqZWN0OyB9CiAKK3Byb3RlY3RlZDoKKyAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKwogcHJpdmF0ZToK
ICAgICBKU05QT2JqZWN0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBOUFJ1bnRpbWVPYmplY3RNYXAq
LCBOUE9iamVjdCosIEpTQzo6U3RydWN0dXJlKik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105803</attachid>
            <date>2011-08-31 11:34:04 -0700</date>
            <delta_ts>2011-08-31 18:22:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67174-20110831113403.patch</filename>
            <type>text/plain</type>
            <size>93969</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQwOTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcAppbmRleCBmYTlkMjE2ZGQxMTI1MDEyN2Vl
Njg1ZmUxZWM4ZDU5ZmYyNjhjOTllLi45NTA0YWQ4MGQ4NTNmM2M2NTVmODQyOGQ3ZDE2YTY1ZmVj
YjgzMDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuY3BwCkBAIC00Myw2ICs0MywxMiBAQCBKU0NhbGxiYWNrQ29uc3RydWN0b3I6
OkpTQ2FsbGJhY2tDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
YwogICAgICwgbV9jbGFzcyhqc0NsYXNzKQogICAgICwgbV9jYWxsYmFjayhjYWxsYmFjaykKIHsK
KyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QsIGpzQ2xhc3MpOworfQorCit2b2lkIEpT
Q2FsbGJhY2tDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDbGFzc1JlZiBqc0NsYXNzKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChp
bmhlcml0cygmc19pbmZvKSk7CiAgICAgaWYgKG1fY2xhc3MpCiAgICAgICAgIEpTQ2xhc3NSZXRh
aW4oanNDbGFzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuaAppbmRleCA0MGFhYmNmMTkyMTMxZDQxNDdiMDc4Mzg5OTkwOTlmOGExZTUx
ZWRhLi45MTE5MWRiNWY5Njc5OWUyMGNhNDZlOTEwMTRlNWVhNGFjNjY4Y2Q3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmgKQEAgLTUy
LDYgKzUyLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgSlNDYWxsYmFja0NvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgSlNDbGFzc1JlZiwgSlNPYmplY3RDYWxs
QXNDb25zdHJ1Y3RvckNhbGxiYWNrKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
T2JqZWN0KiwgSlNDbGFzc1JlZik7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdz
OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuaAppbmRleCBlZTk5MGEwMmZjZmI5OTRjMWQ0ODFlMjc4NTdlY2MzODA4MDBjNmI1Li45ZWU2
NzkzMDFlNWEyMzhlYTE3MDkzYzljOGQ1ZTJhNWUyMGM3NmM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTI0LDE2ICsxMjQsMjEgQEAgcHJv
dGVjdGVkOgogICAgIC8vIGZ1bmN0aW9uYWxpdHkgaGVyZS4KICAgICB2b2lkKiBvcGVyYXRvciBu
ZXcoc2l6ZV90LCB2b2lkKiBwdHIpIHsgcmV0dXJuIHB0cjsgfQogCisgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oSlNHbG9iYWxEYXRhJik7CisKIHB1YmxpYzoKICAgICB0eXBlZGVmIFBhcmVudCBCYXNl
OwogCiAgICAgc3RhdGljIEpTQ2FsbGJhY2tPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0Ns
YXNzUmVmIGNsYXNzUmVmLCB2b2lkKiBkYXRhKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAo
YWxsb2NhdGVDZWxsPEpTQ2FsbGJhY2tPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBKU0NhbGxiYWNr
T2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBjbGFzc1JlZiwgZGF0YSk7Cisg
ICAgICAgIEpTQ2FsbGJhY2tPYmplY3QqIGNhbGxiYWNrT2JqZWN0ID0gbmV3IChhbGxvY2F0ZUNl
bGw8SlNDYWxsYmFja09iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIEpTQ2FsbGJhY2tPYmplY3QoZXhl
YywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGNsYXNzUmVmLCBkYXRhKTsKKyAgICAgICAgcmV0
dXJuIGNhbGxiYWNrT2JqZWN0OwogICAgIH0KICAgICBzdGF0aWMgSlNDYWxsYmFja09iamVjdCog
Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDbGFzc1JlZiBjbGFzc1JlZiwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNl
bGw8SlNDYWxsYmFja09iamVjdD4oZ2xvYmFsRGF0YS5oZWFwKSkgSlNDYWxsYmFja09iamVjdChn
bG9iYWxEYXRhLCBjbGFzc1JlZiwgc3RydWN0dXJlKTsKKyAgICAgICAgSlNDYWxsYmFja09iamVj
dCogY2FsbGJhY2tPYmplY3QgPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0NhbGxiYWNrT2JqZWN0Pihn
bG9iYWxEYXRhLmhlYXApKSBKU0NhbGxiYWNrT2JqZWN0KGdsb2JhbERhdGEsIGNsYXNzUmVmLCBz
dHJ1Y3R1cmUpOworICAgICAgICByZXR1cm4gY2FsbGJhY2tPYmplY3Q7CiAgICAgfQogCiAgICAg
dm9pZCBzZXRQcml2YXRlKHZvaWQqIGRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAppbmRleCA2OTEwZTU2ZmY4Y2E0
OTk0YjYzMzZhODdhZDg2ZWQwZTE2OGM3Y2E2Li4yMjNkOWI2NWEzNDk3YTI0ZWRiMjA5NWRmOTQ3
N2FhNGNhYTBmZDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tPYmplY3RGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaApAQCAtNTQsOCArNTQsNyBAQCBKU0NhbGxiYWNrT2Jq
ZWN0PFBhcmVudD46OkpTQ2FsbGJhY2tPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9i
amVjdCogZ2xvYgogICAgIDogUGFyZW50KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogICAgICwg
bV9jYWxsYmFja09iamVjdERhdGEoYWRvcHRQdHIobmV3IEpTQ2FsbGJhY2tPYmplY3REYXRhKGRh
dGEsIGpzQ2xhc3MpKSkKIHsKLSAgICBBU1NFUlQoUGFyZW50Ojppbmhlcml0cygmc19pbmZvKSk7
Ci0gICAgaW5pdChleGVjKTsKKyAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3Qp
OwogfQogCiAvLyBHbG9iYWwgb2JqZWN0IGNvbnN0cnVjdG9yLgpAQCAtNjUsNiArNjQsMjIgQEAg
SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpKU0NhbGxiYWNrT2JqZWN0KEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNDbGFzc1JlZgogICAgIDogUGFyZW50KGdsb2JhbERhdGEsIHN0cnVjdHVy
ZSkKICAgICAsIG1fY2FsbGJhY2tPYmplY3REYXRhKGFkb3B0UHRyKG5ldyBKU0NhbGxiYWNrT2Jq
ZWN0RGF0YSgwLCBqc0NsYXNzKSkpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7
Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Cit2b2lkIEpTQ2FsbGJhY2tPYmplY3Q8UGFy
ZW50Pjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xv
YmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOworICAgIEFTU0VSVChQYXJlbnQ6OmluaGVyaXRzKCZz
X2luZm8pKTsKKyAgICBpbml0KGV4ZWMpOworfQorCisvLyBUaGlzIGlzIGp1c3QgZm9yIEdsb2Jh
bCBvYmplY3QsIHNvIHdlIGNhbiBhc3N1bWUgdGhhdCBCYXNlOjpmaW5pc2hDcmVhdGlvbiBpcyBK
U0dsb2JhbE9iamVjdDo6Y29uc3RydWN0b3JCb2R5LgordGVtcGxhdGUgPGNsYXNzIFBhcmVudD4K
K3ZvaWQgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEpCit7CisgICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOwogICAgIEFT
U0VSVChQYXJlbnQ6OmluaGVyaXRzKCZzX2luZm8pKTsKICAgICBBU1NFUlQoUGFyZW50Ojppc0ds
b2JhbE9iamVjdCgpKTsKICAgICBpbml0KHN0YXRpY19jYXN0PEpTR2xvYmFsT2JqZWN0Kj4odGhp
cyktPmdsb2JhbEV4ZWMoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAyODVjOTExNDgy
MjU1NTY3OTA5NGNiY2YxMzMzODdlMjMyNDcyZjMwLi5iZDkzNmYxYzViZDlkODYyYjdmMGY0ZjBh
MDAxNmQ1MTExNGQ1ZjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNDcg
QEAKKzIwMTEtMDgtMzAgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4K
KworICAgICAgICBVbnppcCBpbml0aWFsaXphdGlvbiBsaXN0cyBhbmQgY29uc3RydWN0b3JzIGlu
IEpTQ2VsbCBoaWVyYXJjaHkgKDQvNykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY3MTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQ29tcGxldGVkIHRoZSBmb3VydGggbGV2ZWwgb2YgdGhlIHJlZmFjdG9y
aW5nIHRvIGFkZCBmaW5pc2hDcmVhdGlvbigpIAorICAgICAgICBtZXRob2RzIHRvIGFsbCBjbGFz
c2VzIHdpdGhpbiB0aGUgSlNDZWxsIGhpZXJhcmNoeSB3aXRoIG5vbi10cml2aWFsIAorICAgICAg
ICBjb25zdHJ1Y3RvciBib2RpZXMuCisKKyAgICAgICAgVGhpcyBwcmltYXJpbHkgY29uc2lzdHMg
b2YgcHVzaGluZyB0aGUgY2FsbHMgdG8gZmluaXNoQ3JlYXRpb24oKSBkb3duIAorICAgICAgICBp
bnRvIHRoZSBjb25zdHJ1Y3RvcnMgb2YgdGhlIHN1YmNsYXNzZXMgb2YgdGhlIHNlY29uZCBsZXZl
bCBvZiB0aGUgaGllcmFyY2h5IAorICAgICAgICBhcyB3ZWxsIGFzIHB1bGxpbmcgdGhlIGZpbmlz
aENyZWF0aW9uKCkgY2FsbHMgb3V0IGludG8gdGhlIGNsYXNzJ3MgY29ycmVzcG9uZGluZworICAg
ICAgICBjcmVhdGUoKSBtZXRob2QgaWYgaXQgaGFzIG9uZS4gIERvaW5nIGJvdGggc2ltdWx0YW5l
b3VzbHkgYWxsb3dzIHVzIHRvIAorICAgICAgICBtYWludGFpbiB0aGUgaW52YXJpYW50IHRoYXQg
dGhlIGZpbmlzaENyZWF0aW9uKCkgbWV0aG9kIGNoYWluIGlzIGNhbGxlZCBleGFjdGx5IAorICAg
ICAgICBvbmNlIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgYW4gb2JqZWN0LCBzaW5jZSBjYWxsaW5n
IGl0IGFueSBvdGhlciBudW1iZXIgb2YgCisgICAgICAgIHRpbWVzICgwLCAyLCBvciBtb3JlKSB3
aWxsIGNhdXNlIGFuIGFzc2VydGlvbiBmYWlsdXJlLgorCisgICAgICAgICogQVBJL0pTQ2FsbGJh
Y2tDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6
SlNDYWxsYmFja0NvbnN0cnVjdG9yKToKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja0NvbnN0cnVj
dG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rv
ci5oOgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpT
Q2FsbGJhY2tPYmplY3Q6OmNyZWF0ZSk6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3RG
dW5jdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6OjpKU0NhbGxiYWNrT2JqZWN0KToKKyAgICAgICAg
KEpTQzo6OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuSlNWQUxV
RTY0b25seS5leHA6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWY6Cisg
ICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6
RGVidWdnZXJBY3RpdmF0aW9uOjpEZWJ1Z2dlckFjdGl2YXRpb24pOgorICAgICAgICAoSlNDOjpE
ZWJ1Z2dlckFjdGl2YXRpb246OmNyZWF0ZSk6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJB
Y3RpdmF0aW9uLmg6CisgICAgICAgICogcnVudGltZS9Bcmd1bWVudHMuaDoKKyAgICAgICAgKEpT
Qzo6QXJndW1lbnRzOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpBcmd1bWVudHM6OmNyZWF0ZU5v
UGFyYW1ldGVycyk6CisgICAgICAgIChKU0M6OkFyZ3VtZW50czo6QXJndW1lbnRzKToKKyAgICAg
ICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6QXJyYXlQcm90
b3R5cGU6OkFycmF5UHJvdG90eXBlKToKKyAgICAgICAgKEpTQzo6QXJyYXlQcm90b3R5cGU6OmZp
bmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmg6CisgICAg
ICAgICogcnVudGltZS9Cb29sZWFuT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6Qm9vbGVhbk9i
amVjdDo6Qm9vbGVhbk9iamVjdCk6CisgICAgICAgIChKU0M6OkJvb2xlYW5PYmplY3Q6OmZpbmlz
aENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5PYmplY3QuaDoKKyAgICAgICAg
KiBydW50aW1lL0RhdGVJbnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZTo6
RGF0ZUluc3RhbmNlKToKKyAgICAgICAgKEpTQzo6RGF0ZUluc3RhbmNlOjpmaW5pc2hDcmVhdGlv
bik6CisgICAgICAgICogcnVudGltZS9EYXRlSW5zdGFuY2UuaDoKKyAgICAgICAgKiBydW50aW1l
L0Vycm9ySW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpFcnJvcklu
c3RhbmNlKToKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6Y3JlYXRlKToKKyAgICAgICAg
KiBydW50aW1lL0Vycm9ySW5zdGFuY2UuaDoKKyAgICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90
eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6RXJyb3JQcm90b3R5cGU6OkVycm9yUHJvdG90eXBlKToK
KyAgICAgICAgKEpTQzo6RXJyb3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAg
KiBydW50aW1lL0Vycm9yUHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9FeGNlcHRpb25I
ZWxwZXJzLmNwcDoKKyAgICAgICAgKEpTQzo6SW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvcjo6SW50
ZXJydXB0ZWRFeGVjdXRpb25FcnJvcik6CisgICAgICAgIChKU0M6OkludGVycnVwdGVkRXhlY3V0
aW9uRXJyb3I6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlRlcm1pbmF0ZWRFeGVjdXRpb25FcnJv
cjo6VGVybWluYXRlZEV4ZWN1dGlvbkVycm9yKToKKyAgICAgICAgKEpTQzo6VGVybWluYXRlZEV4
ZWN1dGlvbkVycm9yOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5jcHA6
CisgICAgICAgIChKU0M6OkV2YWxFeGVjdXRhYmxlOjpFdmFsRXhlY3V0YWJsZSk6CisgICAgICAg
IChKU0M6OlByb2dyYW1FeGVjdXRhYmxlOjpQcm9ncmFtRXhlY3V0YWJsZSk6CisgICAgICAgIChK
U0M6OkZ1bmN0aW9uRXhlY3V0YWJsZTo6RnVuY3Rpb25FeGVjdXRhYmxlKToKKyAgICAgICAgKiBy
dW50aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKEpTQzo6TmF0aXZlRXhlY3V0YWJsZTo6Y3Jl
YXRlKToKKyAgICAgICAgKEpTQzo6TmF0aXZlRXhlY3V0YWJsZTo6TmF0aXZlRXhlY3V0YWJsZSk6
CisgICAgICAgIChKU0M6OkV2YWxFeGVjdXRhYmxlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpQ
cm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRh
YmxlOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHA6Cisg
ICAgICAgIChKU0M6OkludGVybmFsRnVuY3Rpb246OkludGVybmFsRnVuY3Rpb24pOgorICAgICAg
ICAoSlNDOjpJbnRlcm5hbEZ1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVu
dGltZS9JbnRlcm5hbEZ1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24u
Y3BwOgorICAgICAgICAoSlNDOjpKU0FjdGl2YXRpb246OkpTQWN0aXZhdGlvbik6CisgICAgICAg
IChKU0M6OkpTQWN0aXZhdGlvbjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUv
SlNBY3RpdmF0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0FycmF5LmNwcDoKKyAgICAgICAg
KEpTQzo6SlNBcnJheTo6SlNBcnJheSk6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OmNyZWF0ZSk6
CisgICAgICAgICogcnVudGltZS9KU0FycmF5Lmg6CisgICAgICAgICogcnVudGltZS9KU0J5dGVB
cnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQnl0ZUFycmF5OjpKU0J5dGVBcnJheSk6CisgICAg
ICAgIChKU0M6OkpTQnl0ZUFycmF5OjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5j
dGlvbi5jcHA6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OkpTRnVuY3Rpb24pOgorICAgICAg
ICAoSlNDOjpKU0Z1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTRnVu
Y3Rpb246OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmg6CisgICAgICAg
ICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVj
dDo6SlNHbG9iYWxPYmplY3QpOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6ZmluaXNo
Q3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5oOgorICAgICAgICAo
SlNDOjpKU05vdEFuT2JqZWN0OjpKU05vdEFuT2JqZWN0KToKKyAgICAgICAgKEpTQzo6SlNOb3RB
bk9iamVjdDo6Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL0pTT05PYmplY3QuY3BwOgorICAg
ICAgICAoSlNDOjpKU09OT2JqZWN0OjpKU09OT2JqZWN0KToKKyAgICAgICAgKEpTQzo6SlNPTk9i
amVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5oOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAg
KEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Qp
OgorICAgICAgICAoSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9u
KToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU1N0YXRp
Y1Njb3BlT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTU3RhdGljU2Nv
cGVPYmplY3Q6OkpTU3RhdGljU2NvcGVPYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNWYXJp
YWJsZU9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU1ZhcmlhYmxlT2JqZWN0OjpKU1ZhcmlhYmxl
T2JqZWN0KToKKyAgICAgICAgKiBydW50aW1lL0pTV3JhcHBlck9iamVjdC5oOgorICAgICAgICAo
SlNDOjpKU1dyYXBwZXJPYmplY3Q6OkpTV3JhcHBlck9iamVjdCk6CisgICAgICAgICogcnVudGlt
ZS9NYXRoT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6TWF0aE9iamVjdDo6TWF0aE9iamVjdCk6
CisgICAgICAgIChKU0M6Ok1hdGhPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBy
dW50aW1lL01hdGhPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL051bWJlck9iamVjdC5jcHA6
CisgICAgICAgIChKU0M6Ok51bWJlck9iamVjdDo6TnVtYmVyT2JqZWN0KToKKyAgICAgICAgKEpT
Qzo6TnVtYmVyT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9OdW1i
ZXJPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHA6CisgICAg
ICAgIChKU0M6Ok9iamVjdFByb3RvdHlwZTo6T2JqZWN0UHJvdG90eXBlKToKKyAgICAgICAgKiBy
dW50aW1lL09iamVjdFByb3RvdHlwZS5oOgorICAgICAgICAoSlNDOjpPYmplY3RQcm90b3R5cGU6
OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OlJlZ0V4cE1hdGNoZXNBcnJheTo6UmVnRXhwTWF0Y2hlc0FycmF5KToKKyAgICAg
ICAgKEpTQzo6UmVnRXhwTWF0Y2hlc0FycmF5OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICog
cnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6UmVnRXhwT2JqZWN0KToKKyAg
ICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVu
dGltZS9SZWdFeHBPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0
aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaWN0RXZhbEFjdGl2YXRpb246OlN0cmljdEV2YWxB
Y3RpdmF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmg6Cisg
ICAgICAgIChKU0M6OlN0cmljdEV2YWxBY3RpdmF0aW9uOjpjcmVhdGUpOgorICAgICAgICAqIHJ1
bnRpbWUvU3RyaW5nT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5nT2JqZWN0OjpTdHJp
bmdPYmplY3QpOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToK
KyAgICAgICAgKiBydW50aW1lL1N0cmluZ09iamVjdC5oOgorCiAyMDExLTA4LTMwICBBZGVtYXIg
ZGUgU291emEgUmVpcyBKci4gIDxhZGVtYXIucmVpc0BvcGVuYm9zc2Eub3JnPgogCiAgICAgICAg
IFtRdF0gRG8gbm90IHVuY29uZGl0aW9uYWxseSB1c2UgcGtnLWNvbmZpZyBpbiAucHJvIGZpbGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuSlNWQUxV
RTY0b25seS5leHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuSlNWQUxV
RTY0b25seS5leHAKaW5kZXggZWFhOWY1MTM5ZjIyZTAzYzgwZWQ3Y2Y0NzkyZTQ4ZGFmOTE2YTYx
MS4uMTM5NTk3ZjljYjA3YzVkNDhiZWQxODk4NGVjNDc0N2Y0YjRmMzQzOCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLkpTVkFMVUU2NG9ubHkuZXhwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5KU1ZBTFVFNjRvbmx5LmV4
cApAQCAtMSArMSwyIEBACi1fX1pOM0pTQzEwSlNGdW5jdGlvbkMxRVBOU185RXhlY1N0YXRlRVBO
U18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRWlSS05TXzEwSWRlbnRpZmllckVQRlB2
UzJfRQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5leHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCmluZGV4IDlm
NGEzYmRjYTIxM2IzYjViNTJmNThmZjQ2YjFiMzcwYjBkODVkZTcuLmE4ZjUzYjljMzM0NDBlZTAy
OTMxOGI4MTY2NmQ3MTEzZDMwZDZkNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5leHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmV4cApAQCAtMTExLDYgKzExMSw3IEBAIF9fWk4zSlNDMTBJZGVudGlmaWVyNGZyb21F
UE5TXzlFeGVjU3RhdGVFagogX19aTjNKU0MxMElkZW50aWZpZXI1ZXF1YWxFUEtOM1dURjEwU3Ry
aW5nSW1wbEVQS2MKIF9fWk4zSlNDMTBJZGVudGlmaWVyOHRvVUludDMyRVJLTlNfN1VTdHJpbmdF
UmIKIF9fWk4zSlNDMTBKU0Z1bmN0aW9uNG5hbWVFUE5TXzlFeGVjU3RhdGVFCitfX1pOM0pTQzEw
SlNGdW5jdGlvbjZjcmVhdGVFUE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RFUE5T
XzlTdHJ1Y3R1cmVFaVJLTlNfMTBJZGVudGlmaWVyRVBGUHZTMl9FCiBfX1pOM0pTQzEwSlNGdW5j
dGlvbjZzX2luZm9FCiBfX1pOM0pTQzEwdGhyb3dFcnJvckVQTlNfOUV4ZWNTdGF0ZUVOU183SlNW
YWx1ZUUKIF9fWk4zSlNDMTB0aHJvd0Vycm9yRVBOU185RXhlY1N0YXRlRVBOU184SlNPYmplY3RF
CkBAIC0xOTYsNyArMTk3LDcgQEAgX19aTjNKU0MxN0J5dGVjb2RlR2VuZXJhdG9yMjFzZXREdW1w
c0dlbmVyYXRlZENvZGVFYgogX19aTjNKU0MxN1Byb3BlcnR5TmFtZUFycmF5M2FkZEVQTjNXVEYx
MFN0cmluZ0ltcGxFCiBfX1pOM0pTQzE3Y29uc3RydWN0RnVuY3Rpb25FUE5TXzlFeGVjU3RhdGVF
UE5TXzE0SlNHbG9iYWxPYmplY3RFUktOU183QXJnTGlzdEVSS05TXzEwSWRlbnRpZmllckVSS05T
XzdVU3RyaW5nRWkKIF9fWk4zSlNDMTdjcmVhdGVTeW50YXhFcnJvckVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzdVU3RyaW5nRQotX19aTjNKU0MxOERlYnVnZ2VyQWN0aXZhdGlvbkMxRVJOU18xMkpTR2xv
YmFsRGF0YUVQTlNfOEpTT2JqZWN0RQorX19aTjNKU0MxOERlYnVnZ2VyQWN0aXZhdGlvbjZjcmVh
dGVFUk5TXzEySlNHbG9iYWxEYXRhRVBOU184SlNPYmplY3RFCiBfX1pOM0pTQzE4UHJvcGVydHlE
ZXNjcmlwdG9yMTFzZXRXcml0YWJsZUViCiBfX1pOM0pTQzE4UHJvcGVydHlEZXNjcmlwdG9yMTJz
ZXRVbmRlZmluZWRFdgogX19aTjNKU0MxOFByb3BlcnR5RGVzY3JpcHRvcjEzc2V0RGVzY3JpcHRv
ckVOU183SlNWYWx1ZUVqCkBAIC0yMTksOCArMjIwLDkgQEAgX19aTjNKU0MyM0Fic3RyYWN0U2Ft
cGxpbmdDb3VudGVyNGR1bXBFdgogX19aTjNKU0MyM29iamVjdFByb3RvRnVuY1RvU3RyaW5nRVBO
U185RXhlY1N0YXRlRQogX19aTjNKU0MyM3NldFVwU3RhdGljRnVuY3Rpb25TbG90RVBOU185RXhl
Y1N0YXRlRVBLTlNfOUhhc2hFbnRyeUVQTlNfOEpTT2JqZWN0RVJLTlNfMTBJZGVudGlmaWVyRVJO
U18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDMjREeW5hbWljR2xvYmFsT2JqZWN0U2NvcGVDMUVS
TlNfMTJKU0dsb2JhbERhdGFFUE5TXzE0SlNHbG9iYWxPYmplY3RFCitfX1pOM0pTQzI0SlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0MTRmaW5pc2hDcmVhdGlvbkVSTlNfMTJKU0dsb2JhbERhdGFFUE5T
XzE0SlNHbG9iYWxPYmplY3RFCitfX1pOM0pTQzI0SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0QzJF
Uk5TXzEySlNHbG9iYWxEYXRhRVBOU185U3RydWN0dXJlRQogX19aTjNKU0MyNEpTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdEMyRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRQotX19a
TjNKU0MyNEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEMyRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNf
MTRKU0dsb2JhbE9iamVjdEVQTlNfOVN0cnVjdHVyZUUKIF9fWk4zSlNDMjRjcmVhdGVTdGFja092
ZXJmbG93RXJyb3JFUE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pTQzI1ZXZhbHVhdGVJbkdsb2JhbENh
bGxGcmFtZUVSS05TXzdVU3RyaW5nRVJOU183SlNWYWx1ZUVQTlNfMTRKU0dsb2JhbE9iamVjdEUK
IF9fWk4zSlNDMzVjcmVhdGVJbnRlcnJ1cHRlZEV4ZWN1dGlvbkV4Y2VwdGlvbkVQTlNfMTJKU0ds
b2JhbERhdGFFCkBAIC0yNjksMTIgKzI3MSwxNCBAQCBfX1pOM0pTQzZKU0xvY2tDMUVQTlNfOUV4
ZWNTdGF0ZUUKIF9fWk4zSlNDNlJlZ0V4cEQxRXYKIF9fWk4zSlNDNlJlZ0V4cDZjcmVhdGVFUk5T
XzEySlNHbG9iYWxEYXRhRVJLTlNfN1VTdHJpbmdFTlNfMTFSZWdFeHBGbGFnc0UKIF9fWk4zSlND
N0pTQXJyYXkxM3Zpc2l0Q2hpbGRyZW5FUk5TXzExU2xvdFZpc2l0b3JFCitfX1pOM0pTQzdKU0Fy
cmF5MTRmaW5pc2hDcmVhdGlvbkVSTlNfMTJKU0dsb2JhbERhdGFFCiBfX1pOM0pTQzdKU0FycmF5
MTVzZXRTdWJjbGFzc0RhdGFFUHYKIF9fWk4zSlNDN0pTQXJyYXkxOGdldE93blByb3BlcnR5U2xv
dEVQTlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQorX19aTjNKU0M3SlNBcnJheTZj
cmVhdGVFUk5TXzEySlNHbG9iYWxEYXRhRVBOU185U3RydWN0dXJlRVJLTlNfN0FyZ0xpc3RFCitf
X1pOM0pTQzdKU0FycmF5NmNyZWF0ZUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVF
CiBfX1pOM0pTQzdKU0FycmF5NnNfaW5mb0UKIF9fWk4zSlNDN0pTQXJyYXk5c2V0TGVuZ3RoRWoK
IF9fWk4zSlNDN0pTQXJyYXlDMUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFCi1f
X1pOM0pTQzdKU0FycmF5QzFFUk5TXzEySlNHbG9iYWxEYXRhRVBOU185U3RydWN0dXJlRVJLTlNf
N0FyZ0xpc3RFCiBfX1pOM0pTQzdKU0FycmF5QzJFUk5TXzEySlNHbG9iYWxEYXRhRVBOU185U3Ry
dWN0dXJlRQogX19aTjNKU0M3SlNBcnJheUQyRXYKIF9fWk4zSlNDN0pTVmFsdWUxM2lzVmFsaWRD
YWxsZWVFdgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmRlZgppbmRleCBkMWNmZjc4NjM3N2EwZDQxMzYyY2QyZWZiN2I4NWVjMzkyZTA1YmM0Li44
ZTRkMmNhNjRiYWMzODRjZWI4ZGIxMTMzZmFhMGZiMzYwMzE2NTcwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmRlZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtOSwxMSArOSw5
IEBAIEVYUE9SVFMKICAgICA/PzBEeW5hbWljR2xvYmFsT2JqZWN0U2NvcGVASlNDQEBRQUVAQUFW
SlNHbG9iYWxEYXRhQDFAUEFWSlNHbG9iYWxPYmplY3RAMUBAWiAgCiAgICAgPz8wSW50ZXJuYWxG
dW5jdGlvbkBKU0NAQElBRUBQQVZKU0dsb2JhbERhdGFAMUBQQVZKU0dsb2JhbE9iamVjdEAxQFBB
VlN0cnVjdHVyZUAxQEFCVklkZW50aWZpZXJAMUBAWgogICAgID8/MEpTQXJyYXlASlNDQEBJQUVA
QUFWSlNHbG9iYWxEYXRhQDFAUEFWU3RydWN0dXJlQDFAQFoKLSAgICA/PzBKU0FycmF5QEpTQ0BA
SUFFQEFBVkpTR2xvYmFsRGF0YUAxQFBBVlN0cnVjdHVyZUAxQEFCVkFyZ0xpc3RAMUBAWgotICAg
ID8/MEpTRnVuY3Rpb25ASlNDQEBBQUVAUEFWRXhlY1N0YXRlQDFAUEFWSlNHbG9iYWxPYmplY3RA
MUBQQVZTdHJ1Y3R1cmVAMUBIQUJWSWRlbnRpZmllckAxQFA2SV9KMEBaQFoKICAgICA/PzBKU0xv
Y2tASlNDQEBRQUVAUEFWRXhlY1N0YXRlQDFAQFoKLSAgICA/PzBKU09iamVjdFdpdGhHbG9iYWxP
YmplY3RASlNDQEBJQUVAQUFWSlNHbG9iYWxEYXRhQDFAUEFWSlNHbG9iYWxPYmplY3RAMUBQQVZT
dHJ1Y3R1cmVAMUBAWgogICAgID8/MEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEBKU0NAQElBRUBQ
QVZKU0dsb2JhbE9iamVjdEAxQFBBVlN0cnVjdHVyZUAxQEBaCisgICAgPz8wSlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0QEpTQ0BASUFFQEFBVkpTR2xvYmFsRGF0YUAxQFBBVlN0cnVjdHVyZUAxQEBa
CiAgICAgPz8wTUQ1QFdURkBAUUFFQFhaCiAgICAgPz8wTXV0ZXhAV1RGQEBRQUVAWFoKICAgICA/
PzBSZWZDb3VudGVkTGVha0NvdW50ZXJAV1RGQEBRQUVAUEJEQFoKQEAgLTk1LDcgKzkzLDEwIEBA
IEVYUE9SVFMKICAgICA/Y29udmVydFVURjE2VG9VVEY4QFVuaWNvZGVAV1RGQEBZQT9BVzRDb252
ZXJzaW9uUmVzdWx0QDEyQFBBUEJfV1BCX1dQQVBBRFBBRF9OQFoKICAgICA/Y29udmVydFVURjhU
b1VURjE2QFVuaWNvZGVAV1RGQEBZQT9BVzRDb252ZXJzaW9uUmVzdWx0QDEyQFBBUEJEUEJEUEFQ
QV9XUEFfV19OQFoKICAgICA/Y3JlYXRlQEJ5dGVBcnJheUBXVEZAQFNBP0FWPyRQYXNzUmVmUHRy
QFZCeXRlQXJyYXlAV1RGQEBAMkBJQFoKKyAgICA/Y3JlYXRlQEpTQXJyYXlASlNDQEBTQVBBVjEy
QEFBVkpTR2xvYmFsRGF0YUAyQFBBVlN0cnVjdHVyZUAyQEBaCisgICAgP2NyZWF0ZUBKU0FycmF5
QEpTQ0BAU0FQQVYxMkBBQVZKU0dsb2JhbERhdGFAMkBQQVZTdHJ1Y3R1cmVAMkBBQlZBcmdMaXN0
QDJAQFoKICAgICA/Y3JlYXRlQEpTQnl0ZUFycmF5QEpTQ0BAU0FQQVYxMkBQQVZFeGVjU3RhdGVA
MkBQQVZTdHJ1Y3R1cmVAMkBQQVZCeXRlQXJyYXlAV1RGQEBAWgorICAgID9jcmVhdGVASlNGdW5j
dGlvbkBKU0NAQFNBUEFWMTJAUEFWRXhlY1N0YXRlQDJAUEFWSlNHbG9iYWxPYmplY3RAMkBQQVZT
dHJ1Y3R1cmVAMkBIQUJWSWRlbnRpZmllckAyQFA2SV9KMEBaQFoKICAgICA/Y3JlYXRlQEpTR2xv
YmFsRGF0YUBKU0NAQFNBP0FWPyRQYXNzUmVmUHRyQFZKU0dsb2JhbERhdGFASlNDQEBAV1RGQEBX
NFRocmVhZFN0YWNrVHlwZUAyQFc0SGVhcFNpemVAMkBAWgogICAgID9jcmVhdGVAT3BhcXVlSlNT
dHJpbmdAQFNBP0FWPyRQYXNzUmVmUHRyQFVPcGFxdWVKU1N0cmluZ0BAQFdURkBAQUJWVVN0cmlu
Z0BKU0NAQEBaCiAgICAgP2NyZWF0ZUBSZWdFeHBASlNDQEBTQVBBVjEyQEFBVkpTR2xvYmFsRGF0
YUAyQEFCVlVTdHJpbmdAMkBXNFJlZ0V4cEZsYWdzQDJAQFoKQEAgLTE2Nyw2ICsxNjgsNyBAQCBF
WFBPUlRTCiAgICAgP2Zhc3RaZXJvZWRNYWxsb2NAV1RGQEBZQVBBWElAWgogICAgID9maWxsR2V0
dGVyUHJvcGVydHlTbG90QEpTT2JqZWN0QEpTQ0BAUUFFWEFBVlByb3BlcnR5U2xvdEAyQFBBVj8k
V3JpdGVCYXJyaWVyQmFzZUBXNFVua25vd25ASlNDQEBAMkBAWgogICAgID9maW5hbGl6ZUBXZWFr
SGFuZGxlT3duZXJASlNDQEBVQUVYVj8kSGFuZGxlQFc0VW5rbm93bkBKU0NAQEAyQFBBWEBaCisg
ICAgP2ZpbmlzaENyZWF0aW9uQEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEBKU0NAQElBRVhBQVZK
U0dsb2JhbERhdGFAMkBQQVZKU0dsb2JhbE9iamVjdEAyQEBaCiAgICAgP2ZvY3VzQFByb2ZpbGVA
SlNDQEBRQUVYUEJWUHJvZmlsZU5vZGVAMkBAWgogICAgID9mcm9tQElkZW50aWZpZXJASlNDQEBT
QT9BVjEyQFBBVkV4ZWNTdGF0ZUAyQEhAWgogICAgID9mcm9tQElkZW50aWZpZXJASlNDQEBTQT9B
VjEyQFBBVkV4ZWNTdGF0ZUAyQElAWgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAppbmRleCBhZThhNWFjZDZhODU3MGFkNzM3
Y2UwZTAwY2M5ZDVhNjhhOTQwOWRkLi5hNzEwMWRjYjZiYWE0MGZmNGZlMGVmYTMyZDFkNTViNjhh
OTQxNGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVi
dWdnZXJBY3RpdmF0aW9uLmNwcApAQCAtMzAsMTAgKzMwLDE2IEBACiAKIG5hbWVzcGFjZSBKU0Mg
ewogCi1EZWJ1Z2dlckFjdGl2YXRpb246OkRlYnVnZ2VyQWN0aXZhdGlvbihKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIEpTT2JqZWN0KiBhY3RpdmF0aW9uKQorRGVidWdnZXJBY3RpdmF0aW9uOjpE
ZWJ1Z2dlckFjdGl2YXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogICAgIDogSlNOb25G
aW5hbE9iamVjdChnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLmRlYnVnZ2VyQWN0aXZhdGlvblN0cnVj
dHVyZS5nZXQoKSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBhY3RpdmF0aW9u
KTsKK30KKworRGVidWdnZXJBY3RpdmF0aW9uKiBEZWJ1Z2dlckFjdGl2YXRpb246OmNyZWF0ZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTT2JqZWN0KiBvYmplY3QpCit7CisgICAgRGVidWdn
ZXJBY3RpdmF0aW9uKiBhY3RpdmF0aW9uID0gbmV3IChhbGxvY2F0ZUNlbGw8RGVidWdnZXJBY3Rp
dmF0aW9uPihnbG9iYWxEYXRhLmhlYXApKSBEZWJ1Z2dlckFjdGl2YXRpb24oZ2xvYmFsRGF0YSk7
CisgICAgYWN0aXZhdGlvbi0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgb2JqZWN0KTsKKyAg
ICByZXR1cm4gYWN0aXZhdGlvbjsKIH0KIAogdm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246OmZpbmlz
aENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNPYmplY3QqIGFjdGl2YXRpb24p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3Rp
dmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0
aW9uLmgKaW5kZXggMzQ0NGJkODRlNWU2YzBhNGM0ZmQyY2M4MDlmN2RmMjhjNWQ4ZDUzMy4uZDgz
YjJmNzBmYzRiMGI4YWE1OTlkZjQxNGM1ZjA3MmFjZDk4NGQ2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaApAQCAtMzQsMTIg
KzM0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpT
Tm9uRmluYWxPYmplY3QgQmFzZTsKIAotICAgICAgICBzdGF0aWMgRGVidWdnZXJBY3RpdmF0aW9u
KiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU09iamVjdCogb2JqZWN0KQotICAg
ICAgICB7Ci0gICAgICAgICAgICBEZWJ1Z2dlckFjdGl2YXRpb24qIGFjdGl2YXRpb24gPSBuZXcg
KGFsbG9jYXRlQ2VsbDxEZWJ1Z2dlckFjdGl2YXRpb24+KGdsb2JhbERhdGEuaGVhcCkpIERlYnVn
Z2VyQWN0aXZhdGlvbihnbG9iYWxEYXRhLCBvYmplY3QpOwotICAgICAgICAgICAgcmV0dXJuIGFj
dGl2YXRpb247Ci0gICAgICAgIH0KLQorICAgICAgICBzdGF0aWMgRGVidWdnZXJBY3RpdmF0aW9u
KiBjcmVhdGUoSlNHbG9iYWxEYXRhJiwgSlNPYmplY3QqKTsKICAgICAgICAgdmlydHVhbCB2b2lk
IHZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImKTsKICAgICAgICAgdmlydHVhbCBVU3RyaW5nIGNs
YXNzTmFtZSgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
Jik7CkBAIC02NCw3ICs1OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIEpTT2JqZWN0KiBhY3RpdmF0aW9uKTsKIAogICAgIHBy
aXZhdGU6Ci0gICAgICAgIERlYnVnZ2VyQWN0aXZhdGlvbihKU0dsb2JhbERhdGEmLCBKU09iamVj
dCopOworICAgICAgICBEZWJ1Z2dlckFjdGl2YXRpb24oSlNHbG9iYWxEYXRhJik7CiAgICAgICAg
IFdyaXRlQmFycmllcjxKU0FjdGl2YXRpb24+IG1fYWN0aXZhdGlvbjsKICAgICB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCmluZGV4IDA5ZDU1ZjIxNjM1NTU0
MWU0YmRkZmIyMjI1ODFiNzZmMDkzMTg4N2UuLjdkMGFmM2RlNGYyODVmZDRiNjZjMDhhMWZiYzdl
ODFlNTI0ZGMxZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
Z3VtZW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5o
CkBAIC02NCwxMiArNjQsMTQgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBBcmd1
bWVudHMqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQogICAgICAgICB7CiAgICAgICAgICAgICBBcmd1bWVudHMqIGFyZ3VtZW50cyA9IG5ldyAo
YWxsb2NhdGVDZWxsPEFyZ3VtZW50cz4oZ2xvYmFsRGF0YS5oZWFwKSkgQXJndW1lbnRzKGNhbGxG
cmFtZSk7CisgICAgICAgICAgICBhcmd1bWVudHMtPmZpbmlzaENyZWF0aW9uKGNhbGxGcmFtZSk7
CiAgICAgICAgICAgICByZXR1cm4gYXJndW1lbnRzOwogICAgICAgICB9CiAgICAgICAgIAogICAg
ICAgICBzdGF0aWMgQXJndW1lbnRzKiBjcmVhdGVOb1BhcmFtZXRlcnMoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKICAgICAgICAgewogICAgICAgICAgICAg
QXJndW1lbnRzKiBhcmd1bWVudHMgPSBuZXcgKGFsbG9jYXRlQ2VsbDxBcmd1bWVudHM+KGdsb2Jh
bERhdGEuaGVhcCkpIEFyZ3VtZW50cyhjYWxsRnJhbWUsIE5vUGFyYW1ldGVycyk7CisgICAgICAg
ICAgICBhcmd1bWVudHMtPmZpbmlzaENyZWF0aW9uKGNhbGxGcmFtZSwgTm9QYXJhbWV0ZXJzKTsK
ICAgICAgICAgICAgIHJldHVybiBhcmd1bWVudHM7CiAgICAgICAgIH0KIApAQCAtMTY2LDE0ICsx
NjgsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIDogSlNOb25GaW5hbE9iamVjdChjYWxs
RnJhbWUtPmdsb2JhbERhdGEoKSwgY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmFy
Z3VtZW50c1N0cnVjdHVyZSgpKQogICAgICAgICAsIGQoYWRvcHRQdHIobmV3IEFyZ3VtZW50c0Rh
dGEpKQogICAgIHsKLSAgICAgICAgZmluaXNoQ3JlYXRpb24oY2FsbEZyYW1lKTsKICAgICB9CiAK
ICAgICBpbmxpbmUgQXJndW1lbnRzOjpBcmd1bWVudHMoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIE5v
UGFyYW1ldGVyc1R5cGUpCiAgICAgICAgIDogSlNOb25GaW5hbE9iamVjdChjYWxsRnJhbWUtPmds
b2JhbERhdGEoKSwgY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmFyZ3VtZW50c1N0
cnVjdHVyZSgpKQogICAgICAgICAsIGQoYWRvcHRQdHIobmV3IEFyZ3VtZW50c0RhdGEpKQogICAg
IHsKLSAgICAgICAgZmluaXNoQ3JlYXRpb24oY2FsbEZyYW1lLCBOb1BhcmFtZXRlcnMpOwogICAg
IH0KICAgICAKICAgICBpbmxpbmUgdm9pZCBBcmd1bWVudHM6OmZpbmlzaENyZWF0aW9uKENhbGxG
cmFtZSogY2FsbEZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJyYXlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlQcm90b3R5cGUuY3BwCmluZGV4IDc4Y2UwMTJkMWI4NWNmNGM2NDcwNTIwZDNlMDYzOGNmNmM3
NWI5OGMuLjk5Njc0YmIyM2I0OTgxOGIyZjNhMzQ4NGMyNjZlMDEzOWQ4NmVmNDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTEx
Nyw2ICsxMTcsMTIgQEAgY29uc3QgQ2xhc3NJbmZvIEFycmF5UHJvdG90eXBlOjpzX2luZm8gPSB7
IkFycmF5IiwgJkpTQXJyYXk6OnNfaW5mbywgMCwgRXhlY1N0YXQKIEFycmF5UHJvdG90eXBlOjpB
cnJheVByb3RvdHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkKICAgICA6IEpTQXJyYXkoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHN0cnVj
dHVyZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QpOworfQorCit2b2lkIEFy
cmF5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgp
KTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHB1dEFub255bW91c1ZhbHVl
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCAwLCBnbG9iYWxPYmplY3QpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKaW5kZXggMTI0YzYx
YWM0ZGM3OTgzODVkZWVhNzg3ZGQ2NGQ1YmNiNmZiYTI1OC4uOWE2MjhlMGM2OTNjYTlkNzdlNzc2
YTg2YTk5ZDgyYTMwNWI3YzdiOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheVByb3RvdHlwZS5oCkBAIC00OSw2ICs0OSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNH
bG9iYWxPYmplY3QqKTsKKwogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQW5vbnltb3Vz
U2xvdENvdW50ID0gSlNBcnJheTo6QW5vbnltb3VzU2xvdENvdW50ICsgMTsKICAgICB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwCmluZGV4
IGUyNGEzMGE0YmI1NGFlNTAwZWQwZTlkNzE2NWZjOWNlN2E1ZDlhNjMuLmI5ZTMzZGM0ODQyOThi
NmNlZTY3NGUxOGQ1NGE4N2Y2MmRhZGZkNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwCkBAIC0zMCw2ICszMCwxMiBAQCBjb25zdCBDbGFz
c0luZm8gQm9vbGVhbk9iamVjdDo6c19pbmZvID0geyAiQm9vbGVhbiIsICZKU1dyYXBwZXJPYmpl
Y3Q6OnNfaW5mbywgMAogQm9vbGVhbk9iamVjdDo6Qm9vbGVhbk9iamVjdChKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNXcmFwcGVyT2JqZWN0
KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRh
KTsKK30KKwordm9pZCBCb29sZWFuT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAg
ICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCmluZGV4IDcwZWQxMjYxMmNmZTk1NzM3YTAxM2Uw
ZDdjNzQ2MzFjYjljMDY3ZWUuLjg0NjEwZDliODFmNTBlMWRhYjhkODM0MTVkZDQ3NTI4NTQ4OTdl
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmpl
Y3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmgK
QEAgLTI4LDYgKzI4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgQm9vbGVhbk9iamVj
dCA6IHB1YmxpYyBKU1dyYXBwZXJPYmplY3QgewogICAgIHByb3RlY3RlZDoKICAgICAgICAgQm9v
bGVhbk9iamVjdChKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqKTsKKyAgICAgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihKU0dsb2JhbERhdGEmKTsKIAogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRl
ZiBKU1dyYXBwZXJPYmplY3QgQmFzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlSW5zdGFuY2UuY3BwCmluZGV4IGQ4Y2EwNzI0OTFiODU4M2RmYzgxZTEyOTVhMmQ4YjM5
MmE2NDQ3ZGYuLjJlYzcyMWQ5YjViNDk2N2Q4ZTEzODI4NDEzODExMjcyM2E4ZGJjYjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcApAQCAtMzcs
MTUgKzM3LDIwIEBAIGNvbnN0IENsYXNzSW5mbyBEYXRlSW5zdGFuY2U6OnNfaW5mbyA9IHsiRGF0
ZSIsICZKU1dyYXBwZXJPYmplY3Q6OnNfaW5mbywgMCwgMH07CiBEYXRlSW5zdGFuY2U6OkRhdGVJ
bnN0YW5jZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNX
cmFwcGVyT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogewotICAgIEFTU0VS
VChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgc2V0SW50ZXJuYWxWYWx1ZShleGVjLT5nbG9iYWxE
YXRhKCksIGpzTmFOKCkpOworICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwg
anNOYU4oKSk7CiB9CiAKIERhdGVJbnN0YW5jZTo6RGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSogZXhl
YywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGRvdWJsZSB0aW1lKQogICAgIDogSlNXcmFwcGVyT2Jq
ZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9u
KGV4ZWMtPmdsb2JhbERhdGEoKSwganNOdW1iZXIodGltZUNsaXAodGltZSkpKTsKK30KKwordm9p
ZCBEYXRlSW5zdGFuY2U6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsK
ICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwotICAgIHNldEludGVybmFsVmFsdWUoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBqc051bWJlcih0aW1lQ2xpcCh0aW1lKSkpOworICAgIHNldEludGVy
bmFsVmFsdWUoZ2xvYmFsRGF0YSwgdmFsdWUpOwogfQogCiBjb25zdCBHcmVnb3JpYW5EYXRlVGlt
ZSogRGF0ZUluc3RhbmNlOjpjYWxjdWxhdGVHcmVnb3JpYW5EYXRlVGltZShFeGVjU3RhdGUqIGV4
ZWMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
SW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5o
CmluZGV4IGFmMmRmYTA1MGIzMzI1NmIyMzhjOWQzMGQ2Y2MyZmFlY2JkYTM2MWIuLjQ1NmQzNWQx
MzlhMmUyMzQ3NjhlODkyYzEzMGFhNWEyZTE1ZjAwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oCkBAIC0zMyw2ICszMyw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgIHByb3RlY3RlZDoKICAgICAgICAgRGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSosIFN0
cnVjdHVyZSosIGRvdWJsZSk7CiAgICAgICAgIERhdGVJbnN0YW5jZShFeGVjU3RhdGUqLCBTdHJ1
Y3R1cmUqKTsKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBKU1Zh
bHVlKTsKICAgICAgICAgCiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpTV3JhcHBlck9i
amVjdCBCYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JJbnN0YW5jZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3Rh
bmNlLmNwcAppbmRleCAzZTAzMzdiODk0ZDM1MzdhZTEyZWY1OTViYTk1OTFkODNlNWFkMjBmLi5i
MTU0YWEzYmEwODg3NzZmMWRkNDllMjdkNmZhODkwNWQ3YjEzMTNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcApAQCAtMjksMjYgKzI5LDIz
IEBAIEVycm9ySW5zdGFuY2U6OkVycm9ySW5zdGFuY2UoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0
YSwgc3RydWN0dXJlKQogICAgICwgbV9hcHBlbmRTb3VyY2VUb01lc3NhZ2UoZmFsc2UpCiB7Ci0g
ICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgVVN0cmluZygiIiwgMCkpOwotfQotCi1FcnJv
ckluc3RhbmNlOjpFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFVTdHJpbmcmIG1lc3NhZ2UpCi0gICAgOiBKU05vbkZpbmFs
T2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKLSAgICAsIG1fYXBwZW5kU291cmNlVG9NZXNz
YWdlKGZhbHNlKQotewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIG1lc3NhZ2UpOwog
fQogCiBFcnJvckluc3RhbmNlKiBFcnJvckluc3RhbmNlOjpjcmVhdGUoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgVVN0cmluZyYgbWVzc2FnZSkK
IHsKLSAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8RXJyb3JJbnN0YW5jZT4oZ2xvYmFsRGF0
YS5oZWFwKSkgRXJyb3JJbnN0YW5jZShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUsIG1lc3NhZ2UpOwor
ICAgIEVycm9ySW5zdGFuY2UqIGluc3RhbmNlID0gbmV3IChhbGxvY2F0ZUNlbGw8RXJyb3JJbnN0
YW5jZT4oZ2xvYmFsRGF0YS5oZWFwKSkgRXJyb3JJbnN0YW5jZShnbG9iYWxEYXRhLCBzdHJ1Y3R1
cmUpOworICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBtZXNzYWdlKTsK
KyAgICByZXR1cm4gaW5zdGFuY2U7CiB9CiAKIEVycm9ySW5zdGFuY2UqIEVycm9ySW5zdGFuY2U6
OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1ZhbHVlIG1l
c3NhZ2UpCiB7CisgICAgRXJyb3JJbnN0YW5jZSogaW5zdGFuY2UgPSBuZXcgKGFsbG9jYXRlQ2Vs
bDxFcnJvckluc3RhbmNlPigqZXhlYy0+aGVhcCgpKSkgRXJyb3JJbnN0YW5jZShleGVjLT5nbG9i
YWxEYXRhKCksIHN0cnVjdHVyZSk7CiAgICAgaWYgKG1lc3NhZ2UuaXNVbmRlZmluZWQoKSkKLSAg
ICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEVycm9ySW5zdGFuY2U+KCpleGVjLT5oZWFw
KCkpKSBFcnJvckluc3RhbmNlKGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKTsKLSAgICBy
ZXR1cm4gY3JlYXRlKGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlLCBtZXNzYWdlLnRvU3Ry
aW5nKGV4ZWMpKTsKKyAgICAgICAgaW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2Jh
bERhdGEoKSwgVVN0cmluZygiIiwgMCkpOworICAgIGVsc2UKKyAgICAgICAgaW5zdGFuY2UtPmZp
bmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgbWVzc2FnZS50b1N0cmluZyhleGVjKSk7
CisgICAgcmV0dXJuIGluc3RhbmNlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaAppbmRleCAwNmE5NTMyMTNj
YTViZTViNDUxYTNkYzhhMTFlOTJkYWExMjc2ZjkyLi5hNmE3Mzc4NTQ0NThkMDU0YjVhMDBlNGMz
NDQxYjA4YTk3YTUwM2IzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvckluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JJbnN0YW5jZS5oCkBAIC00OCw3ICs0OCw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJv
dGVjdGVkOgogICAgICAgICBleHBsaWNpdCBFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYsIFN0
cnVjdHVyZSopOwotICAgICAgICBleHBsaWNpdCBFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYs
IFN0cnVjdHVyZSosIGNvbnN0IFVTdHJpbmcmKTsKIAogICAgICAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgVVN0cmluZyYgbWVzc2FnZSkKICAg
ICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQ
cm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5
cGUuY3BwCmluZGV4IDM4NjA2OGJjM2U3OGY3YmJkZGIyNGMzNDdjOWQxZmZkN2NlZGE4MTEuLjY5
ODY3NTI0YzRjZTdlZjVjNzYzYjZhNTI3MmU3MTZjZTg0OTU3OWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKQEAgLTUzLDExICs1Mywx
MiBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEVycm9yUHJvdG90eXBlKTsKIEVycm9yUHJv
dG90eXBlOjpFcnJvclByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogRXJyb3JJbnN0YW5jZShl
eGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsKLSAgICBjb25zdHJ1Y3RvckJvZHkoZXhl
YywgZ2xvYmFsT2JqZWN0KTsKKyAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3Qp
OwogfQogCi12b2lkIEVycm9yUHJvdG90eXBlOjpjb25zdHJ1Y3RvckJvZHkoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQordm9pZCBFcnJvclByb3RvdHlwZTo6
ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQogeworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgIiIp
OwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPmds
b2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLm5hbWUsIGpzTm9udHJpdmlhbFN0cmlu
ZyhleGVjLCAiRXJyb3IiKSwgRG9udEVudW0pOwogICAgIHB1dEFub255bW91c1ZhbHVlKGdsb2Jh
bE9iamVjdC0+Z2xvYmFsRGF0YSgpLCAwLCBnbG9iYWxPYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmgKaW5kZXggOTgzNTcyYjYyMjNhN2Jk
MzhmYzNlNWFhMTg1NjliYzA4NDQwZWQ3OC4uZDdiMTUyMjVjODE4ZjEyZGQxYjQ2M2ZlMWY1NDcw
OGNkZmNmNDlhOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclBy
b3RvdHlwZS5oCkBAIC00NSw3ICs0NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJvdGVj
dGVkOgogICAgICAgICBFcnJvclByb3RvdHlwZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCos
IFN0cnVjdHVyZSopOwotICAgICAgICB2b2lkIGNvbnN0cnVjdG9yQm9keShFeGVjU3RhdGUqLCBK
U0dsb2JhbE9iamVjdCopOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSos
IEpTR2xvYmFsT2JqZWN0Kik7CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgRXJyb3JJbnN0YW5jZTo6
U3RydWN0dXJlRmxhZ3M7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNT
bG90Q291bnQgPSBFcnJvckluc3RhbmNlOjpBbm9ueW1vdXNTbG90Q291bnQgKyAxOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAppbmRl
eCBiNThkODk1MTdlMzdlZGJhYjI3OTQwMzAxMTE2ZmUzYzIyM2MzNDgyLi40YmM0ZmFlMDYwNGNi
NjIxOGJkOTQwZWMyYWYzNGFlZGFkYTNkZjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcApAQCAtNDYsNyArNDYsNiBAQCBwcml2
YXRlOgogICAgIEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3IoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhKQogICAgICAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS5p
bnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yU3RydWN0dXJlLmdldCgpKQogICAgIHsKLSAgICAgICAg
ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAgfQogCiBwdWJsaWM6CkBAIC01NCw3ICs1
Myw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yKiBj
cmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5l
dyAoYWxsb2NhdGVDZWxsPEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3I+KGdsb2JhbERhdGEuaGVh
cCkpIEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3IoZ2xvYmFsRGF0YSk7CisgICAgICAgIEludGVy
cnVwdGVkRXhlY3V0aW9uRXJyb3IqIGVycm9yID0gbmV3IChhbGxvY2F0ZUNlbGw8SW50ZXJydXB0
ZWRFeGVjdXRpb25FcnJvcj4oZ2xvYmFsRGF0YS5oZWFwKSkgSW50ZXJydXB0ZWRFeGVjdXRpb25F
cnJvcihnbG9iYWxEYXRhKTsKKyAgICAgICAgZXJyb3ItPmZpbmlzaENyZWF0aW9uKGdsb2JhbERh
dGEpOworICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgfQogCiAgICAgdmlydHVhbCBDb21wbFR5
cGUgZXhjZXB0aW9uVHlwZSgpIGNvbnN0IHsgcmV0dXJuIEludGVycnVwdGVkOyB9CkBAIC03Miw3
ICs3Myw2IEBAIHByaXZhdGU6CiAgICAgVGVybWluYXRlZEV4ZWN1dGlvbkVycm9yKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSkKICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEs
IGdsb2JhbERhdGEudGVybWluYXRlZEV4ZWN1dGlvbkVycm9yU3RydWN0dXJlLmdldCgpKQogICAg
IHsKLSAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAgfQogCiBwdWJsaWM6
CkBAIC04MCw3ICs4MCw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBUZXJtaW5hdGVkRXhlY3V0
aW9uRXJyb3IqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCiAgICAgewotICAgICAg
ICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8VGVybWluYXRlZEV4ZWN1dGlvbkVycm9yPihnbG9i
YWxEYXRhLmhlYXApKSBUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3IoZ2xvYmFsRGF0YSk7CisgICAg
ICAgIFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvciogZXJyb3IgPSBuZXcgKGFsbG9jYXRlQ2VsbDxU
ZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3I+KGdsb2JhbERhdGEuaGVhcCkpIFRlcm1pbmF0ZWRFeGVj
dXRpb25FcnJvcihnbG9iYWxEYXRhKTsKKyAgICAgICAgZXJyb3ItPmZpbmlzaENyZWF0aW9uKGds
b2JhbERhdGEpOworICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgfQogCiAgICAgdmlydHVhbCBD
b21wbFR5cGUgZXhjZXB0aW9uVHlwZSgpIGNvbnN0IHsgcmV0dXJuIFRlcm1pbmF0ZWQ7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKaW5kZXggMzg5N2U5
MzY4YjJmOTA3OWFhNWI5MmYyZmQ0MDIxN2NlNjBlMDBlMi4uNTYxNzUyMjMwOTZhMmYyNjIzNWNl
N2IwNzE0ZTk2NjNkZWM5ODE1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXhlY3V0YWJsZS5jcHAKQEAgLTEyNyw3ICsxMjcsNiBAQCBjb25zdCBDbGFzc0luZm8gRXZhbEV4
ZWN1dGFibGU6OnNfaW5mbyA9IHsgIkV2YWxFeGVjdXRhYmxlIiwgJlNjcmlwdEV4ZWN1dGFibGU6
OgogRXZhbEV4ZWN1dGFibGU6OkV2YWxFeGVjdXRhYmxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
U291cmNlQ29kZSYgc291cmNlLCBib29sIGluU3RyaWN0Q29udGV4dCkKICAgICA6IFNjcmlwdEV4
ZWN1dGFibGUoZXhlYy0+Z2xvYmFsRGF0YSgpLmV2YWxFeGVjdXRhYmxlU3RydWN0dXJlLmdldCgp
LCBleGVjLCBzb3VyY2UsIGluU3RyaWN0Q29udGV4dCkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihl
eGVjLT5nbG9iYWxEYXRhKCkpOwogfQogCiBFdmFsRXhlY3V0YWJsZTo6fkV2YWxFeGVjdXRhYmxl
KCkKQEAgLTEzOSw3ICsxMzgsNiBAQCBjb25zdCBDbGFzc0luZm8gUHJvZ3JhbUV4ZWN1dGFibGU6
OnNfaW5mbyA9IHsgIlByb2dyYW1FeGVjdXRhYmxlIiwgJlNjcmlwdEV4ZWN1dAogUHJvZ3JhbUV4
ZWN1dGFibGU6OlByb2dyYW1FeGVjdXRhYmxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNl
Q29kZSYgc291cmNlKQogICAgIDogU2NyaXB0RXhlY3V0YWJsZShleGVjLT5nbG9iYWxEYXRhKCku
cHJvZ3JhbUV4ZWN1dGFibGVTdHJ1Y3R1cmUuZ2V0KCksIGV4ZWMsIHNvdXJjZSwgZmFsc2UpCiB7
Ci0gICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKIH0KIAogUHJvZ3JhbUV4
ZWN1dGFibGU6On5Qcm9ncmFtRXhlY3V0YWJsZSgpCkBAIC0xNDgsNyArMTQ2LDcgQEAgUHJvZ3Jh
bUV4ZWN1dGFibGU6On5Qcm9ncmFtRXhlY3V0YWJsZSgpCiAKIGNvbnN0IENsYXNzSW5mbyBGdW5j
dGlvbkV4ZWN1dGFibGU6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uRXhlY3V0YWJsZSIsICZTY3JpcHRF
eGVjdXRhYmxlOjpzX2luZm8sIDAsIDAgfTsKIAotRnVuY3Rpb25FeGVjdXRhYmxlOjpGdW5jdGlv
bkV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVyJiBu
YW1lLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBG
dW5jdGlvblBhcmFtZXRlcnMqIHBhcmFtZXRlcnMsIGJvb2wgaW5TdHJpY3RDb250ZXh0LCBpbnQg
Zmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpCitGdW5jdGlvbkV4ZWN1dGFibGU6OkZ1bmN0aW9uRXhl
Y3V0YWJsZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXImIG5hbWUs
IGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBmb3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0
aW9uUGFyYW1ldGVycyogcGFyYW1ldGVycywgYm9vbCBpblN0cmljdENvbnRleHQpCiAgICAgOiBT
Y3JpcHRFeGVjdXRhYmxlKGdsb2JhbERhdGEuZnVuY3Rpb25FeGVjdXRhYmxlU3RydWN0dXJlLmdl
dCgpLCBnbG9iYWxEYXRhLCBzb3VyY2UsIGluU3RyaWN0Q29udGV4dCkKICAgICAsIG1fbnVtQ2Fw
dHVyZWRWYXJpYWJsZXMoMCkKICAgICAsIG1fZm9yY2VVc2VzQXJndW1lbnRzKGZvcmNlVXNlc0Fy
Z3VtZW50cykKQEAgLTE1NiwxMCArMTU0LDkgQEAgRnVuY3Rpb25FeGVjdXRhYmxlOjpGdW5jdGlv
bkV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWUKICAg
ICAsIG1fbmFtZShuYW1lKQogICAgICwgbV9zeW1ib2xUYWJsZSgwKQogewotICAgIGZpbmlzaENy
ZWF0aW9uKGdsb2JhbERhdGEsIG5hbWUsIGZpcnN0TGluZSwgbGFzdExpbmUpOwogfQogCi1GdW5j
dGlvbkV4ZWN1dGFibGU6OkZ1bmN0aW9uRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBmb3JjZVVz
ZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyogcGFyYW1ldGVycywgYm9vbCBpblN0cmlj
dENvbnRleHQsIGludCBmaXJzdExpbmUsIGludCBsYXN0TGluZSkKK0Z1bmN0aW9uRXhlY3V0YWJs
ZTo6RnVuY3Rpb25FeGVjdXRhYmxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
bmFtZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBib29sIGZvcmNlVXNlc0FyZ3VtZW50cywg
RnVuY3Rpb25QYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzLCBib29sIGluU3RyaWN0Q29udGV4dCkKICAg
ICA6IFNjcmlwdEV4ZWN1dGFibGUoZXhlYy0+Z2xvYmFsRGF0YSgpLmZ1bmN0aW9uRXhlY3V0YWJs
ZVN0cnVjdHVyZS5nZXQoKSwgZXhlYywgc291cmNlLCBpblN0cmljdENvbnRleHQpCiAgICAgLCBt
X251bUNhcHR1cmVkVmFyaWFibGVzKDApCiAgICAgLCBtX2ZvcmNlVXNlc0FyZ3VtZW50cyhmb3Jj
ZVVzZXNBcmd1bWVudHMpCkBAIC0xNjcsNyArMTY0LDYgQEAgRnVuY3Rpb25FeGVjdXRhYmxlOjpG
dW5jdGlvbkV4ZWN1dGFibGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBuYW1l
LAogICAgICwgbV9uYW1lKG5hbWUpCiAgICAgLCBtX3N5bWJvbFRhYmxlKDApCiB7Ci0gICAgZmlu
aXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBuYW1lLCBmaXJzdExpbmUsIGxhc3RMaW5l
KTsKIH0KIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVj
dXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKaW5k
ZXggNWZhZGJiODEyNDFhMGNlM2UxMzgzMTg1ODhhZjQyMTE2N2ZhMWI2OS4uNjM5YmJlNDcwMGFm
MzM0MzQyNDFkMTU1MDhhZGQ3ZDQxYTcyYTE3YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuaApAQCAtMTc2LDE2ICsxNzYsMjEgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHN0YXRpYyBOYXRpdmVFeGVjdXRhYmxlKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY2FsbFRodW5rLCBOYXRpdmVGdW5jdGlv
biBmdW5jdGlvbiwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvbnN0cnVjdFRodW5rLCBOYXRpdmVG
dW5jdGlvbiBjb25zdHJ1Y3RvcikKICAgICAgICAgewogICAgICAgICAgICAgTmF0aXZlRXhlY3V0
YWJsZSogZXhlY3V0YWJsZTsKLSAgICAgICAgICAgIGlmICghY2FsbFRodW5rKQotICAgICAgICAg
ICAgICAgIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxOYXRpdmVFeGVjdXRhYmxlPihn
bG9iYWxEYXRhLmhlYXApKSBOYXRpdmVFeGVjdXRhYmxlKGdsb2JhbERhdGEsIEpJVENvZGUoKSwg
ZnVuY3Rpb24sIEpJVENvZGUoKSwgY29uc3RydWN0b3IpOwotICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxOYXRpdmVFeGVjdXRh
YmxlPihnbG9iYWxEYXRhLmhlYXApKSBOYXRpdmVFeGVjdXRhYmxlKGdsb2JhbERhdGEsIEpJVENv
ZGU6Okhvc3RGdW5jdGlvbihjYWxsVGh1bmspLCBmdW5jdGlvbiwgSklUQ29kZTo6SG9zdEZ1bmN0
aW9uKGNvbnN0cnVjdFRodW5rKSwgY29uc3RydWN0b3IpOworICAgICAgICAgICAgaWYgKCFjYWxs
VGh1bmspIHsKKyAgICAgICAgICAgICAgICBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8
TmF0aXZlRXhlY3V0YWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkgTmF0aXZlRXhlY3V0YWJsZShnbG9i
YWxEYXRhLCBmdW5jdGlvbiwgY29uc3RydWN0b3IpOworICAgICAgICAgICAgICAgIGV4ZWN1dGFi
bGUtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIEpJVENvZGUoKSwgSklUQ29kZSgpKTsKKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZXhlY3V0YWJsZSA9IG5ldyAoYWxs
b2NhdGVDZWxsPE5hdGl2ZUV4ZWN1dGFibGU+KGdsb2JhbERhdGEuaGVhcCkpIE5hdGl2ZUV4ZWN1
dGFibGUoZ2xvYmFsRGF0YSwgZnVuY3Rpb24sIGNvbnN0cnVjdG9yKTsKKyAgICAgICAgICAgICAg
ICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBKSVRDb2RlOjpIb3N0RnVu
Y3Rpb24oY2FsbFRodW5rKSwgSklUQ29kZTo6SG9zdEZ1bmN0aW9uKGNvbnN0cnVjdFRodW5rKSk7
CisgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAgICAgICAg
fQogI2Vsc2UKICAgICAgICAgc3RhdGljIE5hdGl2ZUV4ZWN1dGFibGUqIGNyZWF0ZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlv
biBjb25zdHJ1Y3RvcikKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2Nh
dGVDZWxsPE5hdGl2ZUV4ZWN1dGFibGU+KGdsb2JhbERhdGEuaGVhcCkpIE5hdGl2ZUV4ZWN1dGFi
bGUoZ2xvYmFsRGF0YSwgZnVuY3Rpb24sIGNvbnN0cnVjdG9yKTsKKyAgICAgICAgICAgIE5hdGl2
ZUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxOYXRpdmVFeGVjdXRh
YmxlPihnbG9iYWxEYXRhLmhlYXApKSBOYXRpdmVFeGVjdXRhYmxlKGdsb2JhbERhdGEsIGZ1bmN0
aW9uLCBjb25zdHJ1Y3Rvcik7CisgICAgICAgICAgICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlv
bihnbG9iYWxEYXRhKTsKKyAgICAgICAgICAgIHJldHVybiBleGVjdXRhYmxlOwogICAgICAgICB9
CiAjZW5kaWYKIApAQCAtMjExLDEyICsyMTYsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgCiAgICAg
cHJpdmF0ZToKICNpZiBFTkFCTEUoSklUKQotICAgICAgICBOYXRpdmVFeGVjdXRhYmxlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSklUQ29kZSBjYWxsVGh1bmssIE5hdGl2ZUZ1bmN0aW9uIGZ1
bmN0aW9uLCBKSVRDb2RlIGNvbnN0cnVjdFRodW5rLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3Rv
cikKKyAgICAgICAgTmF0aXZlRXhlY3V0YWJsZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIE5h
dGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKICAgICAg
ICAgICAgIDogRXhlY3V0YWJsZUJhc2UoZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS5uYXRpdmVFeGVj
dXRhYmxlU3RydWN0dXJlLmdldCgpLCBOVU1fUEFSQU1FVEVSU19JU19IT1NUKQogICAgICAgICAg
ICAgLCBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQogICAgICAgICAgICAgLCBtX2NvbnN0cnVjdG9yKGNv
bnN0cnVjdG9yKQogICAgICAgICB7Ci0gICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxE
YXRhLCBjYWxsVGh1bmssIGNvbnN0cnVjdFRodW5rKTsKICAgICAgICAgfQogI2Vsc2UKICAgICAg
ICAgTmF0aXZlRXhlY3V0YWJsZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0
aW9uIGZ1bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKQEAgLTIyNCw3ICsyMjgs
NiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgICwgbV9mdW5jdGlvbihmdW5jdGlvbikK
ICAgICAgICAgICAgICwgbV9jb25zdHJ1Y3Rvcihjb25zdHJ1Y3RvcikKICAgICAgICAgewotICAg
ICAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAgICAgIH0KICNlbmRpZgog
CkBAIC0zMTcsNiArMzIwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBFdmFs
RXhlY3V0YWJsZSogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291
cmNlLCBib29sIGlzSW5TdHJpY3RDb250ZXh0KSAKICAgICAgICAgewogICAgICAgICAgICAgRXZh
bEV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxFdmFsRXhlY3V0YWJs
ZT4oKmV4ZWMtPmhlYXAoKSkpIEV2YWxFeGVjdXRhYmxlKGV4ZWMsIHNvdXJjZSwgaXNJblN0cmlj
dENvbnRleHQpOworICAgICAgICAgICAgZXhlY3V0YWJsZS0+ZmluaXNoQ3JlYXRpb24oZXhlYy0+
Z2xvYmFsRGF0YSgpKTsKICAgICAgICAgICAgIHJldHVybiBleGVjdXRhYmxlOwogICAgICAgICB9
CiAKQEAgLTM1NCw2ICszNTgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIFBy
b2dyYW1FeGVjdXRhYmxlKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2Rl
JiBzb3VyY2UpCiAgICAgICAgIHsKICAgICAgICAgICAgIFByb2dyYW1FeGVjdXRhYmxlKiBleGVj
dXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8UHJvZ3JhbUV4ZWN1dGFibGU+KCpleGVjLT5oZWFw
KCkpKSBQcm9ncmFtRXhlY3V0YWJsZShleGVjLCBzb3VyY2UpOworICAgICAgICAgICAgZXhlY3V0
YWJsZS0+ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKICAgICAgICAgICAgIHJl
dHVybiBleGVjdXRhYmxlOwogICAgICAgICB9CiAKQEAgLTQxMiwxMyArNDE3LDE1IEBAIG5hbWVz
cGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBGdW5jdGlvbkV4ZWN1dGFibGUqIGNyZWF0ZShF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUm
IHNvdXJjZSwgYm9vbCBmb3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyogcGFy
YW1ldGVycywgYm9vbCBpc0luU3RyaWN0Q29udGV4dCwgaW50IGZpcnN0TGluZSwgaW50IGxhc3RM
aW5lKQogICAgICAgICB7Ci0gICAgICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFi
bGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxGdW5jdGlvbkV4ZWN1dGFibGU+KCpleGVjLT5oZWFwKCkp
KSBGdW5jdGlvbkV4ZWN1dGFibGUoZXhlYywgbmFtZSwgc291cmNlLCBmb3JjZVVzZXNBcmd1bWVu
dHMsIHBhcmFtZXRlcnMsIGlzSW5TdHJpY3RDb250ZXh0LCBmaXJzdExpbmUsIGxhc3RMaW5lKTsK
KyAgICAgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2Nh
dGVDZWxsPEZ1bmN0aW9uRXhlY3V0YWJsZT4oKmV4ZWMtPmhlYXAoKSkpIEZ1bmN0aW9uRXhlY3V0
YWJsZShleGVjLCBuYW1lLCBzb3VyY2UsIGZvcmNlVXNlc0FyZ3VtZW50cywgcGFyYW1ldGVycywg
aXNJblN0cmljdENvbnRleHQpOworICAgICAgICAgICAgZXhlY3V0YWJsZS0+ZmluaXNoQ3JlYXRp
b24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBuYW1lLCBmaXJzdExpbmUsIGxhc3RMaW5lKTsKICAgICAg
ICAgICAgIHJldHVybiBleGVjdXRhYmxlOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIEZ1
bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3Qg
SWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBib29sIGZvcmNlVXNl
c0FyZ3VtZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzLCBib29sIGlzSW5TdHJp
Y3RDb250ZXh0LCBpbnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2NhdGVDZWxs
PEZ1bmN0aW9uRXhlY3V0YWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkgRnVuY3Rpb25FeGVjdXRhYmxl
KGdsb2JhbERhdGEsIG5hbWUsIHNvdXJjZSwgZm9yY2VVc2VzQXJndW1lbnRzLCBwYXJhbWV0ZXJz
LCBpc0luU3RyaWN0Q29udGV4dCwgZmlyc3RMaW5lLCBsYXN0TGluZSk7CisgICAgICAgICAgICBG
dW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxGdW5jdGlv
bkV4ZWN1dGFibGU+KGdsb2JhbERhdGEuaGVhcCkpIEZ1bmN0aW9uRXhlY3V0YWJsZShnbG9iYWxE
YXRhLCBuYW1lLCBzb3VyY2UsIGZvcmNlVXNlc0FyZ3VtZW50cywgcGFyYW1ldGVycywgaXNJblN0
cmljdENvbnRleHQpOworICAgICAgICAgICAgZXhlY3V0YWJsZS0+ZmluaXNoQ3JlYXRpb24oZ2xv
YmFsRGF0YSwgbmFtZSwgZmlyc3RMaW5lLCBsYXN0TGluZSk7CiAgICAgICAgICAgICByZXR1cm4g
ZXhlY3V0YWJsZTsKICAgICAgICAgfQogCkBAIC01MzksOCArNTQ2LDggQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJs
ZShKU0dsb2JhbERhdGEmLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25zdCBTb3VyY2VDb2Rl
JiwgYm9vbCBmb3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyosIGJvb2wsIGlu
dCBmaXJzdExpbmUsIGludCBsYXN0TGluZSk7Ci0gICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZShF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25zdCBTb3VyY2VDb2RlJiwgYm9v
bCBmb3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyosIGJvb2wsIGludCBmaXJz
dExpbmUsIGludCBsYXN0TGluZSk7CisgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZShKU0dsb2Jh
bERhdGEmLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25zdCBTb3VyY2VDb2RlJiwgYm9vbCBm
b3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyosIGJvb2wpOworICAgICAgICBG
dW5jdGlvbkV4ZWN1dGFibGUoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29u
c3QgU291cmNlQ29kZSYsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRl
cnMqLCBib29sKTsKIAogICAgICAgICBKU09iamVjdCogY29tcGlsZUZvckNhbGxJbnRlcm5hbChF
eGVjU3RhdGUqLCBTY29wZUNoYWluTm9kZSosIEV4ZWNTdGF0ZSogY2FsbGVlQXJnc0V4ZWMpOwog
ICAgICAgICBKU09iamVjdCogY29tcGlsZUZvckNvbnN0cnVjdEludGVybmFsKEV4ZWNTdGF0ZSos
IFNjb3BlQ2hhaW5Ob2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGVybmFsRnVuY3Rpb24uY3BwCmluZGV4IGJjYTE3NDcxMzJkNGM5NzMxN2Q1N2NkODBlNDkx
ZDQ4NjI4YWNlOTAuLjA3YzBmN2Y1YmY2NWEzZTc1NmI1MWMyNDAzN2NhY2MzM2M0MmU2MjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24u
Y3BwCkBAIC00NCw3ICs0NCwxNCBAQCBJbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9u
KFZQdHJTdGVhbGluZ0hhY2tUeXBlKQogSW50ZXJuYWxGdW5jdGlvbjo6SW50ZXJuYWxGdW5jdGlv
bihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKQogICAgIDogSlNP
YmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogewotICAgIGNv
bnN0cnVjdG9yQm9keSgqZ2xvYmFsRGF0YSwgbmFtZSk7CisgICAgZmluaXNoQ3JlYXRpb24oKmds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgbmFtZSk7Cit9CisKK3ZvaWQgSW50ZXJuYWxGdW5jdGlv
bjo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKQoreworICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCk7CisgICAgQVNTRVJUKGluaGVy
aXRzKCZzX2luZm8pKTsKKyAgICBwdXREaXJlY3QoZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS5wcm9w
ZXJ0eU5hbWVzLT5uYW1lLCBqc1N0cmluZygmZ2xvYmFsRGF0YSwgbmFtZS5pc051bGwoKSA/ICIi
IDogbmFtZS51c3RyaW5nKCkpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiB9
CiAKIGNvbnN0IFVTdHJpbmcmIEludGVybmFsRnVuY3Rpb246Om5hbWUoRXhlY1N0YXRlKiBleGVj
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5j
dGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5o
CmluZGV4IDE0MzZmMzJkNmU3YTdkZTI4ZjU0ZjkxMDkwM2JkMWY3ODEwNzBlNjUuLjYwNjdiZThk
YmZkZGIzN2NhNDYwNzk4MWE3MzA4YTU4MzgwNjg1Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKQEAgLTU0LDExICs1NCw3IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgICAgIEludGVybmFsRnVuY3Rpb24oSlNHbG9iYWxEYXRhKiwg
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBjb25zdCBJZGVudGlmaWVyJik7CiAKLSAgICAg
ICAgdm9pZCBjb25zdHJ1Y3RvckJvZHkoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJ
ZGVudGlmaWVyJiBuYW1lKQotICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQoaW5oZXJpdHMo
JnNfaW5mbykpOwotICAgICAgICAgICAgcHV0RGlyZWN0KGdsb2JhbERhdGEsIGdsb2JhbERhdGEu
cHJvcGVydHlOYW1lcy0+bmFtZSwganNTdHJpbmcoJmdsb2JhbERhdGEsIG5hbWUuaXNOdWxsKCkg
PyAiIiA6IG5hbWUudXN0cmluZygpKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0p
OwotICAgICAgICB9CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiwg
SlNHbG9iYWxPYmplY3QqLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKTsKIAogICAgIHByaXZhdGU6
CiAgICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERhdGEmKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAppbmRleCA1
MDI4OTAyYzk5MmQxNGExMjU0YTczYTBkZGM2OWM5OWY3ZmEwYjYyLi41Yzk5ZDdhNjU0MzhkMWNl
NzlkYzdjYjUwNWE4NTc3YTNmNjk3YmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKQEAgLTQ2LDYgKzQ2LDEyIEBAIEpTQWN0aXZhdGlvbjo6
SlNBY3RpdmF0aW9uKENhbGxGcmFtZSogY2FsbEZyYW1lLCBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1
bmN0aW9uRXhlCiAgICAgLCBtX3JlcXVpcmVzRHluYW1pY0NoZWNrcyhmdW5jdGlvbkV4ZWN1dGFi
bGUtPnVzZXNFdmFsKCkpCiAgICAgLCBtX2FyZ3VtZW50c1JlZ2lzdGVyKGZ1bmN0aW9uRXhlY3V0
YWJsZS0+Z2VuZXJhdGVkQnl0ZWNvZGUoKS5hcmd1bWVudHNSZWdpc3RlcigpKQogeworICAgIGZp
bmlzaENyZWF0aW9uKGNhbGxGcmFtZSk7Cit9CisKK3ZvaWQgSlNBY3RpdmF0aW9uOjpmaW5pc2hD
cmVhdGlvbihDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bihjYWxsRnJhbWUtPmdsb2JhbERhdGEoKSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8p
KTsKIAogICAgIC8vIFdlIGhhdmUgdG8gbWFudWFsbHkgcmVmIGFuZCBkZXJlZiB0aGUgc3ltYm9s
IHRhYmxlIGFzIEpTVmFyaWFibGVPYmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBY3RpdmF0aW9uLmgKaW5kZXggZjE1OTFhYWExODBlYWUxM2YzNWY1OTIwNjQ4NDIwOWJi
M2Y4ZTBhZC4uZGEyZTQ2NTVlMDY5NGY3YzU5M2QzYWYxNzFkNjAwZmQwNzA2NjI1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgKQEAgLTc3LDYgKzc3
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBl
LCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IH0KIAogICAg
IHByb3RlY3RlZDoKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihDYWxsRnJhbWUqKTsKICAg
ICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSXNFbnZpcm9ubWVu
dFJlY29yZCB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc1Zpc2l0Q2hp
bGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNWYXJpYWJsZU9iamVjdDo6U3Ry
dWN0dXJlRmxhZ3M7CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5LmNwcAppbmRleCAxODVkN2FlYjZiZmM0NTI5MTZiYmZlYmIxNzEwNGRiMDc2NzVk
OTMyLi5jNjVhOTIzN2M3NDhkNmQ0NjA1MTM0NGVlMTdjMTUzOGUzNzY3MTAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcApAQCAtMTM0LDE5ICsxMzQsNiBAQCBK
U0FycmF5OjpKU0FycmF5KFZQdHJTdGVhbGluZ0hhY2tUeXBlKQogSlNBcnJheTo6SlNBcnJheShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNO
b25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiB7Ci0gICAgZmluaXNoQ3JlYXRp
b24oZ2xvYmFsRGF0YSk7Ci19Ci0KLUpTQXJyYXk6OkpTQXJyYXkoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgdW5zaWduZWQgaW5pdGlhbExlbmd0aCwgQXJy
YXlDcmVhdGlvbk1vZGUgY3JlYXRpb25Nb2RlKQotICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9i
YWxEYXRhLCBzdHJ1Y3R1cmUpCi17Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgaW5p
dGlhbExlbmd0aCwgY3JlYXRpb25Nb2RlKTsKLX0KLQotSlNBcnJheTo6SlNBcnJheShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBBcmdMaXN0JiBs
aXN0KQotICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCi17Ci0g
ICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgbGlzdCk7CiB9CiAKIHZvaWQgSlNBcnJheTo6
ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQpAQCAtMjQ5LDYgKzIzNiwy
NyBAQCB2b2lkIEpTQXJyYXk6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgY29uc3QgQXJnTGlzdCYgbGlzdCkKICAgICBIZWFwOjpoZWFwKHRoaXMpLT5yZXBvcnRFeHRy
YU1lbW9yeUNvc3Qoc3RvcmFnZVNpemUoaW5pdGlhbFN0b3JhZ2UpKTsKIH0KIAorSlNBcnJheSog
SlNBcnJheTo6Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUpCit7CisgICAgSlNBcnJheSogYXJyYXkgPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0FycmF5
PihnbG9iYWxEYXRhLmhlYXApKSBKU0FycmF5KGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7CisgICAg
YXJyYXktPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOworICAgIHJldHVybiBhcnJheTsKK30K
KworSlNBcnJheSogSlNBcnJheTo6Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIHVuc2lnbmVkIGluaXRpYWxMZW5ndGgsIEFycmF5Q3JlYXRpb25N
b2RlIGNyZWF0ZU1vZGUpCit7CisgICAgSlNBcnJheSogYXJyYXkgPSBuZXcgKGFsbG9jYXRlQ2Vs
bDxKU0FycmF5PihnbG9iYWxEYXRhLmhlYXApKSBKU0FycmF5KGdsb2JhbERhdGEsIHN0cnVjdHVy
ZSk7CisgICAgYXJyYXktPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGluaXRpYWxMZW5ndGgs
IGNyZWF0ZU1vZGUpOworICAgIHJldHVybiBhcnJheTsKK30KKworSlNBcnJheSogSlNBcnJheTo6
Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNv
bnN0IEFyZ0xpc3QmIGluaXRpYWxWYWx1ZXMpCit7CisgICAgSlNBcnJheSogYXJyYXkgPSBuZXcg
KGFsbG9jYXRlQ2VsbDxKU0FycmF5PihnbG9iYWxEYXRhLmhlYXApKSBKU0FycmF5KGdsb2JhbERh
dGEsIHN0cnVjdHVyZSk7CisgICAgYXJyYXktPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGlu
aXRpYWxWYWx1ZXMpOworICAgIHJldHVybiBhcnJheTsKK30KKwogSlNBcnJheTo6fkpTQXJyYXko
KQogewogICAgIEFTU0VSVCh2cHRyKCkgPT0gSlNHbG9iYWxEYXRhOjpqc0FycmF5VlB0cik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKaW5kZXggZThlMWZhOTJkNWZkNDAx
OTMxZTc4MjM1ZDMyNjU0MTM5ZDY2ZGZlNi4uODZkYWY4NDY3OTYwYjAwYzY5ZGRiNDhiZTg4MGVi
Njc0YTNmNTQzYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
cnJheS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaApAQCAt
NjIsOCArNjIsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAg
ZXhwbGljaXQgSlNBcnJheShKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAgSlNB
cnJheShKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqLCB1bnNpZ25lZCBpbml0aWFsTGVuZ3RoLCBB
cnJheUNyZWF0aW9uTW9kZSk7Ci0gICAgICAgIEpTQXJyYXkoSlNHbG9iYWxEYXRhJiwgU3RydWN0
dXJlKiwgY29uc3QgQXJnTGlzdCYgaW5pdGlhbFZhbHVlcyk7CiAKICAgICAgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihKU0dsb2JhbERhdGEmKTsKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihK
U0dsb2JhbERhdGEmLCB1bnNpZ25lZCBpbml0aWFsTGVuZ3RoLCBBcnJheUNyZWF0aW9uTW9kZSk7
CkBAIC03NSwyMCArNzMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSlNBcnJheShWUHRy
U3RlYWxpbmdIYWNrVHlwZSk7CiAgICAgICAgIHZpcnR1YWwgfkpTQXJyYXkoKTsKIAotICAgICAg
ICBzdGF0aWMgSlNBcnJheSogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9j
YXRlQ2VsbDxKU0FycmF5PihnbG9iYWxEYXRhLmhlYXApKSBKU0FycmF5KGdsb2JhbERhdGEsIHN0
cnVjdHVyZSk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHN0YXRpYyBKU0FycmF5KiBj
cmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgdW5z
aWduZWQgaW5pdGlhbExlbmd0aCwgQXJyYXlDcmVhdGlvbk1vZGUgY3JlYXRlTW9kZSkKLSAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEpTQXJyYXk+KGdsb2Jh
bERhdGEuaGVhcCkpIEpTQXJyYXkoZ2xvYmFsRGF0YSwgc3RydWN0dXJlLCBpbml0aWFsTGVuZ3Ro
LCBjcmVhdGVNb2RlKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgc3RhdGljIEpTQXJy
YXkqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBjb25zdCBBcmdMaXN0JiBpbml0aWFsVmFsdWVzKQotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SlNBcnJheT4oZ2xvYmFsRGF0YS5oZWFwKSkgSlNBcnJh
eShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUsIGluaXRpYWxWYWx1ZXMpOwotICAgICAgICB9CisgICAg
ICAgIHN0YXRpYyBKU0FycmF5KiBjcmVhdGUoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKik7Cisg
ICAgICAgIHN0YXRpYyBKU0FycmF5KiBjcmVhdGUoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiwg
dW5zaWduZWQgaW5pdGlhbExlbmd0aCwgQXJyYXlDcmVhdGlvbk1vZGUgY3JlYXRlTW9kZSk7Cisg
ICAgICAgIHN0YXRpYyBKU0FycmF5KiBjcmVhdGUoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiwg
Y29uc3QgQXJnTGlzdCYgaW5pdGlhbFZhbHVlcyk7CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFy
cmF5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcApp
bmRleCBiYmU3NjMyYTJlMjFhMzk5N2Q0NzM1ZWY2NmNkMWQzZjc2NzFhMDc5Li5mMTRmMWEzNmRh
MTJlY2QzNTM1NWM0NGM4NTIwMzQzZjBkNDQ5MjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCkBAIC0zOSwxMiArMzksMTMgQEAgSlNCeXRlQXJy
YXk6OkpTQnl0ZUFycmF5KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEJ5
dGVBcnJheSogc3RvcmEKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBzdHJ1Y3R1cmUpCiAgICAgLCBtX3N0b3JhZ2Uoc3RvcmFnZSkKIHsKLSAgICBmaW5pc2hDcmVh
dGlvbihleGVjKTsKIH0KICAgICAgICAgCiBKU0J5dGVBcnJheSogSlNCeXRlQXJyYXk6OmNyZWF0
ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBCeXRlQXJyYXkqIHN0b3Jh
Z2UpCiB7Ci0gICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEpTQnl0ZUFycmF5PigqZXhlYy0+
aGVhcCgpKSkgSlNCeXRlQXJyYXkoZXhlYywgc3RydWN0dXJlLCBzdG9yYWdlKTsKKyAgICBKU0J5
dGVBcnJheSogYXJyYXkgPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0J5dGVBcnJheT4oKmV4ZWMtPmhl
YXAoKSkpIEpTQnl0ZUFycmF5KGV4ZWMsIHN0cnVjdHVyZSwgc3RvcmFnZSk7CisgICAgYXJyYXkt
PmZpbmlzaENyZWF0aW9uKGV4ZWMpOworICAgIHJldHVybiBhcnJheTsKIH0KIAogI2lmICFBU1NF
UlRfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5j
cHAKaW5kZXggNDk5YWViNmQyNzQ4YzI5NDA4OTBiYzJiYmM3ZGQ4ZGE4NjRlYmVlZC4uNjM5NTFi
YTRlYjU1OTQxZjBhZDRiMTVhYzFkNzZiY2Q4ZGQ5ZTFhNiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKQEAgLTYxLDIxICs2MSwxMSBAQCBKU0Z1bmN0
aW9uOjpKU0Z1bmN0aW9uKFZQdHJTdGVhbGluZ0hhY2tUeXBlKQogewogfQogCi1KU0Z1bmN0aW9u
OjpKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5h
bWUsIE5hdGl2ZUV4ZWN1dGFibGUqIHRodW5rKQorSlNGdW5jdGlvbjo6SlNGdW5jdGlvbihFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogICAgIDogQmFzZShnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKICAgICAsIG1fZXhl
Y3V0YWJsZSgpCiAgICAgLCBtX3Njb3BlQ2hhaW4oZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBn
bG9iYWxPYmplY3QtPmdsb2JhbFNjb3BlQ2hhaW4oKSkKIHsKLSAgICBjb25zdHJ1Y3RvckJvZHko
ZXhlYywgbGVuZ3RoLCBuYW1lLCB0aHVuayk7Ci19Ci0KLUpTRnVuY3Rpb246OkpTRnVuY3Rpb24o
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgTmF0aXZlRnVu
Y3Rpb24gZnVuYykKLSAgICA6IEJhc2UoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCi0gICAgLCBt
X2V4ZWN1dGFibGUoKQotICAgICwgbV9zY29wZUNoYWluKGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhp
cywgZ2xvYmFsT2JqZWN0LT5nbG9iYWxTY29wZUNoYWluKCkpCi17Ci0gICAgLy8gQ2FuJ3QgZG8g
dGhpcyBkdXJpbmcgaW5pdGlhbGl6YXRpb24gYmVjYXVzZSBnZXRIb3N0RnVuY3Rpb24gbWlnaHQg
ZG8gYSBHQyBhbGxvY2F0aW9uLgotICAgIGNvbnN0cnVjdG9yQm9keShleGVjLCBsZW5ndGgsIG5h
bWUsICBleGVjLT5nbG9iYWxEYXRhKCkuZ2V0SG9zdEZ1bmN0aW9uKGZ1bmMpKTsKIH0KIAogSlNG
dW5jdGlvbjo6SlNGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEZ1bmN0aW9uRXhlY3V0YWJsZSog
ZXhlY3V0YWJsZSwgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW5Ob2RlKQpAQCAtODMsMTkgKzcz
LDQ3IEBAIEpTRnVuY3Rpb246OkpTRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBGdW5jdGlvbkV4
ZWN1dGFibGUqIGV4ZWN1dGFibGUsIFNjb3BlQ2hhCiAgICAgLCBtX2V4ZWN1dGFibGUoZXhlYy0+
Z2xvYmFsRGF0YSgpLCB0aGlzLCBleGVjdXRhYmxlKQogICAgICwgbV9zY29wZUNoYWluKGV4ZWMt
Pmdsb2JhbERhdGEoKSwgdGhpcywgc2NvcGVDaGFpbk5vZGUpCiB7Ci0gICAgQVNTRVJUKGluaGVy
aXRzKCZzX2luZm8pKTsKLSAgICBzZXRTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzY29w
ZUNoYWluTm9kZS0+Z2xvYmFsT2JqZWN0LT5uYW1lZEZ1bmN0aW9uU3RydWN0dXJlKCkpOwotICAg
IHB1dERpcmVjdE9mZnNldChleGVjLT5nbG9iYWxEYXRhKCksIHNjb3BlQ2hhaW5Ob2RlLT5nbG9i
YWxPYmplY3QtPmZ1bmN0aW9uTmFtZU9mZnNldCgpLCBleGVjdXRhYmxlLT5uYW1lVmFsdWUoKSk7
CiB9CiAKLWlubGluZSB2b2lkIEpTRnVuY3Rpb246OmNvbnN0cnVjdG9yQm9keShFeGVjU3RhdGUq
IGV4ZWMsIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEV4ZWN1dGFibGVCYXNl
KiBleGVjdXRhYmxlKQoraW5saW5lIHZvaWQgSlNGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24oRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQgbGVuZ3RoLCBj
b25zdCBJZGVudGlmaWVyJiBuYW1lLCBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSkKIHsKKyAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFs
T2JqZWN0KTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIG1fZXhlY3V0YWJs
ZS5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBleGVjdXRhYmxlKTsKICAgICBwdXREaXJl
Y3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5nbG9iYWxEYXRhKCkucHJvcGVydHlOYW1lcy0+
bmFtZSwganNTdHJpbmcoZXhlYywgbmFtZS5pc051bGwoKSA/ICIiIDogbmFtZS51c3RyaW5nKCkp
LCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7CiAgICAgcHV0RGlyZWN0KGV4ZWMt
Pmdsb2JhbERhdGEoKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIobGVu
Z3RoKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogfQogCitpbmxpbmUgdm9p
ZCBKU0Z1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgU2NvcGVD
aGFpbk5vZGUqIHNjb3BlQ2hhaW5Ob2RlKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGds
b2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOworICAgIEFTU0VSVChpbmhl
cml0cygmc19pbmZvKSk7CisgICAgc2V0U3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgc2Nv
cGVDaGFpbk5vZGUtPmdsb2JhbE9iamVjdC0+bmFtZWRGdW5jdGlvblN0cnVjdHVyZSgpKTsKKyAg
ICBwdXREaXJlY3RPZmZzZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzY29wZUNoYWluTm9kZS0+Z2xv
YmFsT2JqZWN0LT5mdW5jdGlvbk5hbWVPZmZzZXQoKSwgZXhlY3V0YWJsZS0+bmFtZVZhbHVlKCkp
OworfQorCitKU0Z1bmN0aW9uKiBKU0Z1bmN0aW9uOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50IGxl
bmd0aCwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIE5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmN0
aW9uKQoreworICAgIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlID0gZXhlYy0+Z2xvYmFsRGF0
YSgpLmdldEhvc3RGdW5jdGlvbihuYXRpdmVGdW5jdGlvbik7CisgICAgSlNGdW5jdGlvbiogZnVu
Y3Rpb24gPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0Z1bmN0aW9uPigqZXhlYy0+aGVhcCgpKSkgSlNG
dW5jdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7CisgICAgLy8gQ2FuJ3QgZG8g
dGhpcyBkdXJpbmcgaW5pdGlhbGl6YXRpb24gYmVjYXVzZSBnZXRIb3N0RnVuY3Rpb24gbWlnaHQg
ZG8gYSBHQyBhbGxvY2F0aW9uLgorICAgIGZ1bmN0aW9uLT5maW5pc2hDcmVhdGlvbihleGVjLCBn
bG9iYWxPYmplY3QsIGxlbmd0aCwgaWRlbnQsIGV4ZWN1dGFibGUpOworICAgIHJldHVybiBmdW5j
dGlvbjsKK30KK0pTRnVuY3Rpb24qIEpTRnVuY3Rpb246OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQg
bGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZl
RXhlY3V0YWJsZSkKK3sKKyAgICBKU0Z1bmN0aW9uKiBmdW5jdGlvbiA9IG5ldyAoYWxsb2NhdGVD
ZWxsPEpTRnVuY3Rpb24+KCpleGVjLT5oZWFwKCkpKSBKU0Z1bmN0aW9uKGV4ZWMsIGdsb2JhbE9i
amVjdCwgc3RydWN0dXJlKTsKKyAgICBmdW5jdGlvbi0+ZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xv
YmFsT2JqZWN0LCBsZW5ndGgsIGlkZW50LCBuYXRpdmVFeGVjdXRhYmxlKTsKKyAgICByZXR1cm4g
ZnVuY3Rpb247Cit9CitKU0Z1bmN0aW9uKiBKU0Z1bmN0aW9uOjpjcmVhdGUoRXhlY1N0YXRlKiBl
eGVjLCBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIFNjb3BlQ2hhaW5Ob2RlKiBzY29w
ZUNoYWluKQoreworICAgIEpTRnVuY3Rpb24qIGZ1bmN0aW9uID0gbmV3IChhbGxvY2F0ZUNlbGw8
SlNGdW5jdGlvbj4oKmV4ZWMtPmhlYXAoKSkpIEpTRnVuY3Rpb24oZXhlYywgZXhlY3V0YWJsZSwg
c2NvcGVDaGFpbik7CisgICAgZnVuY3Rpb24tPmZpbmlzaENyZWF0aW9uKGV4ZWMsIHNjb3BlQ2hh
aW4tPmdsb2JhbE9iamVjdC5nZXQoKSwgZXhlY3V0YWJsZSwgc2NvcGVDaGFpbik7CisgICAgcmV0
dXJuIGZ1bmN0aW9uOworfQorCisKIEpTRnVuY3Rpb246On5KU0Z1bmN0aW9uKCkKIHsKICAgICBB
U1NFUlQodnB0cigpID09IEpTR2xvYmFsRGF0YTo6anNGdW5jdGlvblZQdHIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IDhiNzNiMGJlMmYyYTI5OTdk
OTA5MDYwMTI5NzMwZDBkZjUwYTBkZDcuLjNlOWFkNmVmOGQ2MDgxOWFkZWFjMWYyYTMxMDBjOGVl
N2QxZmYwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVu
Y3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgK
QEAgLTQ2LDI1ICs0NiwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgZnJpZW5kIGNsYXNz
IERGRzo6SklUQ29kZUdlbmVyYXRvcjsKICAgICAgICAgZnJpZW5kIGNsYXNzIEpTR2xvYmFsRGF0
YTsKIAotICAgICAgICBKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlKiwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYsIE5hdGl2ZUZ1bmN0aW9uKTsK
LSAgICAgICAgSlNGdW5jdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZSosIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImLCBOYXRpdmVFeGVjdXRhYmxlKik7Cisg
ICAgICAgIEpTRnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
KTsKICAgICAgICAgSlNGdW5jdGlvbihFeGVjU3RhdGUqLCBGdW5jdGlvbkV4ZWN1dGFibGUqLCBT
Y29wZUNoYWluTm9kZSopOwogICAgICAgICAKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYg
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IEJhc2U7CiAKLSAgICAgICAgc3RhdGljIEpTRnVuY3Rp
b24qIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBpZGVu
dCwgTmF0aXZlRnVuY3Rpb24gbmF0aXZlRnVuYykKLSAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEpTRnVuY3Rpb24+KCpleGVjLT5oZWFwKCkpKSBKU0Z1bmN0
aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBsZW5ndGgsIGlkZW50LCBuYXRpdmVG
dW5jKTsKLSAgICAgICAgfQotICAgICAgICBzdGF0aWMgSlNGdW5jdGlvbiogY3JlYXRlKEV4ZWNT
dGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBOYXRpdmVFeGVjdXRh
YmxlKiBuYXRpdmVFeGVjKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxv
Y2F0ZUNlbGw8SlNGdW5jdGlvbj4oKmV4ZWMtPmhlYXAoKSkpIEpTRnVuY3Rpb24oZXhlYywgZ2xv
YmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGxlbmd0aCwgaWRlbnQsIG5hdGl2ZUV4ZWMpOwotICAgICAg
ICB9Ci0gICAgICAgIHN0YXRpYyBKU0Z1bmN0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBG
dW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmNFeGVjLCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbikK
LSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEpTRnVuY3Rp
b24+KCpleGVjLT5oZWFwKCkpKSBKU0Z1bmN0aW9uKGV4ZWMsIGZ1bmNFeGVjLCBzY29wZUNoYWlu
KTsKLSAgICAgICAgfQorICAgICAgICBzdGF0aWMgSlNGdW5jdGlvbiogY3JlYXRlKEV4ZWNTdGF0
ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRp
ZmllciYgbmFtZSwgTmF0aXZlRnVuY3Rpb24pOworICAgICAgICBzdGF0aWMgSlNGdW5jdGlvbiog
Y3JlYXRlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgaW50IGxlbmd0
aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgTmF0aXZlRXhlY3V0YWJsZSopOworICAgICAgICBz
dGF0aWMgSlNGdW5jdGlvbiogY3JlYXRlKEV4ZWNTdGF0ZSosIEZ1bmN0aW9uRXhlY3V0YWJsZSos
IFNjb3BlQ2hhaW5Ob2RlKik7CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIH5KU0Z1bmN0aW9u
KCk7CiAKQEAgLTEyMyw3ICsxMTMsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcm90ZWN0ZWQ6
CiAgICAgICAgIGNvbnN0IHN0YXRpYyB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRl
c0dldE93blByb3BlcnR5U2xvdCB8IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc1Zp
c2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0cnVj
dHVyZUZsYWdzOwogCi0gICAgICAgIHZvaWQgY29uc3RydWN0b3JCb2R5KEV4ZWNTdGF0ZSosIGlu
dCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEV4ZWN1dGFibGVCYXNlKik7CisgICAg
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBpbnQg
bGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBFeGVjdXRhYmxlQmFzZSopOworICAgICAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgRnVuY3Rp
b25FeGVjdXRhYmxlKiwgU2NvcGVDaGFpbk5vZGUqKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAg
IGV4cGxpY2l0IEpTRnVuY3Rpb24oVlB0clN0ZWFsaW5nSGFja1R5cGUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggYzIzMGQ3MDJiNTNm
ZDE3ZTVlNWRiZTIxNDI5YjAxOGY5MTEwMmQxYy4uODVjNDI5NjYzMWFlM2U2M2Q5MzgwMzVlYTcw
ODAwNGJmY2VlMDczMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5oCkBAIC0xNTksNyArMTU5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
ICAgICAsIG1fd2Vha1JhbmRvbShzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmFuZG9tTnVtYmVyKCkg
KiAoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpICsgMS4wKSkpCiAgICAgICAg
ICAgICAsIG1fZXZhbEVuYWJsZWQodHJ1ZSkKICAgICAgICAgewotICAgICAgICAgICAgY29uc3Ry
dWN0b3JCb2R5KHRoaXMpOworICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwg
dGhpcyk7CiAgICAgICAgIH0KIAogICAgICAgICBKU0dsb2JhbE9iamVjdChKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU09iamVjdCogdGhpc1ZhbHVlKQpA
QCAtMTY5LDExICsxNjksMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAsIG1fd2Vh
a1JhbmRvbShzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmFuZG9tTnVtYmVyKCkgKiAoc3RkOjpudW1l
cmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpICsgMS4wKSkpCiAgICAgICAgICAgICAsIG1fZXZh
bEVuYWJsZWQodHJ1ZSkKICAgICAgICAgewotICAgICAgICAgICAgY29uc3RydWN0b3JCb2R5KHRo
aXNWYWx1ZSk7CisgICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCB0aGlzVmFs
dWUpOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBjb25zdHJ1Y3RvckJvZHkoSlNPYmplY3Qq
IHRoaXNWYWx1ZSkKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTT2JqZWN0KiB0aGlzVmFsdWUpCiAgICAgICAgIHsKKyAgICAgICAgICAgIEJh
c2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgICAgICAgICAgQ09NUElMRV9BU1NF
UlQoSlNHbG9iYWxPYmplY3Q6OkFub255bW91c1Nsb3RDb3VudCA9PSAxLCBKU0dsb2JhbE9iamVj
dF9oYXNfb25seV9hX3NpbmdsZV9zbG90KTsKICAgICAgICAgICAgIHB1dFRoaXNUb0Fub255bW91
c1ZhbHVlKDApOwogICAgICAgICAgICAgaW5pdCh0aGlzVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCmluZGV4IDY3ZmRhMDUwYTYyODhkNzBh
OTQyOThjZTAyYTcyNmQ4MjhlMjMyMWQuLjEzMWJhYTdhZjMyMTI3M2M3ZGJlMDIwMTZjM2Y3ZjQw
M2M1OTM0ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90
QW5PYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2Jq
ZWN0LmgKQEAgLTQxLDcgKzQxLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTTm90QW5P
YmplY3QoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGV4
ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+Z2xvYmFsRGF0YSgpLm5vdEFuT2JqZWN0U3RydWN0dXJl
LmdldCgpKQogICAgICAgICB7Ci0gICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9i
YWxEYXRhKCkpOwogICAgICAgICB9CiAgICAgICAgIAogICAgIHB1YmxpYzoKQEAgLTQ5LDcgKzQ4
LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIEpTTm90QW5PYmplY3QqIGNy
ZWF0ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcg
KGFsbG9jYXRlQ2VsbDxKU05vdEFuT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgSlNOb3RBbk9iamVj
dChleGVjKTsKKyAgICAgICAgICAgIEpTTm90QW5PYmplY3QqIG9iamVjdCA9IG5ldyAoYWxsb2Nh
dGVDZWxsPEpTTm90QW5PYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBKU05vdEFuT2JqZWN0KGV4ZWMp
OworICAgICAgICAgICAgb2JqZWN0LT5maW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkp
OworICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRp
YyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
VmFsdWUgcHJvdG90eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPTk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2Jq
ZWN0LmNwcAppbmRleCAwNWJkZTI4MTlhMDZmOTE0OTQ4MjA5YmU0M2QzMzY4YzkwNGUwZjI4Li4x
NzMxNTJiMjkxOTNkZjIwMjQ1ODEyMzc2NzY4ZmJkODlkZTczNjBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcApAQCAtNTYsNiArNTYsMTIgQEAgbmFt
ZXNwYWNlIEpTQyB7CiBKU09OT2JqZWN0OjpKU09OT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNPYmplY3RXaXRoR2xvYmFs
T2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGds
b2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgSlNPTk9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9i
YWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKICAgICBBU1NFUlQoaW5oZXJp
dHMoJnNfaW5mbykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2Jq
ZWN0LmgKaW5kZXggNzdiZjQzNjk5MTFiNmVjNDBiMzBhY2Q4MzQyNzNlZGMzOTkzNWVhYS4uNDgw
ZTc0YmRiODM0OTM2YmQyOWY3MmU2YWNkZTI0NjE3ZGU2YTVmMiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaApAQCAtNDksNiArNDksNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKICAgICBwcm90
ZWN0ZWQ6CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqKTsKICAg
ICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0
T3duUHJvcGVydHlTbG90IHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgcHJpdmF0
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVj
dFdpdGhHbG9iYWxPYmplY3QuY3BwCmluZGV4IDg4NTUzMGYxMGY3OTkwMWRmZjY0ODQzYTc0MzQz
MDQ4OGY1ZjdhNGYuLmFlNzAzODA4YjBmYjQ1NGY1NWY1NDAzZjA2MTk5YjEzNzNlMGIyYzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2Jh
bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RX
aXRoR2xvYmFsT2JqZWN0LmNwcApAQCAtMzMsMTMgKzMzLDExIEBAIG5hbWVzcGFjZSBKU0Mgewog
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU05v
bkZpbmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7Ci0g
ICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVj
dCk7CiB9CiAKLUpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6SlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCitKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OkpTT2Jq
ZWN0V2l0aEdsb2JhbE9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSog
c3RydWN0dXJlKQogICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUp
CiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0KTsKIH0KIAog
dm9pZCBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKQEAgLTUwLDcgKzQ4
LDcgQEAgdm9pZCBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWwKICAgICBpZiAoIWdsb2JhbE9iamVjdCkKICAg
ICAgICAgY2xlYXJBbm9ueW1vdXNWYWx1ZShHbG9iYWxPYmplY3RTbG90KTsKICAgICBlbHNlCi0g
ICAgICAgIHB1dEFub255bW91c1ZhbHVlKGdsb2JhbERhdGEsIEdsb2JhbE9iamVjdFNsb3QsIGds
b2JhbE9iamVjdCk7CisgICAgICAgIHB1dEFub255bW91c1ZhbHVlKGdsb2JhbE9iamVjdC0+Z2xv
YmFsRGF0YSgpLCBHbG9iYWxPYmplY3RTbG90LCBnbG9iYWxPYmplY3QpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgKaW5kZXggMTMwZTA3ZDY5MDUyZmQyMWZiMmE3MjZm
MTIyODE3YzhhNzZmYmM4OC4uMzc5ODQ4YjY1NDM2NDU0OTFiNzJhNDVhYTFjYTU3YzU0MWIyZTI2
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogCiBwcm90ZWN0
ZWQ6CiAgICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlKik7Ci0gICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYsIEpTR2xv
YmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CisgICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KEpT
R2xvYmFsRGF0YSYsIFN0cnVjdHVyZSopOwogCiAgICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0
KFZQdHJTdGVhbGluZ0hhY2tUeXBlKQogICAgICAgICA6IEpTTm9uRmluYWxPYmplY3QoVlB0clN0
ZWFsaW5nSGFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3RhdGljU2NvcGVPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Rh
dGljU2NvcGVPYmplY3QuaAppbmRleCBiMTE5M2ZkYmRlZmVmYWUyMWZmNWY0Y2M0MzFkMzQyNDlj
ZTZhOGFjLi5mZWRjYjRlN2Y3YmVkN2I4OTEyM2U1MTgxNmVlNjI4ZDQ4YTg4MzAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5o
CkBAIC01MCwxNCArNTAsMTkgQEAgbmFtZXNwYWNlIEpTQ3sKICAgICAgICAgc3RhdGljIFN0cnVj
dHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBw
cm90bykgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG8sIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsgfQogCiAgICAgcHJvdGVjdGVkOgorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIEpTVmFsdWUgdmFsdWUsIHVu
c2lnbmVkIGF0dHJpYnV0ZXMpCisgICAgICAgIHsKKyAgICAgICAgICAgIEJhc2U6OmZpbmlzaENy
ZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CisgICAgICAgICAgICBtX3JlZ2lzdGVyU3RvcmUu
c2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgdmFsdWUpOworICAgICAgICAgICAgc3ltYm9s
VGFibGUoKS5hZGQoaWRlbnQuaW1wbCgpLCBTeW1ib2xUYWJsZUVudHJ5KC0xLCBhdHRyaWJ1dGVz
KSk7CisgICAgICAgIH0KICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gSXNFbnZpcm9ubWVudFJlY29yZCB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNW
YXJpYWJsZU9iamVjdDo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBwcml2YXRlOgogICAgICAgICBK
U1N0YXRpY1Njb3BlT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRl
bnQsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCiAgICAgICAgICAgICA6IEpT
VmFyaWFibGVPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5nbG9iYWxEYXRhKCkuc3Rh
dGljU2NvcGVTdHJ1Y3R1cmUuZ2V0KCksICZtX3N5bWJvbFRhYmxlLCByZWludGVycHJldF9jYXN0
PFJlZ2lzdGVyKj4oJm1fcmVnaXN0ZXJTdG9yZSArIDEpKQogICAgICAgICB7Ci0gICAgICAgICAg
ICBtX3JlZ2lzdGVyU3RvcmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgdmFsdWUpOwot
ICAgICAgICAgICAgc3ltYm9sVGFibGUoKS5hZGQoaWRlbnQuaW1wbCgpLCBTeW1ib2xUYWJsZUVu
dHJ5KC0xLCBhdHRyaWJ1dGVzKSk7CisgICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBp
ZGVudCwgdmFsdWUsIGF0dHJpYnV0ZXMpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBT
eW1ib2xUYWJsZSBtX3N5bWJvbFRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oCmluZGV4IGY3MWVkMzA5OTQ5YjMxMjM0YWRhZmM4OGU4
YTY0YTU4Njk1MjkyMDAuLjNmMTE4NGI5ZGQ4ODQ2NjMzMDQxMTg5YWZjNWI3Y2UxMDExZDhiZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0
LmgKQEAgLTc0LDcgKzc0LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAsIG1fc3lt
Ym9sVGFibGUoc3ltYm9sVGFibGUpCiAgICAgICAgICAgICAsIG1fcmVnaXN0ZXJzKHJlaW50ZXJw
cmV0X2Nhc3Q8V3JpdGVCYXJyaWVyPFVua25vd24+Kj4ocmVnaXN0ZXJzKSkKICAgICAgICAgewot
ICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAgICAgIH0KIAogICAg
ICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmgKaW5kZXggM2I0
MzgzMTI0MzhkYmM3M2UwODYwN2FlM2I2ZjBmZjQ5ZTFhZWRiYS4uM2U1ODlmMjcxNDNlMjRkNzA5
ZGIxNjBlZjhlYTE1YjdlNjA2NmU4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmgKQEAgLTUzLDcgKzUzLDYgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgaW5saW5lIEpTV3JhcHBlck9iamVjdDo6SlNXcmFwcGVyT2JqZWN0KEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgICAgIDogSlNOb25GaW5h
bE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiAgICAgewotICAgICAgICBmaW5pc2hDcmVh
dGlvbihnbG9iYWxEYXRhKTsKICAgICB9CiAKICAgICBpbmxpbmUgSlNWYWx1ZSBKU1dyYXBwZXJP
YmplY3Q6OmludGVybmFsVmFsdWUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9NYXRoT2JqZWN0LmNwcAppbmRleCBlNGM0YjViZWM4ZGQxZjliODRlNGVmN2IxNmE5MmY1
OTBiNTc3MjE5Li41ZWM1NmEzNmU3Mzc1NTlhMzBkZmIxMjA4YTBjMTNjZWJhOTg3YjZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcApAQCAtODcsNiAr
ODcsMTIgQEAgY29uc3QgQ2xhc3NJbmZvIE1hdGhPYmplY3Q6OnNfaW5mbyA9IHsgIk1hdGgiLCAm
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpzX2luZm8KIE1hdGhPYmplY3Q6Ok1hdGhPYmplY3Qo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKICAgICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3Qs
IHN0cnVjdHVyZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QpOwor
fQorCit2b2lkIE1hdGhPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihn
bG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKICAgICBBU1NFUlQoaW5o
ZXJpdHMoJnNfaW5mbykpOwogCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24oZXhlYy0+
Z2xvYmFsRGF0YSgpLCBJZGVudGlmaWVyKGV4ZWMsICJFIiksIGpzTnVtYmVyKGV4cCgxLjApKSwg
RG9udERlbGV0ZSB8IERvbnRFbnVtIHwgUmVhZE9ubHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTWF0aE9iamVjdC5oCmluZGV4IDljZmE4ZDAyN2RlM2NmODZkMmQzMjYwNzA3ZmU5
N2FkZTI2YTUxZjQuLjdmYmVkOTBiZmJkMmNiMTE1YWQ4NTI0ZmU0M2VkN2E0ZjYwYWUyOGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKQEAgLTQ3LDYgKzQ3
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKKyAgICAg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopOwogICAg
ICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRP
d25Qcm9wZXJ0eVNsb3QgfCBKU09iamVjdDo6U3RydWN0dXJlRmxhZ3M7CiAgICAgfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5jcHAKaW5kZXggMTM5
NDVjNzUwZTI1YjU2NTVlMTVhZmI2ZjcwNmExNmQxNzQ0NDVjMC4uMjI2NzZkMGZmYThjYzc0NmFk
MTZkNmU0MjhmM2JjOGNkNzBkNzYyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJPYmplY3QuY3BwCkBAIC0zNCw2ICszNCwxMiBAQCBjb25zdCBDbGFzc0luZm8g
TnVtYmVyT2JqZWN0OjpzX2luZm8gPSB7ICJOdW1iZXIiLCAmSlNXcmFwcGVyT2JqZWN0OjpzX2lu
Zm8sIDAsCiBOdW1iZXJPYmplY3Q6Ok51bWJlck9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNXcmFwcGVyT2JqZWN0KGdsb2JhbERh
dGEsIHN0cnVjdHVyZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKK30KKwor
dm9pZCBOdW1iZXJPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICBBU1NFUlQo
aW5oZXJpdHMoJnNfaW5mbykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OdW1iZXJPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlck9iamVjdC5oCmluZGV4IDdhYzgxZDYzOGE1MTFlZjg2NWMyMGY4NTMxMzBiOTBiNjFj
YWFlMGIuLjkwMWY1ZWI0YjBmM2I1NDE3ZmRjOTlkMjI1ZWVhMmY3MTM0NTIxZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oCkBAIC0yOCw2ICsyOCw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIE51bWJlck9iamVjdCA6IHB1YmxpYyBKU1dy
YXBwZXJPYmplY3QgewogICAgIHByb3RlY3RlZDoKICAgICAgICAgTnVtYmVyT2JqZWN0KEpTR2xv
YmFsRGF0YSYsIFN0cnVjdHVyZSopOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xv
YmFsRGF0YSYpOwogCiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpTV3JhcHBlck9iamVj
dCBCYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3Rv
dHlwZS5jcHAKaW5kZXggMDg3Y2QyNjBjZjU1ZDNmMTViMzM2NTI1MzZhNTZiYjc3NDAxNzk5ZC4u
NTA4OWE1ZmZkYmY3NzNkMGZmN2U4Njk5MjEzNWQ1NTVhYTI5NTc2NCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCkBAIC02MywxMSAr
NjMsMTAgQEAgY29uc3QgQ2xhc3NJbmZvIE9iamVjdFByb3RvdHlwZTo6c19pbmZvID0geyAiT2Jq
ZWN0IiwgJkpTTm9uRmluYWxPYmplY3Q6OnNfaW5mbywKIAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5f
Q0VMTChPYmplY3RQcm90b3R5cGUpOwogCi1PYmplY3RQcm90b3R5cGU6Ok9iamVjdFByb3RvdHlw
ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZSogc3R1Y3R1cmUpCitPYmplY3RQcm90b3R5cGU6Ok9iamVjdFByb3RvdHlwZShFeGVjU3RhdGUq
IGV4ZWMsIFN0cnVjdHVyZSogc3R1Y3R1cmUpCiAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGV4ZWMt
Pmdsb2JhbERhdGEoKSwgc3R1Y3R1cmUpCiAgICAgLCBtX2hhc05vUHJvcGVydGllc1dpdGhVSW50
MzJOYW1lcyh0cnVlKQogewotICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwg
Z2xvYmFsT2JqZWN0KTsKIH0KIAogdm9pZCBPYmplY3RQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9u
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlw
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKaW5k
ZXggMGEyYzhmZDQ4ZWU3ZDQ5ZGVhYmY5MWJlZTA1ODYwYjJmZTkzZGEzMS4uNTg0YWMzMGRmY2Ey
NDc2MDg3MDBkYzA2ZTdmYWFkZDQxMWRmZjgwNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKQEAgLTMxLDcgKzMxLDkgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICAgICAgc3RhdGljIE9iamVjdFByb3RvdHlwZSogY3JlYXRlKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxPYmpl
Y3RQcm90b3R5cGU+KCpleGVjLT5oZWFwKCkpKSBPYmplY3RQcm90b3R5cGUoZXhlYywgZ2xvYmFs
T2JqZWN0LCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgT2JqZWN0UHJvdG90eXBlKiBwcm90b3R5
cGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxPYmplY3RQcm90b3R5cGU+KCpleGVjLT5oZWFwKCkpKSBP
YmplY3RQcm90b3R5cGUoZXhlYywgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIHByb3RvdHlwZS0+
ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOworICAgICAg
ICAgICAgcmV0dXJuIHByb3RvdHlwZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25z
dCBDbGFzc0luZm8gc19pbmZvOwpAQCAtNDgsNyArNTAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBKU0dsb2JhbE9iamVjdCop
OwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgT2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0ZSosIEpT
R2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CisgICAgICAgIE9iamVjdFByb3RvdHlwZShFeGVj
U3RhdGUqLCBTdHJ1Y3R1cmUqKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1
Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rv
ci5jcHAKaW5kZXggNDc3OWIyNTZlMDRmNWRjM2MyNWE2YjZjMTQ5NDBjMzYzNjg0ZTRkMy4uYzhh
MTMzYjQyNTY4NzMxNWZmNmU4MjFjMGJhMjdhNTdhMTVhMzNlYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcApAQCAtMTA5LDgg
KzEwOSwxNCBAQCBSZWdFeHBDb25zdHJ1Y3Rvcjo6UmVnRXhwQ29uc3RydWN0b3IoRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogfQogCiBSZWdFeHBNYXRjaGVzQXJy
YXk6OlJlZ0V4cE1hdGNoZXNBcnJheShFeGVjU3RhdGUqIGV4ZWMsIFJlZ0V4cENvbnN0cnVjdG9y
UHJpdmF0ZSogZGF0YSkKLSAgICA6IEpTQXJyYXkoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCktPnJlZ0V4cE1hdGNoZXNBcnJheVN0cnVjdHVyZSgpLCBkYXRh
LT5sYXN0TnVtU3ViUGF0dGVybnMgKyAxLCBDcmVhdGVJbml0aWFsaXplZCkKKyAgICA6IEpTQXJy
YXkoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnJlZ0V4
cE1hdGNoZXNBcnJheVN0cnVjdHVyZSgpKQogeworICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmds
b2JhbERhdGEoKSwgZGF0YSk7Cit9CisKK3ZvaWQgUmVnRXhwTWF0Y2hlc0FycmF5OjpmaW5pc2hD
cmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFJlZ0V4cENvbnN0cnVjdG9yUHJpdmF0
ZSogZGF0YSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBkYXRhLT5s
YXN0TnVtU3ViUGF0dGVybnMgKyAxLCBDcmVhdGVJbml0aWFsaXplZCk7CiAgICAgUmVnRXhwQ29u
c3RydWN0b3JQcml2YXRlKiBkID0gbmV3IFJlZ0V4cENvbnN0cnVjdG9yUHJpdmF0ZTsKICAgICBk
LT5pbnB1dCA9IGRhdGEtPmxhc3RJbnB1dDsKICAgICBkLT5sYXN0SW5wdXQgPSBkYXRhLT5sYXN0
SW5wdXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBN
YXRjaGVzQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNo
ZXNBcnJheS5oCmluZGV4IGVkMjFiYzg5ZTVlMjdkMzYxZTY1MzM5ZTRkNDNkNmExNmVhYTRkZjIu
Ljg3ZDU5YzcxNGViNTRkZjI4MTczZGZlZGViZGVkNTQ2ZjY1MWMzYWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCkBAIC0zNyw2
ICszNyw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAgICAgICAgIHZpcnR1YWwgflJl
Z0V4cE1hdGNoZXNBcnJheSgpOwogCisgICAgcHJvdGVjdGVkOgorICAgICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIFJlZ0V4cENvbnN0cnVjdG9yUHJpdmF0ZSogZGF0YSk7
CisKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBPYmplY3QuY3BwCmluZGV4IDJjMTI2NTU5MmU4Njg1MzQ0OTI4ZWM0ZGUxMWRmZjE5
MDA0MTQyOTcuLjg0MWQ5Mzk0MTE3YWIwOTExNzM4ZDBjNDg1ZTNmZTUwYjVhMWRkMTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApAQCAtNjYs
NiArNjYsMTIgQEAgUmVnRXhwT2JqZWN0OjpSZWdFeHBPYmplY3QoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFIKICAgICA6IEpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKICAgICAsIGQoYWRvcHRQdHIobmV3
IFJlZ0V4cE9iamVjdERhdGEoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHRoaXMsIHJlZ0V4
cCkpKQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgUmVn
RXhwT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQor
eworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBn
bG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKaW5kZXggNzNmMjE1NDky
NjcwMDc5YjU5MzkyYTI4ZTVjNjEzZjNjZGYwYmUxMy4uYmNlNDU1YWY4MTJmOTFiYWJiMjI2MDcw
YWQyMGU5ZTA0NmYyNDExMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwT2JqZWN0LmgKQEAgLTc0LDYgKzc0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcm90
ZWN0ZWQ6CiAgICAgICAgIFJlZ0V4cE9iamVjdChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSos
IFJlZ0V4cCopOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0Kik7
CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRl
c1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU09iamVjdFdp
dGhHbG9iYWxPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNw
cAppbmRleCA5NmQ5NGQ4NGVhYmI1MjYwNTk2OTdmZTMzNmRhYWI3ODIxMzU0YjU0Li5lNjY2ZGVl
MTU3OTJiN2ZiZTg5N2U2MGQyYzUwM2Q2MjNiNzZmZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwCkBAIC0zMSw3
ICszMSw2IEBAIG5hbWVzcGFjZSBKU0MgewogU3RyaWN0RXZhbEFjdGl2YXRpb246OlN0cmljdEV2
YWxBY3RpdmF0aW9uKEV4ZWNTdGF0ZSogZXhlYykKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5nbG9iYWxEYXRhKCkuc3RyaWN0RXZhbEFjdGl2YXRpb25T
dHJ1Y3R1cmUuZ2V0KCkpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgp
KTsKIH0KIAogYm9vbCBTdHJpY3RFdmFsQWN0aXZhdGlvbjo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uaAppbmRleCA3Njk4MWZkYjQyODkxM2M2NzA2
NDFmODBiN2JkYjExYjVmMWFmODE0Li44YWEyMjM0Yzg3YzUxNTliZTU5ZDYyMGMyYWQ4MWE0MGUz
OTY4ZmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RF
dmFsQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmlj
dEV2YWxBY3RpdmF0aW9uLmgKQEAgLTM2LDcgKzM2LDkgQEAgcHVibGljOgogCiAgICAgc3RhdGlj
IFN0cmljdEV2YWxBY3RpdmF0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFN0cmljdEV2YWxBY3RpdmF0aW9uPigqZXhl
Yy0+aGVhcCgpKSkgU3RyaWN0RXZhbEFjdGl2YXRpb24oZXhlYyk7CisgICAgICAgIFN0cmljdEV2
YWxBY3RpdmF0aW9uKiBhY3RpdmF0aW9uID0gbmV3IChhbGxvY2F0ZUNlbGw8U3RyaWN0RXZhbEFj
dGl2YXRpb24+KCpleGVjLT5oZWFwKCkpKSBTdHJpY3RFdmFsQWN0aXZhdGlvbihleGVjKTsKKyAg
ICAgICAgYWN0aXZhdGlvbi0+ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKKyAg
ICAgICAgcmV0dXJuIGFjdGl2YXRpb247CiAgICAgfQogCiAgICAgdmlydHVhbCBib29sIGRlbGV0
ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCmluZGV4IDFkMGM3YWJmOThkMDg3
YzBiNTE3YjUyMDI0NmUyYThlZmViMzA3NjYuLmI4ZmFkOWU0OTczNzdhY2E3NDU3MDEzY2RhMzcw
M2I4ZjI3MDU5MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cmluZ09iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
T2JqZWN0LmNwcApAQCAtMzIsNiArMzIsMTIgQEAgY29uc3QgQ2xhc3NJbmZvIFN0cmluZ09iamVj
dDo6c19pbmZvID0geyAiU3RyaW5nIiwgJkpTV3JhcHBlck9iamVjdDo6c19pbmZvLCAwLAogU3Ry
aW5nT2JqZWN0OjpTdHJpbmdPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgSlNTdHJpbmcqIHN0cmluZykKICAgICA6IEpTV3JhcHBlck9iamVjdChn
bG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwg
c3RyaW5nKTsKK30KKwordm9pZCBTdHJpbmdPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSlNTdHJpbmcqIHN0cmluZykKK3sKKyAgICBCYXNlOjpmaW5pc2hD
cmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAg
IHNldEludGVybmFsVmFsdWUoZ2xvYmFsRGF0YSwgc3RyaW5nKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKaW5kZXggN2QxMzVjMWU0MTIyZmFlN2Zh
ZmYxOGRiMmUxYmEzN2Q3NWNkNDU1Zi4uMGIwYzIwMDY0OGJlYmY4YWU2NGI1Yzc3OWQxYTc1NjNj
MTk2NWJlYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0
LmgKQEAgLTYwLDYgKzYwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KIAogICAgIHBy
b3RlY3RlZDoKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBKU1N0
cmluZyopOwogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwg
SlNXcmFwcGVyT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKICAgICAgICAgU3RyaW5nT2JqZWN0KEpT
R2xvYmFsRGF0YSYsIFN0cnVjdHVyZSosIEpTU3RyaW5nKik7CiAgICAgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUv
Q2hhbmdlTG9nCmluZGV4IDEwYTY4NmRjYzY5ODEwZjZjNGY1ZjdkYTE3N2U1YWYwMGU0YWJkN2Eu
Ljc2OWU0NDA4OWNiZjA4YjdiMTA2NWEwOTE5N2ZjZWFkYzg1ZTdhZmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDExLTA4LTMwICBNYXJrIEhhaG5lbmJlcmcg
IDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgVW56aXAgaW5pdGlhbGl6YXRpb24g
bGlzdHMgYW5kIGNvbnN0cnVjdG9ycyBpbiBKU0NlbGwgaGllcmFyY2h5ICg0LzcpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzE3NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbXBsZXRlZCB0aGUgZm91
cnRoIGxldmVsIG9mIHRoZSByZWZhY3RvcmluZyB0byBhZGQgZmluaXNoQ3JlYXRpb24oKSAKKyAg
ICAgICAgbWV0aG9kcyB0byBhbGwgY2xhc3NlcyB3aXRoaW4gdGhlIEpTQ2VsbCBoaWVyYXJjaHkg
d2l0aCBub24tdHJpdmlhbCAKKyAgICAgICAgY29uc3RydWN0b3IgYm9kaWVzLgorCisgICAgICAg
IFRoaXMgcHJpbWFyaWx5IGNvbnNpc3RzIG9mIHB1c2hpbmcgdGhlIGNhbGxzIHRvIGZpbmlzaENy
ZWF0aW9uKCkgZG93biAKKyAgICAgICAgaW50byB0aGUgY29uc3RydWN0b3JzIG9mIHRoZSBzdWJj
bGFzc2VzIG9mIHRoZSBzZWNvbmQgbGV2ZWwgb2YgdGhlIGhpZXJhcmNoeSAKKyAgICAgICAgYXMg
d2VsbCBhcyBwdWxsaW5nIHRoZSBmaW5pc2hDcmVhdGlvbigpIGNhbGxzIG91dCBpbnRvIHRoZSBj
bGFzcydzIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgY3JlYXRlKCkgbWV0aG9kIGlmIGl0IGhhcyBv
bmUuICBEb2luZyBib3RoIHNpbXVsdGFuZW91c2x5IGFsbG93cyB1cyB0byAKKyAgICAgICAgbWFp
bnRhaW4gdGhlIGludmFyaWFudCB0aGF0IHRoZSBmaW5pc2hDcmVhdGlvbigpIG1ldGhvZCBjaGFp
biBpcyBjYWxsZWQgZXhhY3RseSAKKyAgICAgICAgb25jZSBkdXJpbmcgdGhlIGNyZWF0aW9uIG9m
IGFuIG9iamVjdCwgc2luY2UgY2FsbGluZyBpdCBhbnkgb3RoZXIgbnVtYmVyIG9mIAorICAgICAg
ICB0aW1lcyAoMCwgMiwgb3IgbW9yZSkgd2lsbCBjYXVzZSBhbiBhc3NlcnRpb24gZmFpbHVyZS4K
KworICAgICAgICAqIFVzZXJPYmplY3RJbXAuY3BwOgorICAgICAgICAoVXNlck9iamVjdEltcDo6
VXNlck9iamVjdEltcCk6CisgICAgICAgICogVXNlck9iamVjdEltcC5oOgorICAgICAgICAoVXNl
ck9iamVjdEltcDo6Y3JlYXRlKToKKwogMjAxMS0wOC0yOSAgTWFyayBIYWhuZW5iZXJnICA8bWhh
aG5lbmJlcmdAYXBwbGUuY29tPgogCiAgICAgICAgIFVuemlwIGluaXRpYWxpemF0aW9uIGxpc3Rz
IGFuZCBjb25zdHJ1Y3RvcnMgaW4gSlNDZWxsIGhpZXJhcmNoeSAoMy83KQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwCmluZGV4IDBkNGQ0NWFmNzJmOGMyNzRkMjAzMGZiZTNi
ODZiYWVjOWU0ZmQyMTYuLmFkMzY5M2IzYWQxMzA1ZTBhOWMyNDZlYjZjOTk4MTMzNjFlMGY0YmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKQEAgLTM4LDcgKzM4LDYg
QEAgVXNlck9iamVjdEltcDo6VXNlck9iamVjdEltcChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1UKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFs
RGF0YSwgc3RydWN0dXJlKQogICAgICwgZkpTVXNlck9iamVjdCgoSlNVc2VyT2JqZWN0Kil1c2Vy
T2JqZWN0LT5SZXRhaW4oKSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKIH0K
IAogVXNlck9iamVjdEltcDo6flVzZXJPYmplY3RJbXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2Vy
T2JqZWN0SW1wLmgKaW5kZXggOGVlOGUyYTcwNDdmODY5YTI5NzI2NWNjMWMyNmMzZjM2ZjkwOGE4
MC4uMTU5NjA3MDBjZmFjNWFhMDQ0M2E4OWJhODYzODRjYjdkMTY3N2UxNyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdEdsdWUvVXNlck9iamVjdEltcC5oCkBAIC00MCw3ICs0MCw5IEBAIHB1YmxpYzoKIAogICAg
IHN0YXRpYyBVc2VyT2JqZWN0SW1wKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNVc2VyT2JqZWN0KiB1c2VyT2JqZWN0KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFVzZXJPYmplY3RJbXA+KGdsb2JhbERhdGEu
aGVhcCkpIFVzZXJPYmplY3RJbXAoZ2xvYmFsRGF0YSwgc3RydWN0dXJlLCB1c2VyT2JqZWN0KTsK
KyAgICAgICAgVXNlck9iamVjdEltcCogb2JqZWN0ID0gbmV3IChhbGxvY2F0ZUNlbGw8VXNlck9i
amVjdEltcD4oZ2xvYmFsRGF0YS5oZWFwKSkgVXNlck9iamVjdEltcChnbG9iYWxEYXRhLCBzdHJ1
Y3R1cmUsIHVzZXJPYmplY3QpOworICAgICAgICBvYmplY3QtPmZpbmlzaENyZWF0aW9uKGdsb2Jh
bERhdGEpOworICAgICAgICByZXR1cm4gb2JqZWN0OwogICAgIH0KICAgICAKICAgICB2aXJ0dWFs
IH5Vc2VyT2JqZWN0SW1wKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWY0MWIyNTc5Y2ZmMjcyODg4MjRkNTI4
ZjM0YzE5YmMzMGJlOWZiOC4uMDU3MTVkMjE0ZGY3NmQwYjZmZmZhMDhkZGI0NGZkNjdkOWU2MzA1
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDExLTA4LTMwICBNYXJrIEhhaG5lbmJl
cmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgVW56aXAgaW5pdGlhbGl6YXRp
b24gbGlzdHMgYW5kIGNvbnN0cnVjdG9ycyBpbiBKU0NlbGwgaGllcmFyY2h5ICg0LzcpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzE3NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4K
KworICAgICAgICBDb21wbGV0ZWQgdGhlIGZvdXJ0aCBsZXZlbCBvZiB0aGUgcmVmYWN0b3Jpbmcg
dG8gYWRkIGZpbmlzaENyZWF0aW9uKCkgCisgICAgICAgIG1ldGhvZHMgdG8gYWxsIGNsYXNzZXMg
d2l0aGluIHRoZSBKU0NlbGwgaGllcmFyY2h5IHdpdGggbm9uLXRyaXZpYWwgCisgICAgICAgIGNv
bnN0cnVjdG9yIGJvZGllcy4KKworICAgICAgICBUaGlzIHByaW1hcmlseSBjb25zaXN0cyBvZiBw
dXNoaW5nIHRoZSBjYWxscyB0byBmaW5pc2hDcmVhdGlvbigpIGRvd24gCisgICAgICAgIGludG8g
dGhlIGNvbnN0cnVjdG9ycyBvZiB0aGUgc3ViY2xhc3NlcyBvZiB0aGUgc2Vjb25kIGxldmVsIG9m
IHRoZSBoaWVyYXJjaHkgCisgICAgICAgIGFzIHdlbGwgYXMgcHVsbGluZyB0aGUgZmluaXNoQ3Jl
YXRpb24oKSBjYWxscyBvdXQgaW50byB0aGUgY2xhc3MncyBjb3JyZXNwb25kaW5nCisgICAgICAg
IGNyZWF0ZSgpIG1ldGhvZCBpZiBpdCBoYXMgb25lLiAgRG9pbmcgYm90aCBzaW11bHRhbmVvdXNs
eSBhbGxvd3MgdXMgdG8gCisgICAgICAgIG1haW50YWluIHRoZSBpbnZhcmlhbnQgdGhhdCB0aGUg
ZmluaXNoQ3JlYXRpb24oKSBtZXRob2QgY2hhaW4gaXMgY2FsbGVkIGV4YWN0bHkgCisgICAgICAg
IG9uY2UgZHVyaW5nIHRoZSBjcmVhdGlvbiBvZiBhbiBvYmplY3QsIHNpbmNlIGNhbGxpbmcgaXQg
YW55IG90aGVyIG51bWJlciBvZiAKKyAgICAgICAgdGltZXMgKDAsIDIsIG9yIG1vcmUpIHdpbGwg
Y2F1c2UgYW4gYXNzZXJ0aW9uIGZhaWx1cmUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd1NoZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OkpT
RE9NV2luZG93U2hlbGwpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6Y3Jl
YXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmg6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdy
YXBwZXI6OkpTRE9NV3JhcHBlcik6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVXaW5k
b3dTaGVsbCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06
CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19y
dW50aW1lLmg6CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tOgorICAgICAg
ICAoSlNDOjpCaW5kaW5nczo6T2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpPYmpjRmFsbGJhY2tPYmpl
Y3RJbXApOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpm
aW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwOgorICAg
ICAgICAoSlNDOjpSdW50aW1lQXJyYXk6OlJ1bnRpbWVBcnJheSk6CisgICAgICAgIChKU0M6OlJ1
bnRpbWVBcnJheTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2Fy
cmF5Lmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcDoKKyAgICAgICAgKEpT
Qzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OlJ1bnRpbWVPYmplY3QpOgorICAgICAgICAoSlND
OjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJy
aWRnZS9ydW50aW1lX29iamVjdC5oOgorCiAyMDExLTA4LTMwICBBbnR0aSBLb2l2aXN0byAgPGFu
dHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBxdWVyeVNlbGVjdG9yL3F1ZXJ5U2VsZWN0b3JBbGwg
c2hvdWxkIHVzZSBzZWxlY3RvciBjaGVja2VyIGZhc3QgcGF0aCAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKaW5kZXggMDBmYWMwYTdlZTEwZDE3
Mzc2N2RkM2VjODVmNjhlOTc5NjA4MjVmNy4uNWQwZDQzNmNjOTY4NzNhZDlmYTAzOTVmMzU1Y2Vh
ZWUzMjE1Mzg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dTaGVsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dTaGVsbC5jcHAKQEAgLTQzLDExICs0MywxMCBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxM
KEpTRE9NV2luZG93U2hlbGwpOwogCiBjb25zdCBDbGFzc0luZm8gSlNET01XaW5kb3dTaGVsbDo6
c19pbmZvID0geyAiSlNET01XaW5kb3dTaGVsbCIsICZCYXNlOjpzX2luZm8sIDAsIDAgfTsKIAot
SlNET01XaW5kb3dTaGVsbDo6SlNET01XaW5kb3dTaGVsbChQYXNzUmVmUHRyPERPTVdpbmRvdz4g
d2luZG93LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCkKK0pT
RE9NV2luZG93U2hlbGw6OkpTRE9NV2luZG93U2hlbGwoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIERP
TVdyYXBwZXJXb3JsZCogd29ybGQpCiAgICAgOiBCYXNlKCp3b3JsZC0+Z2xvYmFsRGF0YSgpLCBz
dHJ1Y3R1cmUpCiAgICAgLCBtX3dvcmxkKHdvcmxkKQogewotICAgIGZpbmlzaENyZWF0aW9uKCp3
b3JsZC0+Z2xvYmFsRGF0YSgpLCB3aW5kb3cpOwogfQogCiB2b2lkIEpTRE9NV2luZG93U2hlbGw6
OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUGFzc1JlZlB0cjxET01X
aW5kb3c+IHdpbmRvdykKQEAgLTE4MSw2ICsxODAsMTMgQEAgdm9pZCogSlNET01XaW5kb3dTaGVs
bDo6b3BlcmF0b3IgbmV3KHNpemVfdCBzaXplKQogICAgIHJldHVybiBoZWFwLmFsbG9jYXRlKHNp
emUpOwogfQogCitKU0RPTVdpbmRvd1NoZWxsKiBKU0RPTVdpbmRvd1NoZWxsOjpjcmVhdGUoUGFz
c1JlZlB0cjxET01XaW5kb3c+IHdpbmRvdywgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRE9N
V3JhcHBlcldvcmxkKiB3b3JsZCkKK3sKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IG5l
dyBKU0RPTVdpbmRvd1NoZWxsKHN0cnVjdHVyZSwgd29ybGQpOworICAgIHNoZWxsLT5maW5pc2hD
cmVhdGlvbigqd29ybGQtPmdsb2JhbERhdGEoKSwgd2luZG93KTsKKyAgICByZXR1cm4gc2hlbGw7
IAorfQorCiAvLyAtLS0tCiAvLyBDb252ZXJzaW9uIG1ldGhvZHMKIC8vIC0tLS0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAppbmRleCA1NDU5NjYxMmM3
ZGE1MTIyYTM3NzU2NWVhNGEwYmUxN2U3MzAxMzA0Li4zMDI4MzRmZmM2Nzk1NDM0ZGJlNDdmNDNl
ZTkyZTY2YTY2N2I0Y2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd1NoZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dTaGVsbC5oCkBAIC01NSw3ICs1NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAg
ICAgICBET01XaW5kb3cqIGltcGwoKSBjb25zdDsKIAotICAgICAgICB2b2lkKiBvcGVyYXRvciBu
ZXcoc2l6ZV90KTsKKyAgICAgICAgc3RhdGljIEpTRE9NV2luZG93U2hlbGwqIGNyZWF0ZShQYXNz
UmVmUHRyPERPTVdpbmRvdz4sIEpTQzo6U3RydWN0dXJlKiwgRE9NV3JhcHBlcldvcmxkKik7CiAK
ICAgICAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpIAogICAgICAgICB7
CkBAIC02NSw5ICs2NSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIERPTVdyYXBw
ZXJXb3JsZCogd29ybGQoKSB7IHJldHVybiBtX3dvcmxkLmdldCgpOyB9CiAKICAgICBwcm90ZWN0
ZWQ6CisgICAgICAgIEpTRE9NV2luZG93U2hlbGwoSlNDOjpTdHJ1Y3R1cmUqLCBET01XcmFwcGVy
V29ybGQqKTsKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OkpTR2xvYmFsRGF0YSYs
IFBhc3NSZWZQdHI8RE9NV2luZG93Pik7CiAKICAgICBwcml2YXRlOgorICAgICAgICB2b2lkKiBv
cGVyYXRvciBuZXcoc2l6ZV90KTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJy
aWRlc1Zpc2l0Q2hpbGRyZW4gfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNl
OjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihK
U0M6OlNsb3RWaXNpdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdyYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBl
ci5oCmluZGV4IDlhNGFjYTVjNTFiOGNmZWI3NTMwYjJhNmUwZTc5ODQ1MWZkODU4ZTYuLjFiODIx
OTcwM2NmOTM5MjBkMGI4NzdjNzZkNzc2NWU3YWJmMTBiNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCkBAIC01OSw2ICs1OSw3IEBAIHByb3RlY3RlZDoKICAg
ICAgICAgLy8gbmV3IEphdmFTY3JpcHQgb2JqZWN0cyBvbiBkZXRhY2hlZCB3aW5kb3dzIGR1ZSB0
byBET01XaW5kb3c6OmRvY3VtZW50KCkKICAgICAgICAgLy8gbmVlZGluZyB0byByZWFjaCB0aHJv
dWdoIHRoZSBmcmFtZSB0byBnZXQgdG8gdGhlIERvY3VtZW50Ki4gIFNlZSBidWcgMjc2NDAuCiAg
ICAgICAgIC8vIEFTU0VSVChnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7
CisgICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9i
YWxPYmplY3QpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggODcwMjlkMWRiMDEyMzE0MjNiMWU4OGM1YWM1Zjk1
MTQwY2Q5NjE2YS4uZDI1YzcyMmE0OTVjMzVkMWRkYTFmYmE2NTY1MWJlNDc0MmYwMmU0MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAg
LTEwOCw3ICsxMDgsNyBAQCBKU0RPTVdpbmRvd1NoZWxsKiBTY3JpcHRDb250cm9sbGVyOjpjcmVh
dGVXaW5kb3dTaGVsbChET01XcmFwcGVyV29ybGQqIHdvcmxkKQogewogICAgIEFTU0VSVCghbV93
aW5kb3dTaGVsbHMuY29udGFpbnMod29ybGQpKTsKICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9
IEpTRE9NV2luZG93U2hlbGw6OmNyZWF0ZVN0cnVjdHVyZSgqd29ybGQtPmdsb2JhbERhdGEoKSwg
anNOdWxsKCkpOwotICAgIFN0cm9uZzxKU0RPTVdpbmRvd1NoZWxsPiB3aW5kb3dTaGVsbCgqd29y
bGQtPmdsb2JhbERhdGEoKSwgbmV3IEpTRE9NV2luZG93U2hlbGwobV9mcmFtZS0+ZG9tV2luZG93
KCksIHN0cnVjdHVyZSwgd29ybGQpKTsKKyAgICBTdHJvbmc8SlNET01XaW5kb3dTaGVsbD4gd2lu
ZG93U2hlbGwoKndvcmxkLT5nbG9iYWxEYXRhKCksIEpTRE9NV2luZG93U2hlbGw6OmNyZWF0ZSht
X2ZyYW1lLT5kb21XaW5kb3coKSwgc3RydWN0dXJlLCB3b3JsZCkpOwogICAgIFN0cm9uZzxKU0RP
TVdpbmRvd1NoZWxsPiB3aW5kb3dTaGVsbDIod2luZG93U2hlbGwpOwogICAgIG1fd2luZG93U2hl
bGxzLmFkZCh3b3JsZCwgd2luZG93U2hlbGwpOwogICAgIHdvcmxkLT5kaWRDcmVhdGVXaW5kb3dT
aGVsbCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KaW5kZXggZGVhYTVmODgwMDU5ZjkzNDJmMmQ5NThiZDk4ODI4YTFmNmVl
MGJkNS4uMTEyZWVkMGU4Y2E3OTVkZjVlNWQ0MjllMWViYjBmZWJkMThhNzlmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAg
LTEwNTcsNyArMTA1Nyw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgdmlydHVhbCB2b2lkIGRlZmluZUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0KiBnZXR0ZXJG
dW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcyk7XG4iKSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDdXN0b21Qcm90b3R5cGVEZWZpbmVHZXR0ZXIifTsKIAogICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICJcbnByaXZhdGU6XG4iKTsKLSAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiICAgICR7Y2xhc3NOYW1lfVByb3RvdHlwZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OlN0cnVjdHVyZSogc3Ry
dWN0dXJlKSA6IEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIGdsb2Jh
bE9iamVjdCwgc3RydWN0dXJlKSB7IH1cbiIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgJHtjbGFzc05hbWV9UHJvdG90eXBlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1
cmUpIDogSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJl
KSB7IGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCk7IH1cbiIpOwogCiAg
ICAgIyBzdHJ1Y3R1cmUgZmxhZ3MKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHJvdGVjdGVk
OlxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRp
bWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCmluZGV4IGQ4
MDE5MDEwNjc1OWUzMTYwZGY1M2U4YjNiMWRmMDc0NjUwYzc2ZWUuLjE3NTNjMGJjN2VlMDk2MTI4
M2FjY2RiNmY5YzVkN2VhMmZmYzU0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9vYmpjL29iamNfcnVudGltZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29i
amNfcnVudGltZS5oCkBAIC0xMTYsNiArMTE2LDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
U3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RU
eXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAg
fQogCitwcm90ZWN0ZWQ6CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCop
OworCiBwcml2YXRlOgogICAgIE9iamNGYWxsYmFja09iamVjdEltcChKU0dsb2JhbE9iamVjdCos
IFN0cnVjdHVyZSosIE9iamNJbnN0YW5jZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSk7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVz
R2V0T3duUHJvcGVydHlTbG90IHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCmluZGV4IDc1MGJjN2VlZmRlMWUzOGEx
MzY3NmNlYWYwOTIyZGU3MWY4NTk5ZGYuLmRmMGU3MWM3ZmVjYjYyZTE2Zjc1ZGE5MTIwMzFmYTk2
YjFhMmE3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVu
dGltZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0K
QEAgLTIwMSw2ICsyMDEsMTIgQEAgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpPYmpjRmFsbGJhY2tP
YmplY3RJbXAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWMKICAgICAsIF9pbnN0
YW5jZShpKQogICAgICwgX2l0ZW0ocHJvcGVydHlOYW1lKQogeworICAgIGZpbmlzaENyZWF0aW9u
KGdsb2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpmaW5pc2hD
cmVhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlz
aENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogICAg
IEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX2FycmF5LmNwcAppbmRleCBiNWY3YTA3OGIyYzAwY2Y4ZGZkYzgwOTBjN2FmODQwMjEyNGQ2
NTdiLi5lMDFhMTVmMzdjYzkxYzQ1OGVkYTE0MWM3NDg2ZDhjMjY5YzZkY2IwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC00MCw2ICs0MCwxMiBAQCBjb25zdCBD
bGFzc0luZm8gUnVudGltZUFycmF5OjpzX2luZm8gPSB7ICJSdW50aW1lQXJyYXkiLCAmSlNBcnJh
eTo6c19pbmZvLCAwLCAwCiBSdW50aW1lQXJyYXk6OlJ1bnRpbWVBcnJheShFeGVjU3RhdGUqIGV4
ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBCaW5kaW5nczo6QXJyYXkqIGFycmF5KQogICAgIDog
SlNBcnJheShleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsKKyAgICBmaW5pc2hDcmVh
dGlvbihleGVjLT5nbG9iYWxEYXRhKCksIGFycmF5KTsKK30KKwordm9pZCBSdW50aW1lQXJyYXk6
OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgQmluZGluZ3M6OkFycmF5
KiBhcnJheSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICBB
U1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHNldFN1YmNsYXNzRGF0YShhcnJheSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAppbmRleCBjYjdiYzYzNTc3NmQ4ZWJj
OTEwMzk1MzIwYWVmZGU0MmJjYjkwNmQ3Li44ZDhmNWFlNmJmNjhhNjMzODY1ZDBkMDJiZjY0M2Y5
NWU0NGE4OTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJh
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTc0LDYg
Kzc0LDggQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgorICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oSlNHbG9iYWxEYXRhJiwgQmluZGluZ3M6OkFycmF5Kik7CisKICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Qg
fCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNBcnJheTo6U3RydWN0dXJlRmxhZ3M7CiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAppbmRleCBm
NGQwYmFkZTVlOGJmYWE1OWQzYjkxNzAwMWEzZTQwNmJmNTk1OTc3Li45NjY0MGYwMDhmYWMxYWM0
NzE3NjRmZjg1ZTNiOGY2NDViOTJiZjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X29iamVjdC5jcHAKQEAgLTQxLDYgKzQxLDEyIEBAIFJ1bnRpbWVPYmplY3Q6OlJ1bnRpbWVPYmpl
Y3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlCiAg
ICAgOiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiAg
ICAgLCBtX2luc3RhbmNlKGluc3RhbmNlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9i
amVjdCk7Cit9CisKK3ZvaWQgUnVudGltZU9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxP
YmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKICAgICBBU1NFUlQoaW5oZXJpdHMo
JnNfaW5mbykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9vYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCmluZGV4
IDg2MjJlMzExZjI2NjA4YzU0NmRlODZlMGNmNGEzZDU1ODUzOTkyYTIuLjk5ZTA2ZTAxYzViYWY3
ODA3N2ZiOWE0YmRkZjkzYTVhNDRkOGMzYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX29iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X29iamVjdC5oCkBAIC03NCw2ICs3NCw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIFJ1
bnRpbWVPYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBQYXNz
UmVmUHRyPEluc3RhbmNlPik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVj
dCopOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRl
c0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU09iamVj
dFdpdGhHbG9iYWxPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGVmZThjNDNkYzUzMDM5MDE5NDZhMmJlYjUzNjU2NjhmZDM3ODg4MjkuLmI0ZmQyNDc3MGFj
M2RlZmY1OWI3YzA2ODA2NThjN2VhZGZmMjNkMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBA
QAorMjAxMS0wOC0zMCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgor
CisgICAgICAgIFVuemlwIGluaXRpYWxpemF0aW9uIGxpc3RzIGFuZCBjb25zdHJ1Y3RvcnMgaW4g
SlNDZWxsIGhpZXJhcmNoeSAoNC83KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjcxNzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDb21wbGV0ZWQgdGhlIGZvdXJ0aCBsZXZlbCBvZiB0aGUgcmVmYWN0b3Jp
bmcgdG8gYWRkIGZpbmlzaENyZWF0aW9uKCkgCisgICAgICAgIG1ldGhvZHMgdG8gYWxsIGNsYXNz
ZXMgd2l0aGluIHRoZSBKU0NlbGwgaGllcmFyY2h5IHdpdGggbm9uLXRyaXZpYWwgCisgICAgICAg
IGNvbnN0cnVjdG9yIGJvZGllcy4KKworICAgICAgICBUaGlzIHByaW1hcmlseSBjb25zaXN0cyBv
ZiBwdXNoaW5nIHRoZSBjYWxscyB0byBmaW5pc2hDcmVhdGlvbigpIGRvd24gCisgICAgICAgIGlu
dG8gdGhlIGNvbnN0cnVjdG9ycyBvZiB0aGUgc3ViY2xhc3NlcyBvZiB0aGUgc2Vjb25kIGxldmVs
IG9mIHRoZSBoaWVyYXJjaHkgCisgICAgICAgIGFzIHdlbGwgYXMgcHVsbGluZyB0aGUgZmluaXNo
Q3JlYXRpb24oKSBjYWxscyBvdXQgaW50byB0aGUgY2xhc3MncyBjb3JyZXNwb25kaW5nCisgICAg
ICAgIGNyZWF0ZSgpIG1ldGhvZCBpZiBpdCBoYXMgb25lLiAgRG9pbmcgYm90aCBzaW11bHRhbmVv
dXNseSBhbGxvd3MgdXMgdG8gCisgICAgICAgIG1haW50YWluIHRoZSBpbnZhcmlhbnQgdGhhdCB0
aGUgZmluaXNoQ3JlYXRpb24oKSBtZXRob2QgY2hhaW4gaXMgY2FsbGVkIGV4YWN0bHkgCisgICAg
ICAgIG9uY2UgZHVyaW5nIHRoZSBjcmVhdGlvbiBvZiBhbiBvYmplY3QsIHNpbmNlIGNhbGxpbmcg
aXQgYW55IG90aGVyIG51bWJlciBvZiAKKyAgICAgICAgdGltZXMgKDAsIDIsIG9yIG1vcmUpIHdp
bGwgY2F1c2UgYW4gYXNzZXJ0aW9uIGZhaWx1cmUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkpTTlBPYmpl
Y3Q6OkpTTlBPYmplY3QpOgorICAgICAgICAoV2ViS2l0OjpKU05QT2JqZWN0OjpmaW5pc2hDcmVh
dGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3Qu
aDoKKwogMjAxMS0wOC0zMCAgQWxleGlzIE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3Nh
Lm9yZz4KIAogICAgICAgICBbUXRdW1dLMl0gTWFrZSBtb3VzZSBvdmVyIHdvcmsgYWdhaW4gZm9y
IFFEZXNrdG9wV2ViVmlldy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAppbmRleCAzM2VkYmU5MjJkNmI4NWQ2
ODk3MDg1NWM5NzE1ZGRhODMxMDliNmM0Li4yMjkxMGY1Y2E0NzY3NjY1YWEzOGZjOGVjNGRjZGNl
OTVmYWZkYWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCkBAIC01NSw2ICs1NSwxMiBAQCBKU05QT2Jq
ZWN0OjpKU05QT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE5QUnVudGltZU9i
amVjdE1hcCogb2JqZWN0TQogICAgICwgbV9vYmplY3RNYXAob2JqZWN0TWFwKQogICAgICwgbV9u
cE9iamVjdChucE9iamVjdCkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QpOwor
fQorCit2b2lkIEpTTlBPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9i
YWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsK
IAogICAgIC8vIFdlIHNob3VsZCBuZXZlciBoYXZlIGFuIE5QSlNPYmplY3QgaW5zaWRlIGEgSlNO
UE9iamVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9KU05QT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvSlNOUE9iamVjdC5oCmluZGV4IDJlYTEyMjgyYjFiM2FlZmVmMTY5ZjIzNzE1Nzc2
NGE2NGE1N2FkMjIuLjc1ODIyYzNjNTk2NzNkOGNkYjdhNDdiZWJjODYxZDNiZDhiNjliZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBPYmplY3QuaApAQCAtNTcsNiArNTcsOSBAQCBwdWJsaWM6CiAKICAgICBOUE9iamVjdCog
bnBPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX25wT2JqZWN0OyB9CiAKK3Byb3RlY3RlZDoKKyAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKKwogcHJpdmF0ZToK
ICAgICBKU05QT2JqZWN0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBOUFJ1bnRpbWVPYmplY3RNYXAq
LCBOUE9iamVjdCosIEpTQzo6U3RydWN0dXJlKik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105874</attachid>
            <date>2011-08-31 18:22:55 -0700</date>
            <delta_ts>2011-08-31 19:10:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67174-20110831182254.patch</filename>
            <type>text/plain</type>
            <size>85898</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQyMjMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcAppbmRleCBmYTlkMjE2ZGQxMTI1MDEyN2Vl
Njg1ZmUxZWM4ZDU5ZmYyNjhjOTllLi45NTA0YWQ4MGQ4NTNmM2M2NTVmODQyOGQ3ZDE2YTY1ZmVj
YjgzMDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuY3BwCkBAIC00Myw2ICs0MywxMiBAQCBKU0NhbGxiYWNrQ29uc3RydWN0b3I6
OkpTQ2FsbGJhY2tDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
YwogICAgICwgbV9jbGFzcyhqc0NsYXNzKQogICAgICwgbV9jYWxsYmFjayhjYWxsYmFjaykKIHsK
KyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QsIGpzQ2xhc3MpOworfQorCit2b2lkIEpT
Q2FsbGJhY2tDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDbGFzc1JlZiBqc0NsYXNzKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChp
bmhlcml0cygmc19pbmZvKSk7CiAgICAgaWYgKG1fY2xhc3MpCiAgICAgICAgIEpTQ2xhc3NSZXRh
aW4oanNDbGFzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuaAppbmRleCA0MGFhYmNmMTkyMTMxZDQxNDdiMDc4Mzg5OTkwOTlmOGExZTUx
ZWRhLi45MTE5MWRiNWY5Njc5OWUyMGNhNDZlOTEwMTRlNWVhNGFjNjY4Y2Q3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmgKQEAgLTUy
LDYgKzUyLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgSlNDYWxsYmFja0NvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgSlNDbGFzc1JlZiwgSlNPYmplY3RDYWxs
QXNDb25zdHJ1Y3RvckNhbGxiYWNrKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
T2JqZWN0KiwgSlNDbGFzc1JlZik7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdz
OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuaAppbmRleCBlZTk5MGEwMmZjZmI5OTRjMWQ0ODFlMjc4NTdlY2MzODA4MDBjNmI1Li45ZWU2
NzkzMDFlNWEyMzhlYTE3MDkzYzljOGQ1ZTJhNWUyMGM3NmM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTI0LDE2ICsxMjQsMjEgQEAgcHJv
dGVjdGVkOgogICAgIC8vIGZ1bmN0aW9uYWxpdHkgaGVyZS4KICAgICB2b2lkKiBvcGVyYXRvciBu
ZXcoc2l6ZV90LCB2b2lkKiBwdHIpIHsgcmV0dXJuIHB0cjsgfQogCisgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oSlNHbG9iYWxEYXRhJik7CisKIHB1YmxpYzoKICAgICB0eXBlZGVmIFBhcmVudCBCYXNl
OwogCiAgICAgc3RhdGljIEpTQ2FsbGJhY2tPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0Ns
YXNzUmVmIGNsYXNzUmVmLCB2b2lkKiBkYXRhKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAo
YWxsb2NhdGVDZWxsPEpTQ2FsbGJhY2tPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBKU0NhbGxiYWNr
T2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBjbGFzc1JlZiwgZGF0YSk7Cisg
ICAgICAgIEpTQ2FsbGJhY2tPYmplY3QqIGNhbGxiYWNrT2JqZWN0ID0gbmV3IChhbGxvY2F0ZUNl
bGw8SlNDYWxsYmFja09iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIEpTQ2FsbGJhY2tPYmplY3QoZXhl
YywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGNsYXNzUmVmLCBkYXRhKTsKKyAgICAgICAgcmV0
dXJuIGNhbGxiYWNrT2JqZWN0OwogICAgIH0KICAgICBzdGF0aWMgSlNDYWxsYmFja09iamVjdCog
Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDbGFzc1JlZiBjbGFzc1JlZiwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNl
bGw8SlNDYWxsYmFja09iamVjdD4oZ2xvYmFsRGF0YS5oZWFwKSkgSlNDYWxsYmFja09iamVjdChn
bG9iYWxEYXRhLCBjbGFzc1JlZiwgc3RydWN0dXJlKTsKKyAgICAgICAgSlNDYWxsYmFja09iamVj
dCogY2FsbGJhY2tPYmplY3QgPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0NhbGxiYWNrT2JqZWN0Pihn
bG9iYWxEYXRhLmhlYXApKSBKU0NhbGxiYWNrT2JqZWN0KGdsb2JhbERhdGEsIGNsYXNzUmVmLCBz
dHJ1Y3R1cmUpOworICAgICAgICByZXR1cm4gY2FsbGJhY2tPYmplY3Q7CiAgICAgfQogCiAgICAg
dm9pZCBzZXRQcml2YXRlKHZvaWQqIGRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAppbmRleCA2OTEwZTU2ZmY4Y2E0
OTk0YjYzMzZhODdhZDg2ZWQwZTE2OGM3Y2E2Li4yMjNkOWI2NWEzNDk3YTI0ZWRiMjA5NWRmOTQ3
N2FhNGNhYTBmZDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tPYmplY3RGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaApAQCAtNTQsOCArNTQsNyBAQCBKU0NhbGxiYWNrT2Jq
ZWN0PFBhcmVudD46OkpTQ2FsbGJhY2tPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9i
amVjdCogZ2xvYgogICAgIDogUGFyZW50KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogICAgICwg
bV9jYWxsYmFja09iamVjdERhdGEoYWRvcHRQdHIobmV3IEpTQ2FsbGJhY2tPYmplY3REYXRhKGRh
dGEsIGpzQ2xhc3MpKSkKIHsKLSAgICBBU1NFUlQoUGFyZW50Ojppbmhlcml0cygmc19pbmZvKSk7
Ci0gICAgaW5pdChleGVjKTsKKyAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3Qp
OwogfQogCiAvLyBHbG9iYWwgb2JqZWN0IGNvbnN0cnVjdG9yLgpAQCAtNjUsNiArNjQsMjIgQEAg
SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpKU0NhbGxiYWNrT2JqZWN0KEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNDbGFzc1JlZgogICAgIDogUGFyZW50KGdsb2JhbERhdGEsIHN0cnVjdHVy
ZSkKICAgICAsIG1fY2FsbGJhY2tPYmplY3REYXRhKGFkb3B0UHRyKG5ldyBKU0NhbGxiYWNrT2Jq
ZWN0RGF0YSgwLCBqc0NsYXNzKSkpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7
Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Cit2b2lkIEpTQ2FsbGJhY2tPYmplY3Q8UGFy
ZW50Pjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xv
YmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOworICAgIEFTU0VSVChQYXJlbnQ6OmluaGVyaXRzKCZz
X2luZm8pKTsKKyAgICBpbml0KGV4ZWMpOworfQorCisvLyBUaGlzIGlzIGp1c3QgZm9yIEdsb2Jh
bCBvYmplY3QsIHNvIHdlIGNhbiBhc3N1bWUgdGhhdCBCYXNlOjpmaW5pc2hDcmVhdGlvbiBpcyBK
U0dsb2JhbE9iamVjdDo6Y29uc3RydWN0b3JCb2R5LgordGVtcGxhdGUgPGNsYXNzIFBhcmVudD4K
K3ZvaWQgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEpCit7CisgICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOwogICAgIEFT
U0VSVChQYXJlbnQ6OmluaGVyaXRzKCZzX2luZm8pKTsKICAgICBBU1NFUlQoUGFyZW50Ojppc0ds
b2JhbE9iamVjdCgpKTsKICAgICBpbml0KHN0YXRpY19jYXN0PEpTR2xvYmFsT2JqZWN0Kj4odGhp
cyktPmdsb2JhbEV4ZWMoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuSlNWQUxVRTY0b25seS5leHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuSlNWQUxVRTY0b25seS5leHAKaW5kZXggZWFhOWY1MTM5ZjIyZTAzYzgwZWQ3
Y2Y0NzkyZTQ4ZGFmOTE2YTYxMS4uMTM5NTk3ZjljYjA3YzVkNDhiZWQxODk4NGVjNDc0N2Y0YjRm
MzQzOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLkpT
VkFMVUU2NG9ubHkuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5KU1ZBTFVFNjRvbmx5LmV4cApAQCAtMSArMSwyIEBACi1fX1pOM0pTQzEwSlNGdW5jdGlvbkMx
RVBOU185RXhlY1N0YXRlRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRWlSS05T
XzEwSWRlbnRpZmllckVQRlB2UzJfRQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUuZXhwCmluZGV4IDlmNGEzYmRjYTIxM2IzYjViNTJmNThmZjQ2YjFiMzcwYjBkODVkZTcu
LjI3NDVhNDcxZDRkMTgyM2Q0MWQ5MzJkZTA0NjZmOGM3YWU5OGQ5Y2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cApAQCAtMTEwLDEzICsxMTAsMTcgQEAgX19aTjNK
U0MxMElkZW50aWZpZXI0ZnJvbUVQTlNfOUV4ZWNTdGF0ZUVpCiBfX1pOM0pTQzEwSWRlbnRpZmll
cjRmcm9tRVBOU185RXhlY1N0YXRlRWoKIF9fWk4zSlNDMTBJZGVudGlmaWVyNWVxdWFsRVBLTjNX
VEYxMFN0cmluZ0ltcGxFUEtjCiBfX1pOM0pTQzEwSWRlbnRpZmllcjh0b1VJbnQzMkVSS05TXzdV
U3RyaW5nRVJiCitfX1pOM0pTQzEwSlNGdW5jdGlvbjE0ZmluaXNoQ3JlYXRpb25FUE5TXzlFeGVj
U3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RFUE5TXzE4RnVuY3Rpb25FeGVjdXRhYmxlRVBOU18x
NFNjb3BlQ2hhaW5Ob2RlRQorX19aTjNKU0MxMEpTRnVuY3Rpb24xNGZpbmlzaENyZWF0aW9uRVBO
U185RXhlY1N0YXRlRVBOU18xNEpTR2xvYmFsT2JqZWN0RWlSS05TXzEwSWRlbnRpZmllckVQTlNf
MTRFeGVjdXRhYmxlQmFzZUUKIF9fWk4zSlNDMTBKU0Z1bmN0aW9uNG5hbWVFUE5TXzlFeGVjU3Rh
dGVFCitfX1pOM0pTQzEwSlNGdW5jdGlvbjZjcmVhdGVFUE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNH
bG9iYWxPYmplY3RFUE5TXzlTdHJ1Y3R1cmVFaVJLTlNfMTBJZGVudGlmaWVyRVBGUHZTMl9FCiBf
X1pOM0pTQzEwSlNGdW5jdGlvbjZzX2luZm9FCitfX1pOM0pTQzEwSlNGdW5jdGlvbkMxRVBOU185
RXhlY1N0YXRlRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRQogX19aTjNKU0Mx
MHRocm93RXJyb3JFUE5TXzlFeGVjU3RhdGVFTlNfN0pTVmFsdWVFCiBfX1pOM0pTQzEwdGhyb3dF
cnJvckVQTlNfOUV4ZWNTdGF0ZUVQTlNfOEpTT2JqZWN0RQogX19aTjNKU0MxMUpTQnl0ZUFycmF5
MTNzX2RlZmF1bHRJbmZvRQogX19aTjNKU0MxMUpTQnl0ZUFycmF5MTVjcmVhdGVTdHJ1Y3R1cmVF
Uk5TXzEySlNHbG9iYWxEYXRhRU5TXzdKU1ZhbHVlRVBLTlNfOUNsYXNzSW5mb0UKLV9fWk4zSlND
MTFKU0J5dGVBcnJheTZjcmVhdGVFUE5TXzlFeGVjU3RhdGVFUE5TXzlTdHJ1Y3R1cmVFUE4zV1RG
OUJ5dGVBcnJheUUKK19fWk4zSlNDMTFKU0J5dGVBcnJheUMxRVBOU185RXhlY1N0YXRlRVBOU185
U3RydWN0dXJlRVBOM1dURjlCeXRlQXJyYXlFCiBfX1pOM0pTQzExUGFyc2VyQXJlbmE1cmVzZXRF
dgogX19aTjNKU0MxMWNoZWNrU3ludGF4RVBOU185RXhlY1N0YXRlRVJLTlNfMTBTb3VyY2VDb2Rl
RQogX19aTjNKU0MxMWNyZWF0ZUVycm9yRVBOU185RXhlY1N0YXRlRVJLTlNfN1VTdHJpbmdFCkBA
IC0xMzMsNiArMTM3LDcgQEAgX19aTjNKU0MxMkpTR2xvYmFsRGF0YTE0ZHVtcFNhbXBsZURhdGFF
UE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pTQzEySlNHbG9iYWxEYXRhMTRyZXNldERhdGVDYWNoZUV2
CiBfX1pOM0pTQzEySlNHbG9iYWxEYXRhMTRzaGFyZWRJbnN0YW5jZUV2CiBfX1pOM0pTQzEySlNH
bG9iYWxEYXRhMTVkdW1wUmVnRXhwVHJhY2VFdgorX19aTjNKU0MxMkpTR2xvYmFsRGF0YTE1Z2V0
SG9zdEZ1bmN0aW9uRVBGUHZQTlNfOUV4ZWNTdGF0ZUVFCiBfX1pOM0pTQzEySlNHbG9iYWxEYXRh
MjJjbGVhckJ1aWx0aW5TdHJ1Y3R1cmVzRXYKICNpZm5kZWYgTkRFQlVHCiBfX1pOM0pTQzEySlNH
bG9iYWxEYXRhMjNyZWxlYXNlRXhlY3V0YWJsZU1lbW9yeUV2CkBAIC0xOTYsNyArMjAxLDcgQEAg
X19aTjNKU0MxN0J5dGVjb2RlR2VuZXJhdG9yMjFzZXREdW1wc0dlbmVyYXRlZENvZGVFYgogX19a
TjNKU0MxN1Byb3BlcnR5TmFtZUFycmF5M2FkZEVQTjNXVEYxMFN0cmluZ0ltcGxFCiBfX1pOM0pT
QzE3Y29uc3RydWN0RnVuY3Rpb25FUE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RF
UktOU183QXJnTGlzdEVSS05TXzEwSWRlbnRpZmllckVSS05TXzdVU3RyaW5nRWkKIF9fWk4zSlND
MTdjcmVhdGVTeW50YXhFcnJvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzdVU3RyaW5nRQotX19aTjNK
U0MxOERlYnVnZ2VyQWN0aXZhdGlvbkMxRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfOEpTT2JqZWN0
RQorX19aTjNKU0MxOERlYnVnZ2VyQWN0aXZhdGlvbjZjcmVhdGVFUk5TXzEySlNHbG9iYWxEYXRh
RVBOU184SlNPYmplY3RFCiBfX1pOM0pTQzE4UHJvcGVydHlEZXNjcmlwdG9yMTFzZXRXcml0YWJs
ZUViCiBfX1pOM0pTQzE4UHJvcGVydHlEZXNjcmlwdG9yMTJzZXRVbmRlZmluZWRFdgogX19aTjNK
U0MxOFByb3BlcnR5RGVzY3JpcHRvcjEzc2V0RGVzY3JpcHRvckVOU183SlNWYWx1ZUVqCkBAIC0y
MTksOCArMjI0LDkgQEAgX19aTjNKU0MyM0Fic3RyYWN0U2FtcGxpbmdDb3VudGVyNGR1bXBFdgog
X19aTjNKU0MyM29iamVjdFByb3RvRnVuY1RvU3RyaW5nRVBOU185RXhlY1N0YXRlRQogX19aTjNK
U0MyM3NldFVwU3RhdGljRnVuY3Rpb25TbG90RVBOU185RXhlY1N0YXRlRVBLTlNfOUhhc2hFbnRy
eUVQTlNfOEpTT2JqZWN0RVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKIF9f
Wk4zSlNDMjREeW5hbWljR2xvYmFsT2JqZWN0U2NvcGVDMUVSTlNfMTJKU0dsb2JhbERhdGFFUE5T
XzE0SlNHbG9iYWxPYmplY3RFCitfX1pOM0pTQzI0SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0MTRm
aW5pc2hDcmVhdGlvbkVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzE0SlNHbG9iYWxPYmplY3RFCitf
X1pOM0pTQzI0SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0QzJFUk5TXzEySlNHbG9iYWxEYXRhRVBO
U185U3RydWN0dXJlRQogX19aTjNKU0MyNEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEMyRVBOU18x
NEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRQotX19aTjNKU0MyNEpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdEMyRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfMTRKU0dsb2JhbE9iamVjdEVQTlNf
OVN0cnVjdHVyZUUKIF9fWk4zSlNDMjRjcmVhdGVTdGFja092ZXJmbG93RXJyb3JFUE5TXzlFeGVj
U3RhdGVFCiBfX1pOM0pTQzI1ZXZhbHVhdGVJbkdsb2JhbENhbGxGcmFtZUVSS05TXzdVU3RyaW5n
RVJOU183SlNWYWx1ZUVQTlNfMTRKU0dsb2JhbE9iamVjdEUKIF9fWk4zSlNDMzVjcmVhdGVJbnRl
cnJ1cHRlZEV4ZWN1dGlvbkV4Y2VwdGlvbkVQTlNfMTJKU0dsb2JhbERhdGFFCkBAIC0yNjksMTIg
KzI3NSwxNSBAQCBfX1pOM0pTQzZKU0xvY2tDMUVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDNlJl
Z0V4cEQxRXYKIF9fWk4zSlNDNlJlZ0V4cDZjcmVhdGVFUk5TXzEySlNHbG9iYWxEYXRhRVJLTlNf
N1VTdHJpbmdFTlNfMTFSZWdFeHBGbGFnc0UKIF9fWk4zSlNDN0pTQXJyYXkxM3Zpc2l0Q2hpbGRy
ZW5FUk5TXzExU2xvdFZpc2l0b3JFCitfX1pOM0pTQzdKU0FycmF5MTRmaW5pc2hDcmVhdGlvbkVS
TlNfMTJKU0dsb2JhbERhdGFFCitfX1pOM0pTQzdKU0FycmF5MTRmaW5pc2hDcmVhdGlvbkVSTlNf
MTJKU0dsb2JhbERhdGFFUktOU183QXJnTGlzdEUKIF9fWk4zSlNDN0pTQXJyYXkxNXNldFN1YmNs
YXNzRGF0YUVQdgogX19aTjNKU0M3SlNBcnJheTE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhl
Y1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCitfX1pOM0pTQzdKU0FycmF5NmNyZWF0ZUVSTlNf
MTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFUktOU183QXJnTGlzdEUKK19fWk4zSlNDN0pT
QXJyYXk2Y3JlYXRlRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfOVN0cnVjdHVyZUUKIF9fWk4zSlND
N0pTQXJyYXk2c19pbmZvRQogX19aTjNKU0M3SlNBcnJheTlzZXRMZW5ndGhFagogX19aTjNKU0M3
SlNBcnJheUMxRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfOVN0cnVjdHVyZUUKLV9fWk4zSlNDN0pT
QXJyYXlDMUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFUktOU183QXJnTGlzdEUK
IF9fWk4zSlNDN0pTQXJyYXlDMkVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFCiBf
X1pOM0pTQzdKU0FycmF5RDJFdgogX19aTjNKU0M3SlNWYWx1ZTEzaXNWYWxpZENhbGxlZUV2CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCmlu
ZGV4IGQxY2ZmNzg2Mzc3YTBkNDEzNjJjZDJlZmI3Yjg1ZWMzOTJlMDViYzQuLjhlNGQyY2E2NGJh
YzM4NGNlYjhkYjExMzNmYWEwZmIzNjAzMTY1NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUuZGVmCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ov
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCkBAIC05LDExICs5LDkgQEAgRVhQT1JU
UwogICAgID8/MER5bmFtaWNHbG9iYWxPYmplY3RTY29wZUBKU0NAQFFBRUBBQVZKU0dsb2JhbERh
dGFAMUBQQVZKU0dsb2JhbE9iamVjdEAxQEBaICAKICAgICA/PzBJbnRlcm5hbEZ1bmN0aW9uQEpT
Q0BASUFFQFBBVkpTR2xvYmFsRGF0YUAxQFBBVkpTR2xvYmFsT2JqZWN0QDFAUEFWU3RydWN0dXJl
QDFAQUJWSWRlbnRpZmllckAxQEBaCiAgICAgPz8wSlNBcnJheUBKU0NAQElBRUBBQVZKU0dsb2Jh
bERhdGFAMUBQQVZTdHJ1Y3R1cmVAMUBAWgotICAgID8/MEpTQXJyYXlASlNDQEBJQUVAQUFWSlNH
bG9iYWxEYXRhQDFAUEFWU3RydWN0dXJlQDFAQUJWQXJnTGlzdEAxQEBaCi0gICAgPz8wSlNGdW5j
dGlvbkBKU0NAQEFBRUBQQVZFeGVjU3RhdGVAMUBQQVZKU0dsb2JhbE9iamVjdEAxQFBBVlN0cnVj
dHVyZUAxQEhBQlZJZGVudGlmaWVyQDFAUDZJX0owQFpAWgogICAgID8/MEpTTG9ja0BKU0NAQFFB
RUBQQVZFeGVjU3RhdGVAMUBAWgotICAgID8/MEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEBKU0NA
QElBRUBBQVZKU0dsb2JhbERhdGFAMUBQQVZKU0dsb2JhbE9iamVjdEAxQFBBVlN0cnVjdHVyZUAx
QEBaCiAgICAgPz8wSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0QEpTQ0BASUFFQFBBVkpTR2xvYmFs
T2JqZWN0QDFAUEFWU3RydWN0dXJlQDFAQFoKKyAgICA/PzBKU09iamVjdFdpdGhHbG9iYWxPYmpl
Y3RASlNDQEBJQUVAQUFWSlNHbG9iYWxEYXRhQDFAUEFWU3RydWN0dXJlQDFAQFoKICAgICA/PzBN
RDVAV1RGQEBRQUVAWFoKICAgICA/PzBNdXRleEBXVEZAQFFBRUBYWgogICAgID8/MFJlZkNvdW50
ZWRMZWFrQ291bnRlckBXVEZAQFFBRUBQQkRAWgpAQCAtOTUsNyArOTMsMTAgQEAgRVhQT1JUUwog
ICAgID9jb252ZXJ0VVRGMTZUb1VURjhAVW5pY29kZUBXVEZAQFlBP0FXNENvbnZlcnNpb25SZXN1
bHRAMTJAUEFQQl9XUEJfV1BBUEFEUEFEX05AWgogICAgID9jb252ZXJ0VVRGOFRvVVRGMTZAVW5p
Y29kZUBXVEZAQFlBP0FXNENvbnZlcnNpb25SZXN1bHRAMTJAUEFQQkRQQkRQQVBBX1dQQV9XX05A
WgogICAgID9jcmVhdGVAQnl0ZUFycmF5QFdURkBAU0E/QVY/JFBhc3NSZWZQdHJAVkJ5dGVBcnJh
eUBXVEZAQEAyQElAWgorICAgID9jcmVhdGVASlNBcnJheUBKU0NAQFNBUEFWMTJAQUFWSlNHbG9i
YWxEYXRhQDJAUEFWU3RydWN0dXJlQDJAQFoKKyAgICA/Y3JlYXRlQEpTQXJyYXlASlNDQEBTQVBB
VjEyQEFBVkpTR2xvYmFsRGF0YUAyQFBBVlN0cnVjdHVyZUAyQEFCVkFyZ0xpc3RAMkBAWgogICAg
ID9jcmVhdGVASlNCeXRlQXJyYXlASlNDQEBTQVBBVjEyQFBBVkV4ZWNTdGF0ZUAyQFBBVlN0cnVj
dHVyZUAyQFBBVkJ5dGVBcnJheUBXVEZAQEBaCisgICAgP2NyZWF0ZUBKU0Z1bmN0aW9uQEpTQ0BA
U0FQQVYxMkBQQVZFeGVjU3RhdGVAMkBQQVZKU0dsb2JhbE9iamVjdEAyQFBBVlN0cnVjdHVyZUAy
QEhBQlZJZGVudGlmaWVyQDJAUDZJX0owQFpAWgogICAgID9jcmVhdGVASlNHbG9iYWxEYXRhQEpT
Q0BAU0E/QVY/JFBhc3NSZWZQdHJAVkpTR2xvYmFsRGF0YUBKU0NAQEBXVEZAQFc0VGhyZWFkU3Rh
Y2tUeXBlQDJAVzRIZWFwU2l6ZUAyQEBaCiAgICAgP2NyZWF0ZUBPcGFxdWVKU1N0cmluZ0BAU0E/
QVY/JFBhc3NSZWZQdHJAVU9wYXF1ZUpTU3RyaW5nQEBAV1RGQEBBQlZVU3RyaW5nQEpTQ0BAQFoK
ICAgICA/Y3JlYXRlQFJlZ0V4cEBKU0NAQFNBUEFWMTJAQUFWSlNHbG9iYWxEYXRhQDJAQUJWVVN0
cmluZ0AyQFc0UmVnRXhwRmxhZ3NAMkBAWgpAQCAtMTY3LDYgKzE2OCw3IEBAIEVYUE9SVFMKICAg
ICA/ZmFzdFplcm9lZE1hbGxvY0BXVEZAQFlBUEFYSUBaCiAgICAgP2ZpbGxHZXR0ZXJQcm9wZXJ0
eVNsb3RASlNPYmplY3RASlNDQEBRQUVYQUFWUHJvcGVydHlTbG90QDJAUEFWPyRXcml0ZUJhcnJp
ZXJCYXNlQFc0VW5rbm93bkBKU0NAQEAyQEBaCiAgICAgP2ZpbmFsaXplQFdlYWtIYW5kbGVPd25l
ckBKU0NAQFVBRVhWPyRIYW5kbGVAVzRVbmtub3duQEpTQ0BAQDJAUEFYQFoKKyAgICA/ZmluaXNo
Q3JlYXRpb25ASlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0QEpTQ0BASUFFWEFBVkpTR2xvYmFsRGF0
YUAyQFBBVkpTR2xvYmFsT2JqZWN0QDJAQFoKICAgICA/Zm9jdXNAUHJvZmlsZUBKU0NAQFFBRVhQ
QlZQcm9maWxlTm9kZUAyQEBaCiAgICAgP2Zyb21ASWRlbnRpZmllckBKU0NAQFNBP0FWMTJAUEFW
RXhlY1N0YXRlQDJASEBaCiAgICAgP2Zyb21ASWRlbnRpZmllckBKU0NAQFNBP0FWMTJAUEFWRXhl
Y1N0YXRlQDJASUBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIv
RGVidWdnZXJBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9E
ZWJ1Z2dlckFjdGl2YXRpb24uY3BwCmluZGV4IGFlOGE1YWNkNmE4NTcwYWQ3MzdjZTBlMDBjYzlk
NWE2OGE5NDA5ZGQuLmE3MTAxZGNiNmJhYTQwZmY0ZmUwZWZhMzJkMWQ1NWI2OGE5NDE0ZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRp
b24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2
YXRpb24uY3BwCkBAIC0zMCwxMCArMzAsMTYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLURlYnVn
Z2VyQWN0aXZhdGlvbjo6RGVidWdnZXJBY3RpdmF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNPYmplY3QqIGFjdGl2YXRpb24pCitEZWJ1Z2dlckFjdGl2YXRpb246OkRlYnVnZ2VyQWN0
aXZhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCiAgICAgOiBKU05vbkZpbmFsT2JqZWN0
KGdsb2JhbERhdGEsIGdsb2JhbERhdGEuZGVidWdnZXJBY3RpdmF0aW9uU3RydWN0dXJlLmdldCgp
KQogewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGFjdGl2YXRpb24pOworfQorCitE
ZWJ1Z2dlckFjdGl2YXRpb24qIERlYnVnZ2VyQWN0aXZhdGlvbjo6Y3JlYXRlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNPYmplY3QqIG9iamVjdCkKK3sKKyAgICBEZWJ1Z2dlckFjdGl2YXRp
b24qIGFjdGl2YXRpb24gPSBuZXcgKGFsbG9jYXRlQ2VsbDxEZWJ1Z2dlckFjdGl2YXRpb24+KGds
b2JhbERhdGEuaGVhcCkpIERlYnVnZ2VyQWN0aXZhdGlvbihnbG9iYWxEYXRhKTsKKyAgICBhY3Rp
dmF0aW9uLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBvYmplY3QpOworICAgIHJldHVybiBh
Y3RpdmF0aW9uOwogfQogCiB2b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6ZmluaXNoQ3JlYXRpb24o
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU09iamVjdCogYWN0aXZhdGlvbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAppbmRl
eCAzNDQ0YmQ4NGU1ZTZjMGE0YzRmZDJjYzgwOWY3ZGYyOGM1ZDhkNTMzLi5kODNiMmY3MGZjNGIw
YjhhYTU5OWRmNDE0YzVmMDcyYWNkOTg0ZDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCkBAIC0zNCwxMiArMzQsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSlNOb25GaW5hbE9i
amVjdCBCYXNlOwogCi0gICAgICAgIHN0YXRpYyBEZWJ1Z2dlckFjdGl2YXRpb24qIGNyZWF0ZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTT2JqZWN0KiBvYmplY3QpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIERlYnVnZ2VyQWN0aXZhdGlvbiogYWN0aXZhdGlvbiA9IG5ldyAoYWxsb2NhdGVD
ZWxsPERlYnVnZ2VyQWN0aXZhdGlvbj4oZ2xvYmFsRGF0YS5oZWFwKSkgRGVidWdnZXJBY3RpdmF0
aW9uKGdsb2JhbERhdGEsIG9iamVjdCk7Ci0gICAgICAgICAgICByZXR1cm4gYWN0aXZhdGlvbjsK
LSAgICAgICAgfQotCisgICAgICAgIHN0YXRpYyBEZWJ1Z2dlckFjdGl2YXRpb24qIGNyZWF0ZShK
U0dsb2JhbERhdGEmLCBKU09iamVjdCopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGls
ZHJlbihTbG90VmlzaXRvciYpOwogICAgICAgICB2aXJ0dWFsIFVTdHJpbmcgY2xhc3NOYW1lKCkg
Y29uc3Q7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKQEAgLTY0
LDcgKzU5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
SlNHbG9iYWxEYXRhJiwgSlNPYmplY3QqIGFjdGl2YXRpb24pOwogCiAgICAgcHJpdmF0ZToKLSAg
ICAgICAgRGVidWdnZXJBY3RpdmF0aW9uKEpTR2xvYmFsRGF0YSYsIEpTT2JqZWN0Kik7CisgICAg
ICAgIERlYnVnZ2VyQWN0aXZhdGlvbihKU0dsb2JhbERhdGEmKTsKICAgICAgICAgV3JpdGVCYXJy
aWVyPEpTQWN0aXZhdGlvbj4gbV9hY3RpdmF0aW9uOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKaW5kZXggMDlkNTVmMjE2MzU1NTQxZTRiZGRmYjIy
MjU4MWI3NmYwOTMxODg3ZS4uN2QwYWYzZGU0ZjI4NWZkNGI2NmMwOGExZmJjN2U4MWU1MjRkYzFm
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKQEAgLTY0LDEy
ICs2NCwxNCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIEFyZ3VtZW50cyogY3Jl
YXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiAgICAg
ICAgIHsKICAgICAgICAgICAgIEFyZ3VtZW50cyogYXJndW1lbnRzID0gbmV3IChhbGxvY2F0ZUNl
bGw8QXJndW1lbnRzPihnbG9iYWxEYXRhLmhlYXApKSBBcmd1bWVudHMoY2FsbEZyYW1lKTsKKyAg
ICAgICAgICAgIGFyZ3VtZW50cy0+ZmluaXNoQ3JlYXRpb24oY2FsbEZyYW1lKTsKICAgICAgICAg
ICAgIHJldHVybiBhcmd1bWVudHM7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0YXRp
YyBBcmd1bWVudHMqIGNyZWF0ZU5vUGFyYW1ldGVycyhKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQogICAgICAgICB7CiAgICAgICAgICAgICBBcmd1bWVudHMq
IGFyZ3VtZW50cyA9IG5ldyAoYWxsb2NhdGVDZWxsPEFyZ3VtZW50cz4oZ2xvYmFsRGF0YS5oZWFw
KSkgQXJndW1lbnRzKGNhbGxGcmFtZSwgTm9QYXJhbWV0ZXJzKTsKKyAgICAgICAgICAgIGFyZ3Vt
ZW50cy0+ZmluaXNoQ3JlYXRpb24oY2FsbEZyYW1lLCBOb1BhcmFtZXRlcnMpOwogICAgICAgICAg
ICAgcmV0dXJuIGFyZ3VtZW50czsKICAgICAgICAgfQogCkBAIC0xNjYsMTQgKzE2OCwxMiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGNhbGxGcmFtZS0+Z2xv
YmFsRGF0YSgpLCBjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+YXJndW1lbnRzU3Ry
dWN0dXJlKCkpCiAgICAgICAgICwgZChhZG9wdFB0cihuZXcgQXJndW1lbnRzRGF0YSkpCiAgICAg
ewotICAgICAgICBmaW5pc2hDcmVhdGlvbihjYWxsRnJhbWUpOwogICAgIH0KIAogICAgIGlubGlu
ZSBBcmd1bWVudHM6OkFyZ3VtZW50cyhDYWxsRnJhbWUqIGNhbGxGcmFtZSwgTm9QYXJhbWV0ZXJz
VHlwZSkKICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgp
LCBjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+YXJndW1lbnRzU3RydWN0dXJlKCkp
CiAgICAgICAgICwgZChhZG9wdFB0cihuZXcgQXJndW1lbnRzRGF0YSkpCiAgICAgewotICAgICAg
ICBmaW5pc2hDcmVhdGlvbihjYWxsRnJhbWUsIE5vUGFyYW1ldGVycyk7CiAgICAgfQogICAgIAog
ICAgIGlubGluZSB2b2lkIEFyZ3VtZW50czo6ZmluaXNoQ3JlYXRpb24oQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVBy
b3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlw
ZS5jcHAKaW5kZXggNzhjZTAxMmQxYjg1Y2Y0YzY0NzA1MjBkM2UwNjM4Y2Y2Yzc1Yjk4Yy4uOTk2
NzRiYjIzYjQ5ODE4YjJmM2EzNDg0YzI2NmUwMTM5ZDg2ZWY0NiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtMTE3LDYgKzExNywx
MiBAQCBjb25zdCBDbGFzc0luZm8gQXJyYXlQcm90b3R5cGU6OnNfaW5mbyA9IHsiQXJyYXkiLCAm
SlNBcnJheTo6c19pbmZvLCAwLCBFeGVjU3RhdAogQXJyYXlQcm90b3R5cGU6OkFycmF5UHJvdG90
eXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQog
ICAgIDogSlNBcnJheShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogewor
ICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgQXJyYXlQcm90b3R5
cGU6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAg
QmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpOwogICAgIEFT
U0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxEYXRhKCksIDAsIGdsb2JhbE9iamVjdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaAppbmRleCAxMjRjNjFhYzRkYzc5ODM4
NWRlZWE3ODdkZDY0ZDViY2I2ZmJhMjU4Li45YTYyOGUwYzY5M2NhOWQ3N2U3NzZhODZhOTlkODJh
MzA1YjdjN2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJv
dG90eXBlLmgKQEAgLTQ5LDYgKzQ5LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KIAog
ICAgIHByb3RlY3RlZDoKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVj
dCopOworCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNTbG90Q291bnQg
PSBKU0FycmF5OjpBbm9ueW1vdXNTbG90Q291bnQgKyAxOwogICAgIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAKaW5kZXggZTI0YTMwYTRi
YjU0YWU1MDBlZDBlOWQ3MTY1ZmM5Y2U3YTVkOWE2My4uYjllMzNkYzQ4NDI5OGI2Y2VlNjc0ZTE4
ZDU0YTg3ZjYyZGFkZmQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQm9vbGVhbk9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Qm9vbGVhbk9iamVjdC5jcHAKQEAgLTMwLDYgKzMwLDEyIEBAIGNvbnN0IENsYXNzSW5mbyBCb29s
ZWFuT2JqZWN0OjpzX2luZm8gPSB7ICJCb29sZWFuIiwgJkpTV3JhcHBlck9iamVjdDo6c19pbmZv
LCAwCiBCb29sZWFuT2JqZWN0OjpCb29sZWFuT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU1dyYXBwZXJPYmplY3QoZ2xvYmFsRGF0
YSwgc3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOworfQorCit2
b2lkIEJvb2xlYW5PYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICBBU1NFUlQo
aW5oZXJpdHMoJnNfaW5mbykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Cb29sZWFuT2JqZWN0LmgKaW5kZXggNzBlZDEyNjEyY2ZlOTU3MzdhMDEzZTBkN2M3NDYzMWNi
OWMwNjdlZS4uODQ2MTBkOWI4MWY1MGUxZGFiOGQ4MzQxNWRkNDc1Mjg1NDg5N2U1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuaApAQCAtMjgsNiAr
MjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBCb29sZWFuT2JqZWN0IDogcHVibGlj
IEpTV3JhcHBlck9iamVjdCB7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBCb29sZWFuT2JqZWN0
KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSopOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9u
KEpTR2xvYmFsRGF0YSYpOwogCiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpTV3JhcHBl
ck9iamVjdCBCYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RGF0ZUluc3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0
YW5jZS5jcHAKaW5kZXggZDhjYTA3MjQ5MWI4NTgzZGZjODFlMTI5NWEyZDhiMzkyYTY0NDdkZi4u
MmVjNzIxZDliNWI0OTY3ZDhlMTM4Mjg0MTM4MTEyNzIzYThkYmNiNSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuY3BwCkBAIC0zNywxNSArMzcsMjAg
QEAgY29uc3QgQ2xhc3NJbmZvIERhdGVJbnN0YW5jZTo6c19pbmZvID0geyJEYXRlIiwgJkpTV3Jh
cHBlck9iamVjdDo6c19pbmZvLCAwLCAwfTsKIERhdGVJbnN0YW5jZTo6RGF0ZUluc3RhbmNlKEV4
ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU1dyYXBwZXJPYmpl
Y3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7Ci0gICAgQVNTRVJUKGluaGVyaXRz
KCZzX2luZm8pKTsKLSAgICBzZXRJbnRlcm5hbFZhbHVlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNO
YU4oKSk7CisgICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc05hTigpKTsK
IH0KIAogRGF0ZUluc3RhbmNlOjpEYXRlSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgZG91YmxlIHRpbWUpCiAgICAgOiBKU1dyYXBwZXJPYmplY3QoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xv
YmFsRGF0YSgpLCBqc051bWJlcih0aW1lQ2xpcCh0aW1lKSkpOworfQorCit2b2lkIERhdGVJbnN0
YW5jZTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHZh
bHVlKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIEFTU0VS
VChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgc2V0SW50ZXJuYWxWYWx1ZShleGVjLT5nbG9iYWxE
YXRhKCksIGpzTnVtYmVyKHRpbWVDbGlwKHRpbWUpKSk7CisgICAgc2V0SW50ZXJuYWxWYWx1ZShn
bG9iYWxEYXRhLCB2YWx1ZSk7CiB9CiAKIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBEYXRlSW5z
dGFuY2U6OmNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1lKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKaW5kZXggYWYy
ZGZhMDUwYjMzMjU2YjIzOGM5ZDMwZDZjYzJmYWVjYmRhMzYxYi4uNDU2ZDM1ZDEzOWEyZTIzNDc2
OGU4OTJjMTMwYWE1YTJlMTVmMDBmNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGF0ZUluc3RhbmNlLmgKQEAgLTMzLDYgKzMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
cHJvdGVjdGVkOgogICAgICAgICBEYXRlSW5zdGFuY2UoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwg
ZG91YmxlKTsKICAgICAgICAgRGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSopOwor
ICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIEpTVmFsdWUpOwogICAg
ICAgICAKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSlNXcmFwcGVyT2JqZWN0IEJhc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCmlu
ZGV4IDNlMDMzN2I4OTRkMzUzN2FlMTJlZjU5NWJhOTU5MWQ4M2U1YWQyMGYuLjRmNWU2ZTJmNTY4
NDgwNjFkOGUxMzlkNWIxNzk1Zjg1NzA5ZGJlN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCkBAIC0yOSwyNiArMjksNiBAQCBFcnJvcklu
c3RhbmNlOjpFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCiAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVy
ZSkKICAgICAsIG1fYXBwZW5kU291cmNlVG9NZXNzYWdlKGZhbHNlKQogewotICAgIGZpbmlzaENy
ZWF0aW9uKGdsb2JhbERhdGEsIFVTdHJpbmcoIiIsIDApKTsKLX0KLQotRXJyb3JJbnN0YW5jZTo6
RXJyb3JJbnN0YW5jZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBjb25zdCBVU3RyaW5nJiBtZXNzYWdlKQotICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9i
YWxEYXRhLCBzdHJ1Y3R1cmUpCi0gICAgLCBtX2FwcGVuZFNvdXJjZVRvTWVzc2FnZShmYWxzZSkK
LXsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBtZXNzYWdlKTsKLX0KLQotRXJyb3JJ
bnN0YW5jZSogRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFVTdHJpbmcmIG1lc3NhZ2UpCi17Ci0gICAgcmV0
dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEVycm9ySW5zdGFuY2U+KGdsb2JhbERhdGEuaGVhcCkpIEVy
cm9ySW5zdGFuY2UoZ2xvYmFsRGF0YSwgc3RydWN0dXJlLCBtZXNzYWdlKTsKLX0KLQotRXJyb3JJ
bnN0YW5jZSogRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIEpTVmFsdWUgbWVzc2FnZSkKLXsKLSAgICBpZiAobWVzc2FnZS5pc1VuZGVm
aW5lZCgpKQotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8RXJyb3JJbnN0YW5jZT4o
KmV4ZWMtPmhlYXAoKSkpIEVycm9ySW5zdGFuY2UoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1
cmUpOwotICAgIHJldHVybiBjcmVhdGUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUsIG1l
c3NhZ2UudG9TdHJpbmcoZXhlYykpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaAppbmRleCAwNmE5NTMyMTNj
YTViZTViNDUxYTNkYzhhMTFlOTJkYWExMjc2ZjkyLi45YzZhN2E3NzU5MTI2NjJhOTkyZjRkNTcy
MDMzZDBkNmJmYWRjNjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvckluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JJbnN0YW5jZS5oCkBAIC0zNiw5ICszNiwyMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBFcnJvckluc3RhbmNlKiBjcmVhdGUo
SlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiwgY29uc3QgVVN0cmluZyYpOwotICAgICAgICBzdGF0
aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIEpTVmFsdWUg
bWVzc2FnZSk7Ci0KKyAgICAgICAgc3RhdGljIEVycm9ySW5zdGFuY2UqIGNyZWF0ZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBVU3RyaW5nJiBt
ZXNzYWdlKQorICAgICAgICB7CisgICAgICAgICAgICBFcnJvckluc3RhbmNlKiBpbnN0YW5jZSA9
IG5ldyAoYWxsb2NhdGVDZWxsPEVycm9ySW5zdGFuY2U+KGdsb2JhbERhdGEuaGVhcCkpIEVycm9y
SW5zdGFuY2UoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIGluc3RhbmNlLT5m
aW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBtZXNzYWdlKTsKKyAgICAgICAgICAgIHJldHVybiBp
bnN0YW5jZTsKKyAgICAgICAgfQorICAgICAgICBzdGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRl
KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTVmFsdWUgbWVzc2FnZSkK
KyAgICAgICAgeworICAgICAgICAgICAgaWYgKG1lc3NhZ2UuaXNVbmRlZmluZWQoKSkgeworICAg
ICAgICAgICAgICAgIEVycm9ySW5zdGFuY2UqIGluc3RhbmNlID0gbmV3IChhbGxvY2F0ZUNlbGw8
RXJyb3JJbnN0YW5jZT4oKmV4ZWMtPmhlYXAoKSkpIEVycm9ySW5zdGFuY2UoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgICAgIGluc3RhbmNlLT5maW5pc2hDcmVh
dGlvbihleGVjLT5nbG9iYWxEYXRhKCksIFVTdHJpbmcoIiIsIDApKTsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gaW5zdGFuY2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gY3Jl
YXRlKGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlLCBtZXNzYWdlLnRvU3RyaW5nKGV4ZWMp
KTsKKyAgICAgICAgfQogCiAgICAgICAgIGJvb2wgYXBwZW5kU291cmNlVG9NZXNzYWdlKCkgeyBy
ZXR1cm4gbV9hcHBlbmRTb3VyY2VUb01lc3NhZ2U7IH0KICAgICAgICAgdm9pZCBzZXRBcHBlbmRT
b3VyY2VUb01lc3NhZ2UoKSB7IG1fYXBwZW5kU291cmNlVG9NZXNzYWdlID0gdHJ1ZTsgfQpAQCAt
NDgsNyArNjAsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAg
ZXhwbGljaXQgRXJyb3JJbnN0YW5jZShKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqKTsKLSAgICAg
ICAgZXhwbGljaXQgRXJyb3JJbnN0YW5jZShKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqLCBjb25z
dCBVU3RyaW5nJik7CiAKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIGNvbnN0IFVTdHJpbmcmIG1lc3NhZ2UpCiAgICAgICAgIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcAppbmRleCAzODYw
NjhiYzNlNzhmN2JiZGRiMjRjMzQ3YzlkMWZmZDdjZWRhODExLi42OTg2NzUyNGM0Y2U3ZWY1Yzc2
M2I2YTUyNzJlNzE2Y2U4NDk1NzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCkBAIC01MywxMSArNTMsMTIgQEAgQVNTRVJUX0NMQVNT
X0ZJVFNfSU5fQ0VMTChFcnJvclByb3RvdHlwZSk7CiBFcnJvclByb3RvdHlwZTo6RXJyb3JQcm90
b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEVycm9ySW5zdGFuY2UoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBzdHJ1Y3R1cmUpCiB7Ci0gICAgY29uc3RydWN0b3JCb2R5KGV4ZWMsIGdsb2JhbE9iamVjdCk7
CisgICAgZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFsT2JqZWN0KTsKIH0KIAotdm9pZCBFcnJv
clByb3RvdHlwZTo6Y29uc3RydWN0b3JCb2R5KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgRXJyb3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKKyAgICBCYXNl
OjpmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksICIiKTsKICAgICBBU1NFUlQoaW5o
ZXJpdHMoJnNfaW5mbykpOwogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5uYW1lLCBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgIkVycm9yIiks
IERvbnRFbnVtKTsKICAgICBwdXRBbm9ueW1vdXNWYWx1ZShnbG9iYWxPYmplY3QtPmdsb2JhbERh
dGEoKSwgMCwgZ2xvYmFsT2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvclByb3RvdHlwZS5oCmluZGV4IDk4MzU3MmI2MjIzYTdiZDM4ZmMzZTVhYTE4NTY5YmMw
ODQ0MGVkNzguLmQ3YjE1MjI1YzgxOGYxMmRkMWI0NjNmZTFmNTQ3MDhjZGZjZjQ5YTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaApAQCAtNDUs
NyArNDUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgRXJy
b3JQcm90b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKLSAg
ICAgICAgdm9pZCBjb25zdHJ1Y3RvckJvZHkoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKTsK
KyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCop
OwogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IEVycm9ySW5zdGFuY2U6OlN0cnVjdHVyZUZsYWdzOwog
ICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQW5vbnltb3VzU2xvdENvdW50ID0gRXJyb3JJ
bnN0YW5jZTo6QW5vbnltb3VzU2xvdENvdW50ICsgMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKaW5kZXggYjU4ZDg5NTE3ZTM3ZWRi
YWIyNzk0MDMwMTExNmZlM2MyMjNjMzQ4Mi4uNGJjNGZhZTA2MDRjYjYyMThiZDk0MGVjMmFmMzRh
ZWRhZGEzZGYxMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhj
ZXB0aW9uSGVscGVycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhj
ZXB0aW9uSGVscGVycy5jcHAKQEAgLTQ2LDcgKzQ2LDYgQEAgcHJpdmF0ZToKICAgICBJbnRlcnJ1
cHRlZEV4ZWN1dGlvbkVycm9yKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKICAgICAgICAgOiBK
U05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIGdsb2JhbERhdGEuaW50ZXJydXB0ZWRFeGVjdXRp
b25FcnJvclN0cnVjdHVyZS5nZXQoKSkKICAgICB7Ci0gICAgICAgIGZpbmlzaENyZWF0aW9uKGds
b2JhbERhdGEpOwogICAgIH0KIAogcHVibGljOgpAQCAtNTQsNyArNTMsOSBAQCBwdWJsaWM6CiAK
ICAgICBzdGF0aWMgSW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvciogY3JlYXRlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxJ
bnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yPihnbG9iYWxEYXRhLmhlYXApKSBJbnRlcnJ1cHRlZEV4
ZWN1dGlvbkVycm9yKGdsb2JhbERhdGEpOworICAgICAgICBJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVy
cm9yKiBlcnJvciA9IG5ldyAoYWxsb2NhdGVDZWxsPEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3I+
KGdsb2JhbERhdGEuaGVhcCkpIEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3IoZ2xvYmFsRGF0YSk7
CisgICAgICAgIGVycm9yLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKKyAgICAgICAgcmV0
dXJuIGVycm9yOwogICAgIH0KIAogICAgIHZpcnR1YWwgQ29tcGxUeXBlIGV4Y2VwdGlvblR5cGUo
KSBjb25zdCB7IHJldHVybiBJbnRlcnJ1cHRlZDsgfQpAQCAtNzIsNyArNzMsNiBAQCBwcml2YXRl
OgogICAgIFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEp
CiAgICAgICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLnRlcm1p
bmF0ZWRFeGVjdXRpb25FcnJvclN0cnVjdHVyZS5nZXQoKSkKICAgICB7Ci0gICAgICAgIGZpbmlz
aENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIH0KIAogcHVibGljOgpAQCAtODAsNyArODAsOSBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgVGVybWluYXRlZEV4ZWN1dGlvbkVycm9yKiBjcmVhdGUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAoYWxs
b2NhdGVDZWxsPFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcj4oZ2xvYmFsRGF0YS5oZWFwKSkgVGVy
bWluYXRlZEV4ZWN1dGlvbkVycm9yKGdsb2JhbERhdGEpOworICAgICAgICBUZXJtaW5hdGVkRXhl
Y3V0aW9uRXJyb3IqIGVycm9yID0gbmV3IChhbGxvY2F0ZUNlbGw8VGVybWluYXRlZEV4ZWN1dGlv
bkVycm9yPihnbG9iYWxEYXRhLmhlYXApKSBUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3IoZ2xvYmFs
RGF0YSk7CisgICAgICAgIGVycm9yLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKKyAgICAg
ICAgcmV0dXJuIGVycm9yOwogICAgIH0KIAogICAgIHZpcnR1YWwgQ29tcGxUeXBlIGV4Y2VwdGlv
blR5cGUoKSBjb25zdCB7IHJldHVybiBUZXJtaW5hdGVkOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCmluZGV4IDM4OTdlOTM2OGIyZjkwNzlhYTViOTJm
MmZkNDAyMTdjZTYwZTAwZTIuLjU2MTc1MjIzMDk2YTJmMjYyMzVjZTdiMDcxNGU5NjYzZGVjOTgx
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCkBA
IC0xMjcsNyArMTI3LDYgQEAgY29uc3QgQ2xhc3NJbmZvIEV2YWxFeGVjdXRhYmxlOjpzX2luZm8g
PSB7ICJFdmFsRXhlY3V0YWJsZSIsICZTY3JpcHRFeGVjdXRhYmxlOjoKIEV2YWxFeGVjdXRhYmxl
OjpFdmFsRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJj
ZSwgYm9vbCBpblN0cmljdENvbnRleHQpCiAgICAgOiBTY3JpcHRFeGVjdXRhYmxlKGV4ZWMtPmds
b2JhbERhdGEoKS5ldmFsRXhlY3V0YWJsZVN0cnVjdHVyZS5nZXQoKSwgZXhlYywgc291cmNlLCBp
blN0cmljdENvbnRleHQpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgp
KTsKIH0KIAogRXZhbEV4ZWN1dGFibGU6On5FdmFsRXhlY3V0YWJsZSgpCkBAIC0xMzksNyArMTM4
LDYgQEAgY29uc3QgQ2xhc3NJbmZvIFByb2dyYW1FeGVjdXRhYmxlOjpzX2luZm8gPSB7ICJQcm9n
cmFtRXhlY3V0YWJsZSIsICZTY3JpcHRFeGVjdXQKIFByb2dyYW1FeGVjdXRhYmxlOjpQcm9ncmFt
RXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSkKICAg
ICA6IFNjcmlwdEV4ZWN1dGFibGUoZXhlYy0+Z2xvYmFsRGF0YSgpLnByb2dyYW1FeGVjdXRhYmxl
U3RydWN0dXJlLmdldCgpLCBleGVjLCBzb3VyY2UsIGZhbHNlKQogewotICAgIGZpbmlzaENyZWF0
aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CiB9CiAKIFByb2dyYW1FeGVjdXRhYmxlOjp+UHJvZ3Jh
bUV4ZWN1dGFibGUoKQpAQCAtMTQ4LDcgKzE0Niw3IEBAIFByb2dyYW1FeGVjdXRhYmxlOjp+UHJv
Z3JhbUV4ZWN1dGFibGUoKQogCiBjb25zdCBDbGFzc0luZm8gRnVuY3Rpb25FeGVjdXRhYmxlOjpz
X2luZm8gPSB7ICJGdW5jdGlvbkV4ZWN1dGFibGUiLCAmU2NyaXB0RXhlY3V0YWJsZTo6c19pbmZv
LCAwLCAwIH07CiAKLUZ1bmN0aW9uRXhlY3V0YWJsZTo6RnVuY3Rpb25FeGVjdXRhYmxlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291cmNl
Q29kZSYgc291cmNlLCBib29sIGZvcmNlVXNlc0FyZ3VtZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJz
KiBwYXJhbWV0ZXJzLCBib29sIGluU3RyaWN0Q29udGV4dCwgaW50IGZpcnN0TGluZSwgaW50IGxh
c3RMaW5lKQorRnVuY3Rpb25FeGVjdXRhYmxlOjpGdW5jdGlvbkV4ZWN1dGFibGUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25zdCBTb3VyY2VDb2Rl
JiBzb3VyY2UsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqIHBh
cmFtZXRlcnMsIGJvb2wgaW5TdHJpY3RDb250ZXh0KQogICAgIDogU2NyaXB0RXhlY3V0YWJsZShn
bG9iYWxEYXRhLmZ1bmN0aW9uRXhlY3V0YWJsZVN0cnVjdHVyZS5nZXQoKSwgZ2xvYmFsRGF0YSwg
c291cmNlLCBpblN0cmljdENvbnRleHQpCiAgICAgLCBtX251bUNhcHR1cmVkVmFyaWFibGVzKDAp
CiAgICAgLCBtX2ZvcmNlVXNlc0FyZ3VtZW50cyhmb3JjZVVzZXNBcmd1bWVudHMpCkBAIC0xNTYs
MTAgKzE1NCw5IEBAIEZ1bmN0aW9uRXhlY3V0YWJsZTo6RnVuY3Rpb25FeGVjdXRhYmxlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmllCiAgICAgLCBtX25hbWUobmFtZSkK
ICAgICAsIG1fc3ltYm9sVGFibGUoMCkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRh
LCBuYW1lLCBmaXJzdExpbmUsIGxhc3RMaW5lKTsKIH0KIAotRnVuY3Rpb25FeGVjdXRhYmxlOjpG
dW5jdGlvbkV4ZWN1dGFibGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBuYW1l
LCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5j
dGlvblBhcmFtZXRlcnMqIHBhcmFtZXRlcnMsIGJvb2wgaW5TdHJpY3RDb250ZXh0LCBpbnQgZmly
c3RMaW5lLCBpbnQgbGFzdExpbmUpCitGdW5jdGlvbkV4ZWN1dGFibGU6OkZ1bmN0aW9uRXhlY3V0
YWJsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJj
ZUNvZGUmIHNvdXJjZSwgYm9vbCBmb3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVy
cyogcGFyYW1ldGVycywgYm9vbCBpblN0cmljdENvbnRleHQpCiAgICAgOiBTY3JpcHRFeGVjdXRh
YmxlKGV4ZWMtPmdsb2JhbERhdGEoKS5mdW5jdGlvbkV4ZWN1dGFibGVTdHJ1Y3R1cmUuZ2V0KCks
IGV4ZWMsIHNvdXJjZSwgaW5TdHJpY3RDb250ZXh0KQogICAgICwgbV9udW1DYXB0dXJlZFZhcmlh
YmxlcygwKQogICAgICwgbV9mb3JjZVVzZXNBcmd1bWVudHMoZm9yY2VVc2VzQXJndW1lbnRzKQpA
QCAtMTY3LDcgKzE2NCw2IEBAIEZ1bmN0aW9uRXhlY3V0YWJsZTo6RnVuY3Rpb25FeGVjdXRhYmxl
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgbmFtZSwKICAgICAsIG1fbmFtZShu
YW1lKQogICAgICwgbV9zeW1ib2xUYWJsZSgwKQogewotICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMt
Pmdsb2JhbERhdGEoKSwgbmFtZSwgZmlyc3RMaW5lLCBsYXN0TGluZSk7CiB9CiAKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCmluZGV4IDVmYWRiYjgxMjQxYTBj
ZTNlMTM4MzE4NTg4YWY0MjExNjdmYTFiNjkuLjYzOWJiZTQ3MDBhZjMzNDM0MjQxZDE1NTA4YWRk
N2Q0MWE3MmExN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4
ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxl
LmgKQEAgLTE3NiwxNiArMTc2LDIxIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMg
TmF0aXZlRXhlY3V0YWJsZSogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIGNhbGxUaHVuaywgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBjb25zdHJ1Y3RUaHVuaywgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0
b3IpCiAgICAgICAgIHsKICAgICAgICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGV4ZWN1dGFibGU7
Ci0gICAgICAgICAgICBpZiAoIWNhbGxUaHVuaykKLSAgICAgICAgICAgICAgICBleGVjdXRhYmxl
ID0gbmV3IChhbGxvY2F0ZUNlbGw8TmF0aXZlRXhlY3V0YWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkg
TmF0aXZlRXhlY3V0YWJsZShnbG9iYWxEYXRhLCBKSVRDb2RlKCksIGZ1bmN0aW9uLCBKSVRDb2Rl
KCksIGNvbnN0cnVjdG9yKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBleGVj
dXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8TmF0aXZlRXhlY3V0YWJsZT4oZ2xvYmFsRGF0YS5o
ZWFwKSkgTmF0aXZlRXhlY3V0YWJsZShnbG9iYWxEYXRhLCBKSVRDb2RlOjpIb3N0RnVuY3Rpb24o
Y2FsbFRodW5rKSwgZnVuY3Rpb24sIEpJVENvZGU6Okhvc3RGdW5jdGlvbihjb25zdHJ1Y3RUaHVu
ayksIGNvbnN0cnVjdG9yKTsKKyAgICAgICAgICAgIGlmICghY2FsbFRodW5rKSB7CisgICAgICAg
ICAgICAgICAgZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2NhdGVDZWxsPE5hdGl2ZUV4ZWN1dGFibGU+
KGdsb2JhbERhdGEuaGVhcCkpIE5hdGl2ZUV4ZWN1dGFibGUoZ2xvYmFsRGF0YSwgZnVuY3Rpb24s
IGNvbnN0cnVjdG9yKTsKKyAgICAgICAgICAgICAgICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlv
bihnbG9iYWxEYXRhLCBKSVRDb2RlKCksIEpJVENvZGUoKSk7CisgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxOYXRpdmVF
eGVjdXRhYmxlPihnbG9iYWxEYXRhLmhlYXApKSBOYXRpdmVFeGVjdXRhYmxlKGdsb2JhbERhdGEs
IGZ1bmN0aW9uLCBjb25zdHJ1Y3Rvcik7CisgICAgICAgICAgICAgICAgZXhlY3V0YWJsZS0+Zmlu
aXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgSklUQ29kZTo6SG9zdEZ1bmN0aW9uKGNhbGxUaHVuayks
IEpJVENvZGU6Okhvc3RGdW5jdGlvbihjb25zdHJ1Y3RUaHVuaykpOworICAgICAgICAgICAgfQog
ICAgICAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CiAgICAgICAgIH0KICNlbHNlCiAgICAgICAg
IHN0YXRpYyBOYXRpdmVFeGVjdXRhYmxlKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxOYXRpdmVFeGVj
dXRhYmxlPihnbG9iYWxEYXRhLmhlYXApKSBOYXRpdmVFeGVjdXRhYmxlKGdsb2JhbERhdGEsIGZ1
bmN0aW9uLCBjb25zdHJ1Y3Rvcik7CisgICAgICAgICAgICBOYXRpdmVFeGVjdXRhYmxlKiBleGVj
dXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8TmF0aXZlRXhlY3V0YWJsZT4oZ2xvYmFsRGF0YS5o
ZWFwKSkgTmF0aXZlRXhlY3V0YWJsZShnbG9iYWxEYXRhLCBmdW5jdGlvbiwgY29uc3RydWN0b3Ip
OworICAgICAgICAgICAgZXhlY3V0YWJsZS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7Cisg
ICAgICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAgICAgICAgfQogI2VuZGlmCiAKQEAgLTIx
MSwxMiArMjE2LDExIEBAIG5hbWVzcGFjZSBKU0MgewogIAogICAgIHByaXZhdGU6CiAjaWYgRU5B
QkxFKEpJVCkKLSAgICAgICAgTmF0aXZlRXhlY3V0YWJsZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpJVENvZGUgY2FsbFRodW5rLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgSklUQ29kZSBj
b25zdHJ1Y3RUaHVuaywgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IpCisgICAgICAgIE5hdGl2
ZUV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBOYXRpdmVGdW5jdGlvbiBmdW5j
dGlvbiwgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IpCiAgICAgICAgICAgICA6IEV4ZWN1dGFi
bGVCYXNlKGdsb2JhbERhdGEsIGdsb2JhbERhdGEubmF0aXZlRXhlY3V0YWJsZVN0cnVjdHVyZS5n
ZXQoKSwgTlVNX1BBUkFNRVRFUlNfSVNfSE9TVCkKICAgICAgICAgICAgICwgbV9mdW5jdGlvbihm
dW5jdGlvbikKICAgICAgICAgICAgICwgbV9jb25zdHJ1Y3Rvcihjb25zdHJ1Y3RvcikKICAgICAg
ICAgewotICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgY2FsbFRodW5rLCBj
b25zdHJ1Y3RUaHVuayk7CiAgICAgICAgIH0KICNlbHNlCiAgICAgICAgIE5hdGl2ZUV4ZWN1dGFi
bGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgTmF0
aXZlRnVuY3Rpb24gY29uc3RydWN0b3IpCkBAIC0yMjQsNyArMjI4LDYgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgICAgICAsIG1fZnVuY3Rpb24oZnVuY3Rpb24pCiAgICAgICAgICAgICAsIG1f
Y29uc3RydWN0b3IoY29uc3RydWN0b3IpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGZpbmlzaENy
ZWF0aW9uKGdsb2JhbERhdGEpOwogICAgICAgICB9CiAjZW5kaWYKIApAQCAtMzE3LDYgKzMyMCw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgRXZhbEV4ZWN1dGFibGUqIGNyZWF0
ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBpc0luU3Ry
aWN0Q29udGV4dCkgCiAgICAgICAgIHsKICAgICAgICAgICAgIEV2YWxFeGVjdXRhYmxlKiBleGVj
dXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8RXZhbEV4ZWN1dGFibGU+KCpleGVjLT5oZWFwKCkp
KSBFdmFsRXhlY3V0YWJsZShleGVjLCBzb3VyY2UsIGlzSW5TdHJpY3RDb250ZXh0KTsKKyAgICAg
ICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CiAg
ICAgICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAgICAgICAgfQogCkBAIC0zNTQsNiArMzU4
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBQcm9ncmFtRXhlY3V0YWJsZSog
Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291cmNlKQogICAgICAg
ICB7CiAgICAgICAgICAgICBQcm9ncmFtRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IG5ldyAoYWxs
b2NhdGVDZWxsPFByb2dyYW1FeGVjdXRhYmxlPigqZXhlYy0+aGVhcCgpKSkgUHJvZ3JhbUV4ZWN1
dGFibGUoZXhlYywgc291cmNlKTsKKyAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0
aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CiAgICAgICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsK
ICAgICAgICAgfQogCkBAIC00MTIsMTMgKzQxNywxNSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
ICAgICBzdGF0aWMgRnVuY3Rpb25FeGVjdXRhYmxlKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJvb2wgZm9y
Y2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqIHBhcmFtZXRlcnMsIGJvb2wgaXNJ
blN0cmljdENvbnRleHQsIGludCBmaXJzdExpbmUsIGludCBsYXN0TGluZSkKICAgICAgICAgewot
ICAgICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0
ZUNlbGw8RnVuY3Rpb25FeGVjdXRhYmxlPigqZXhlYy0+aGVhcCgpKSkgRnVuY3Rpb25FeGVjdXRh
YmxlKGV4ZWMsIG5hbWUsIHNvdXJjZSwgZm9yY2VVc2VzQXJndW1lbnRzLCBwYXJhbWV0ZXJzLCBp
c0luU3RyaWN0Q29udGV4dCwgZmlyc3RMaW5lLCBsYXN0TGluZSk7CisgICAgICAgICAgICBGdW5j
dGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxGdW5jdGlvbkV4
ZWN1dGFibGU+KCpleGVjLT5oZWFwKCkpKSBGdW5jdGlvbkV4ZWN1dGFibGUoZXhlYywgbmFtZSwg
c291cmNlLCBmb3JjZVVzZXNBcmd1bWVudHMsIHBhcmFtZXRlcnMsIGlzSW5TdHJpY3RDb250ZXh0
KTsKKyAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERh
dGEoKSwgbmFtZSwgZmlyc3RMaW5lLCBsYXN0TGluZSk7CiAgICAgICAgICAgICByZXR1cm4gZXhl
Y3V0YWJsZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBGdW5jdGlvbkV4ZWN1dGFibGUq
IGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXImIG5hbWUs
IGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBmb3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0
aW9uUGFyYW1ldGVycyogcGFyYW1ldGVycywgYm9vbCBpc0luU3RyaWN0Q29udGV4dCwgaW50IGZp
cnN0TGluZSwgaW50IGxhc3RMaW5lKQogICAgICAgICB7Ci0gICAgICAgICAgICBGdW5jdGlvbkV4
ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxGdW5jdGlvbkV4ZWN1dGFi
bGU+KGdsb2JhbERhdGEuaGVhcCkpIEZ1bmN0aW9uRXhlY3V0YWJsZShnbG9iYWxEYXRhLCBuYW1l
LCBzb3VyY2UsIGZvcmNlVXNlc0FyZ3VtZW50cywgcGFyYW1ldGVycywgaXNJblN0cmljdENvbnRl
eHQsIGZpcnN0TGluZSwgbGFzdExpbmUpOworICAgICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxl
KiBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8RnVuY3Rpb25FeGVjdXRhYmxlPihnbG9i
YWxEYXRhLmhlYXApKSBGdW5jdGlvbkV4ZWN1dGFibGUoZ2xvYmFsRGF0YSwgbmFtZSwgc291cmNl
LCBmb3JjZVVzZXNBcmd1bWVudHMsIHBhcmFtZXRlcnMsIGlzSW5TdHJpY3RDb250ZXh0KTsKKyAg
ICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIG5hbWUsIGZp
cnN0TGluZSwgbGFzdExpbmUpOwogICAgICAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CiAgICAg
ICAgIH0KIApAQCAtNTM5LDggKzU0Niw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAK
ICAgICBwcml2YXRlOgotICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiwg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29kZSYsIGJvb2wgZm9yY2VVc2Vz
QXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqLCBib29sLCBpbnQgZmlyc3RMaW5lLCBpbnQg
bGFzdExpbmUpOwotICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29kZSYsIGJvb2wgZm9yY2VVc2VzQXJndW1l
bnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqLCBib29sLCBpbnQgZmlyc3RMaW5lLCBpbnQgbGFzdExp
bmUpOworICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiwgY29uc3QgSWRl
bnRpZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29kZSYsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRz
LCBGdW5jdGlvblBhcmFtZXRlcnMqLCBib29sKTsKKyAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxl
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmLCBi
b29sIGZvcmNlVXNlc0FyZ3VtZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJzKiwgYm9vbCk7CiAKICAg
ICAgICAgSlNPYmplY3QqIGNvbXBpbGVGb3JDYWxsSW50ZXJuYWwoRXhlY1N0YXRlKiwgU2NvcGVD
aGFpbk5vZGUqLCBFeGVjU3RhdGUqIGNhbGxlZUFyZ3NFeGVjKTsKICAgICAgICAgSlNPYmplY3Qq
IGNvbXBpbGVGb3JDb25zdHJ1Y3RJbnRlcm5hbChFeGVjU3RhdGUqLCBTY29wZUNoYWluTm9kZSop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5j
dGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9u
LmNwcAppbmRleCBiY2ExNzQ3MTMyZDRjOTczMTdkNTdjZDgwZTQ5MWQ0ODYyOGFjZTkwLi4wN2Mw
ZjdmNWJmNjVhM2U3NTZiNTFjMjQwMzdjYWNjMzNjNDJlNjIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcApAQCAtNDQsNyArNDQs
MTQgQEAgSW50ZXJuYWxGdW5jdGlvbjo6SW50ZXJuYWxGdW5jdGlvbihWUHRyU3RlYWxpbmdIYWNr
VHlwZSkKIEludGVybmFsRnVuY3Rpb246OkludGVybmFsRnVuY3Rpb24oSlNHbG9iYWxEYXRhKiBn
bG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKICAgICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9i
amVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKIHsKLSAgICBjb25zdHJ1Y3RvckJvZHkoKmds
b2JhbERhdGEsIG5hbWUpOworICAgIGZpbmlzaENyZWF0aW9uKCpnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIG5hbWUpOworfQorCit2b2lkIEludGVybmFsRnVuY3Rpb246OmZpbmlzaENyZWF0aW9u
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9i
YWxEYXRhLCBnbG9iYWxPYmplY3QpOworICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Cisg
ICAgcHV0RGlyZWN0KGdsb2JhbERhdGEsIGdsb2JhbERhdGEucHJvcGVydHlOYW1lcy0+bmFtZSwg
anNTdHJpbmcoJmdsb2JhbERhdGEsIG5hbWUuaXNOdWxsKCkgPyAiIiA6IG5hbWUudXN0cmluZygp
KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogfQogCiBjb25zdCBVU3RyaW5n
JiBJbnRlcm5hbEZ1bmN0aW9uOjpuYW1lKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAppbmRleCAxNDM2ZjMyZDZl
N2E3ZGUyOGY1NGY5MTA5MDNiZDFmNzgxMDcwZTY1Li42MDY3YmU4ZGJmZGRiMzdjYTQ2MDc5ODFh
NzMwOGE1ODM4MDY4NWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRlcm5hbEZ1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50ZXJuYWxGdW5jdGlvbi5oCkBAIC01NCwxMSArNTQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgICAgICBJbnRlcm5hbEZ1bmN0aW9uKEpTR2xvYmFsRGF0YSosIEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlKiwgY29uc3QgSWRlbnRpZmllciYpOwogCi0gICAgICAgIHZvaWQgY29uc3RydWN0
b3JCb2R5KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkK
LSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKLSAgICAg
ICAgICAgIHB1dERpcmVjdChnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLnByb3BlcnR5TmFtZXMtPm5h
bWUsIGpzU3RyaW5nKCZnbG9iYWxEYXRhLCBuYW1lLmlzTnVsbCgpID8gIiIgOiBuYW1lLnVzdHJp
bmcoKSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKLSAgICAgICAgfQorICAg
ICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIEpTR2xvYmFsT2JqZWN0Kiwg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSk7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFs
IENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKaW5kZXggNTAyODkwMmM5OTJkMTRhMTI1
NGE3M2EwZGRjNjljOTlmN2ZhMGI2Mi4uNWM5OWQ3YTY1NDM4ZDFjZTc5ZGM3Y2I1MDVhODU3N2Ez
ZjY5N2JlYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3Rp
dmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRp
b24uY3BwCkBAIC00Niw2ICs0NiwxMiBAQCBKU0FjdGl2YXRpb246OkpTQWN0aXZhdGlvbihDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbkV4ZQogICAgICwg
bV9yZXF1aXJlc0R5bmFtaWNDaGVja3MoZnVuY3Rpb25FeGVjdXRhYmxlLT51c2VzRXZhbCgpKQog
ICAgICwgbV9hcmd1bWVudHNSZWdpc3RlcihmdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEJ5
dGVjb2RlKCkuYXJndW1lbnRzUmVnaXN0ZXIoKSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihjYWxs
RnJhbWUpOworfQorCit2b2lkIEpTQWN0aXZhdGlvbjo6ZmluaXNoQ3JlYXRpb24oQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oY2FsbEZyYW1lLT5nbG9i
YWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAKICAgICAvLyBXZSBo
YXZlIHRvIG1hbnVhbGx5IHJlZiBhbmQgZGVyZWYgdGhlIHN5bWJvbCB0YWJsZSBhcyBKU1Zhcmlh
YmxlT2JqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fj
dGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5o
CmluZGV4IGYxNTkxYWFhMTgwZWFlMTNmMzVmNTkyMDY0ODQyMDliYjNmOGUwYWQuLmRhMmU0NjU1
ZTA2OTRmN2M1OTNkM2FmMTcxZDYwMGZkMDcwNjYyNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCkBAIC03Nyw2ICs3Nyw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyB9CiAKICAgICBwcm90ZWN0ZWQ6CisgICAg
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oQ2FsbEZyYW1lKik7CiAgICAgICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IElzRW52aXJvbm1lbnRSZWNvcmQgfCBPdmVycmlk
ZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVz
R2V0UHJvcGVydHlOYW1lcyB8IEpTVmFyaWFibGVPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCiAg
ICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKaW5k
ZXggMTg1ZDdhZWI2YmZjNDUyOTE2YmJmZWJiMTcxMDRkYjA3Njc1ZDkzMi4uNGIwY2FhMjIxNjgy
ZjZjNjhhNjA1ZThhZjllNTQwNjY1OGMwMzJjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheS5jcHAKQEAgLTEzNCwxOSArMTM0LDYgQEAgSlNBcnJheTo6SlNBcnJheShW
UHRyU3RlYWxpbmdIYWNrVHlwZSkKIEpTQXJyYXk6OkpTQXJyYXkoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xv
YmFsRGF0YSwgc3RydWN0dXJlKQogewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwot
fQotCi1KU0FycmF5OjpKU0FycmF5KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIHVuc2lnbmVkIGluaXRpYWxMZW5ndGgsIEFycmF5Q3JlYXRpb25Nb2RlIGNy
ZWF0aW9uTW9kZSkKLSAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJl
KQotewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGluaXRpYWxMZW5ndGgsIGNyZWF0
aW9uTW9kZSk7Ci19Ci0KLUpTQXJyYXk6OkpTQXJyYXkoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgQXJnTGlzdCYgbGlzdCkKLSAgICA6IEpTTm9u
RmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQotewotICAgIGZpbmlzaENyZWF0aW9u
KGdsb2JhbERhdGEsIGxpc3QpOwogfQogCiB2b2lkIEpTQXJyYXk6OmZpbmlzaENyZWF0aW9uKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJy
YXkuaAppbmRleCBlOGUxZmE5MmQ1ZmQ0MDE5MzFlNzgyMzVkMzI2NTQxMzlkNjZkZmU2Li5iYTJl
MTdjZWFjOTk4ZjAzZDdjYWIwNTliMzk5ZDg0OWMxMzUyOTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheS5oCkBAIC02Miw4ICs2Miw2IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBleHBsaWNpdCBKU0FycmF5KEpTR2xvYmFsRGF0YSYs
IFN0cnVjdHVyZSopOwotICAgICAgICBKU0FycmF5KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSos
IHVuc2lnbmVkIGluaXRpYWxMZW5ndGgsIEFycmF5Q3JlYXRpb25Nb2RlKTsKLSAgICAgICAgSlNB
cnJheShKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqLCBjb25zdCBBcmdMaXN0JiBpbml0aWFsVmFs
dWVzKTsKIAogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYpOwogICAg
ICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIHVuc2lnbmVkIGluaXRpYWxM
ZW5ndGgsIEFycmF5Q3JlYXRpb25Nb2RlKTsKQEAgLTc3LDE5ICs3NSwyNSBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgICAgICBzdGF0aWMgSlNBcnJheSogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0FycmF5PihnbG9iYWxEYXRhLmhlYXApKSBKU0FycmF5
KGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7CisgICAgICAgICAgICBKU0FycmF5KiBhcnJheSA9IG5l
dyAoYWxsb2NhdGVDZWxsPEpTQXJyYXk+KGdsb2JhbERhdGEuaGVhcCkpIEpTQXJyYXkoZ2xvYmFs
RGF0YSwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIGFycmF5LT5maW5pc2hDcmVhdGlvbihnbG9i
YWxEYXRhKTsKKyAgICAgICAgICAgIHJldHVybiBhcnJheTsKICAgICAgICAgfQotICAgICAgICAK
KwogICAgICAgICBzdGF0aWMgSlNBcnJheSogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVuc2lnbmVkIGluaXRpYWxMZW5ndGgsIEFycmF5Q3Jl
YXRpb25Nb2RlIGNyZWF0ZU1vZGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcg
KGFsbG9jYXRlQ2VsbDxKU0FycmF5PihnbG9iYWxEYXRhLmhlYXApKSBKU0FycmF5KGdsb2JhbERh
dGEsIHN0cnVjdHVyZSwgaW5pdGlhbExlbmd0aCwgY3JlYXRlTW9kZSk7CisgICAgICAgICAgICBK
U0FycmF5KiBhcnJheSA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTQXJyYXk+KGdsb2JhbERhdGEuaGVh
cCkpIEpTQXJyYXkoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIGFycmF5LT5m
aW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBpbml0aWFsTGVuZ3RoLCBjcmVhdGVNb2RlKTsKKyAg
ICAgICAgICAgIHJldHVybiBhcnJheTsKICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICBz
dGF0aWMgSlNBcnJheSogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIGNvbnN0IEFyZ0xpc3QmIGluaXRpYWxWYWx1ZXMpCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0FycmF5PihnbG9iYWxEYXRhLmhl
YXApKSBKU0FycmF5KGdsb2JhbERhdGEsIHN0cnVjdHVyZSwgaW5pdGlhbFZhbHVlcyk7CisgICAg
ICAgICAgICBKU0FycmF5KiBhcnJheSA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTQXJyYXk+KGdsb2Jh
bERhdGEuaGVhcCkpIEpTQXJyYXkoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKKyAgICAgICAgICAg
IGFycmF5LT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBpbml0aWFsVmFsdWVzKTsKKyAgICAg
ICAgICAgIHJldHVybiBhcnJheTsKICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKaW5kZXggYmJlNzYz
MmEyZTIxYTM5OTdkNDczNWVmNjZjZDFkM2Y3NjcxYTA3OS4uNGVlNjU0YzBmMzI5MTMzZTE0OWFk
OWNlZGY1MmNlOTJjZTFkNWExOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNCeXRlQXJyYXkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQnl0ZUFycmF5LmNwcApAQCAtMzksMTQgKzM5LDggQEAgSlNCeXRlQXJyYXk6OkpTQnl0ZUFy
cmF5KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEJ5dGVBcnJheSogc3Rv
cmEKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUp
CiAgICAgLCBtX3N0b3JhZ2Uoc3RvcmFnZSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihleGVjKTsK
IH0KICAgICAgICAgCi1KU0J5dGVBcnJheSogSlNCeXRlQXJyYXk6OmNyZWF0ZShFeGVjU3RhdGUq
IGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBCeXRlQXJyYXkqIHN0b3JhZ2UpCi17Ci0gICAg
cmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEpTQnl0ZUFycmF5PigqZXhlYy0+aGVhcCgpKSkgSlNC
eXRlQXJyYXkoZXhlYywgc3RydWN0dXJlLCBzdG9yYWdlKTsKLX0KLQogI2lmICFBU1NFUlRfRElT
QUJMRUQKIEpTQnl0ZUFycmF5Ojp+SlNCeXRlQXJyYXkoKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKaW5kZXggMjhlYmQ3ZDBmNThlY2I0NGFhMmIxNmU3
MDQ2ZDQ4ZDkzMjRhZTExZC4uYjIxZDM3MTI1NDFmN2I5NGVlM2E5M2Q0N2EzZWQyOWJlNjM2N2Ez
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXku
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCkBAIC03
OSw3ICs3OSwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSlNCeXRlQXJyYXkoRXhlY1N0
YXRlKiwgU3RydWN0dXJlKiwgQnl0ZUFycmF5KiBzdG9yYWdlKTsKICAgICAgICAgCiAgICAgcHVi
bGljOgotICAgICAgICBzdGF0aWMgSlNCeXRlQXJyYXkqIGNyZWF0ZShFeGVjU3RhdGUqLCBTdHJ1
Y3R1cmUqLCBCeXRlQXJyYXkqKTsKKyAgICAgICAgc3RhdGljIEpTQnl0ZUFycmF5KiBjcmVhdGUo
RXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQnl0ZUFycmF5KiBzdG9yYWdl
KQorICAgICAgICB7CisgICAgICAgICAgICBKU0J5dGVBcnJheSogYXJyYXkgPSBuZXcgKGFsbG9j
YXRlQ2VsbDxKU0J5dGVBcnJheT4oKmV4ZWMtPmhlYXAoKSkpIEpTQnl0ZUFycmF5KGV4ZWMsIHN0
cnVjdHVyZSwgc3RvcmFnZSk7CisgICAgICAgICAgICBhcnJheS0+ZmluaXNoQ3JlYXRpb24oZXhl
Yyk7CisgICAgICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgICAgIH0KIAogICAgICAgICBzdGF0
aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiwgSlNWYWx1ZSBwcm90
b3R5cGUsIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiA9ICZzX2RlZmF1bHRJbmZvKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCA0OTlhZWI2ZDI3
NDhjMjk0MDg5MGJjMmJiYzdkZDhkYTg2NGViZWVkLi5kYWY0Y2E5NTgyOTdmMzE4N2M3YTZjY2Nj
ZjQzOTYwNTgwYzhlY2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1
bmN0aW9uLmNwcApAQCAtNjEsMjEgKzYxLDExIEBAIEpTRnVuY3Rpb246OkpTRnVuY3Rpb24oVlB0
clN0ZWFsaW5nSGFja1R5cGUpCiB7CiB9CiAKLUpTRnVuY3Rpb246OkpTRnVuY3Rpb24oRXhlY1N0
YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgTmF0aXZlRXhlY3V0YWJs
ZSogdGh1bmspCitKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNl
KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogICAgICwgbV9leGVjdXRhYmxlKCkKICAgICAsIG1f
c2NvcGVDaGFpbihleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIGdsb2JhbE9iamVjdC0+Z2xvYmFs
U2NvcGVDaGFpbigpKQogewotICAgIGNvbnN0cnVjdG9yQm9keShleGVjLCBsZW5ndGgsIG5hbWUs
IHRodW5rKTsKLX0KLQotSlNGdW5jdGlvbjo6SlNGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQgbGVu
Z3RoLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBOYXRpdmVGdW5jdGlvbiBmdW5jKQotICAgIDog
QmFzZShnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKLSAgICAsIG1fZXhlY3V0YWJsZSgpCi0gICAg
LCBtX3Njb3BlQ2hhaW4oZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBnbG9iYWxPYmplY3QtPmds
b2JhbFNjb3BlQ2hhaW4oKSkKLXsKLSAgICAvLyBDYW4ndCBkbyB0aGlzIGR1cmluZyBpbml0aWFs
aXphdGlvbiBiZWNhdXNlIGdldEhvc3RGdW5jdGlvbiBtaWdodCBkbyBhIEdDIGFsbG9jYXRpb24u
Ci0gICAgY29uc3RydWN0b3JCb2R5KGV4ZWMsIGxlbmd0aCwgbmFtZSwgIGV4ZWMtPmdsb2JhbERh
dGEoKS5nZXRIb3N0RnVuY3Rpb24oZnVuYykpOwogfQogCiBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9u
KEV4ZWNTdGF0ZSogZXhlYywgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBTY29wZUNo
YWluTm9kZSogc2NvcGVDaGFpbk5vZGUpCkBAIC04MywxOSArNzMsMjUgQEAgSlNGdW5jdGlvbjo6
SlNGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJs
ZSwgU2NvcGVDaGEKICAgICAsIG1fZXhlY3V0YWJsZShleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMs
IGV4ZWN1dGFibGUpCiAgICAgLCBtX3Njb3BlQ2hhaW4oZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlz
LCBzY29wZUNoYWluTm9kZSkKIHsKLSAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwotICAg
IHNldFN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIHNjb3BlQ2hhaW5Ob2RlLT5nbG9iYWxP
YmplY3QtPm5hbWVkRnVuY3Rpb25TdHJ1Y3R1cmUoKSk7Ci0gICAgcHV0RGlyZWN0T2Zmc2V0KGV4
ZWMtPmdsb2JhbERhdGEoKSwgc2NvcGVDaGFpbk5vZGUtPmdsb2JhbE9iamVjdC0+ZnVuY3Rpb25O
YW1lT2Zmc2V0KCksIGV4ZWN1dGFibGUtPm5hbWVWYWx1ZSgpKTsKIH0KIAotaW5saW5lIHZvaWQg
SlNGdW5jdGlvbjo6Y29uc3RydWN0b3JCb2R5KEV4ZWNTdGF0ZSogZXhlYywgaW50IGxlbmd0aCwg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSwgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUpCit2b2lk
IEpTRnVuY3Rpb246OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgRXhl
Y3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUpCiB7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xv
YmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CiAgICAgQVNTRVJUKGluaGVy
aXRzKCZzX2luZm8pKTsKICAgICBtX2V4ZWN1dGFibGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwg
dGhpcywgZXhlY3V0YWJsZSk7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhl
Yy0+Z2xvYmFsRGF0YSgpLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzU3RyaW5nKGV4ZWMsIG5hbWUu
aXNOdWxsKCkgPyAiIiA6IG5hbWUudXN0cmluZygpKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwg
RG9udEVudW0pOwogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKGxlbmd0aCksIERvbnREZWxldGUgfCBSZWFkT25s
eSB8IERvbnRFbnVtKTsKIH0KIAordm9pZCBKU0Z1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbihFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEZ1bmN0aW9uRXhlY3V0
YWJsZSogZXhlY3V0YWJsZSwgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW5Ob2RlKQoreworICAg
IEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxP
YmplY3QpOworICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CisgICAgc2V0U3RydWN0dXJl
KGV4ZWMtPmdsb2JhbERhdGEoKSwgc2NvcGVDaGFpbk5vZGUtPmdsb2JhbE9iamVjdC0+bmFtZWRG
dW5jdGlvblN0cnVjdHVyZSgpKTsKKyAgICBwdXREaXJlY3RPZmZzZXQoZXhlYy0+Z2xvYmFsRGF0
YSgpLCBzY29wZUNoYWluTm9kZS0+Z2xvYmFsT2JqZWN0LT5mdW5jdGlvbk5hbWVPZmZzZXQoKSwg
ZXhlY3V0YWJsZS0+bmFtZVZhbHVlKCkpOworfQorCiBKU0Z1bmN0aW9uOjp+SlNGdW5jdGlvbigp
CiB7CiAgICAgQVNTRVJUKHZwdHIoKSA9PSBKU0dsb2JhbERhdGE6OmpzRnVuY3Rpb25WUHRyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAppbmRleCA4YjczYjBi
ZTJmMmEyOTk3ZDkwOTA2MDEyOTczMGQwZGY1MGEwZGQ3Li41NTkzYjhhYWJiNzAwZThkOTUxODg5
NTZlN2Y2YjJhMzcyZTBjZDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNG
dW5jdGlvbi5oCkBAIC00NiwyNCArNDYsMzMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGZy
aWVuZCBjbGFzcyBERkc6OkpJVENvZGVHZW5lcmF0b3I7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBK
U0dsb2JhbERhdGE7CiAKLSAgICAgICAgSlNGdW5jdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9i
amVjdCosIFN0cnVjdHVyZSosIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImLCBOYXRpdmVG
dW5jdGlvbik7Ci0gICAgICAgIEpTRnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3Qq
LCBTdHJ1Y3R1cmUqLCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiwgTmF0aXZlRXhlY3V0
YWJsZSopOworICAgICAgICBKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlKik7CiAgICAgICAgIEpTRnVuY3Rpb24oRXhlY1N0YXRlKiwgRnVuY3Rpb25FeGVj
dXRhYmxlKiwgU2NvcGVDaGFpbk5vZGUqKTsKICAgICAgICAgCiAgICAgcHVibGljOgogICAgICAg
ICB0eXBlZGVmIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCBCYXNlOwogCi0gICAgICAgIHN0YXRp
YyBKU0Z1bmN0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRp
ZmllciYgaWRlbnQsIE5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmMpCisgICAgICAgIHN0YXRpYyBK
U0Z1bmN0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmll
ciYgbmFtZSwgTmF0aXZlRnVuY3Rpb24gbmF0aXZlRnVuY3Rpb24pCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0Z1bmN0aW9uPigqZXhlYy0+aGVhcCgp
KSkgSlNGdW5jdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgbGVuZ3RoLCBpZGVu
dCwgbmF0aXZlRnVuYyk7CisgICAgICAgICAgICBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSA9
IChFeGVjdXRhYmxlQmFzZSopZXhlYy0+Z2xvYmFsRGF0YSgpLmdldEhvc3RGdW5jdGlvbihuYXRp
dmVGdW5jdGlvbik7CisgICAgICAgICAgICBKU0Z1bmN0aW9uKiBmdW5jdGlvbiA9IG5ldyAoYWxs
b2NhdGVDZWxsPEpTRnVuY3Rpb24+KCpleGVjLT5oZWFwKCkpKSBKU0Z1bmN0aW9uKGV4ZWMsIGds
b2JhbE9iamVjdCwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIC8vIENhbid0IGRvIHRoaXMgZHVy
aW5nIGluaXRpYWxpemF0aW9uIGJlY2F1c2UgZ2V0SG9zdEZ1bmN0aW9uIG1pZ2h0IGRvIGEgR0Mg
YWxsb2NhdGlvbi4KKyAgICAgICAgICAgIGZ1bmN0aW9uLT5maW5pc2hDcmVhdGlvbihleGVjLCBn
bG9iYWxPYmplY3QsIGxlbmd0aCwgbmFtZSwgZXhlY3V0YWJsZSk7CisgICAgICAgICAgICByZXR1
cm4gZnVuY3Rpb247CiAgICAgICAgIH0KLSAgICAgICAgc3RhdGljIEpTRnVuY3Rpb24qIGNyZWF0
ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgTmF0aXZl
RXhlY3V0YWJsZSogbmF0aXZlRXhlYykKKworICAgICAgICBzdGF0aWMgSlNGdW5jdGlvbiogY3Jl
YXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIE5hdGl2
ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0Z1bmN0aW9uPigqZXhlYy0+aGVhcCgpKSkgSlNGdW5j
dGlvbihleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgbGVuZ3RoLCBpZGVudCwgbmF0aXZl
RXhlYyk7CisgICAgICAgICAgICBKU0Z1bmN0aW9uKiBmdW5jdGlvbiA9IG5ldyAoYWxsb2NhdGVD
ZWxsPEpTRnVuY3Rpb24+KCpleGVjLT5oZWFwKCkpKSBKU0Z1bmN0aW9uKGV4ZWMsIGdsb2JhbE9i
amVjdCwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uLT5maW5pc2hDcmVhdGlvbihl
eGVjLCBnbG9iYWxPYmplY3QsIGxlbmd0aCwgbmFtZSwgKEV4ZWN1dGFibGVCYXNlKiluYXRpdmVF
eGVjdXRhYmxlKTsKKyAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbjsKICAgICAgICAgfQotICAg
ICAgICBzdGF0aWMgSlNGdW5jdGlvbiogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgRnVuY3Rpb25F
eGVjdXRhYmxlKiBmdW5jRXhlYywgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4pCisKKyAgICAg
ICAgc3RhdGljIEpTRnVuY3Rpb24qIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEZ1bmN0aW9uRXhl
Y3V0YWJsZSogZXhlY3V0YWJsZSwgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4pCiAgICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0Z1bmN0aW9uPigqZXhl
Yy0+aGVhcCgpKSkgSlNGdW5jdGlvbihleGVjLCBmdW5jRXhlYywgc2NvcGVDaGFpbik7CisgICAg
ICAgICAgICBKU0Z1bmN0aW9uKiBmdW5jdGlvbiA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTRnVuY3Rp
b24+KCpleGVjLT5oZWFwKCkpKSBKU0Z1bmN0aW9uKGV4ZWMsIGV4ZWN1dGFibGUsIHNjb3BlQ2hh
aW4pOworICAgICAgICAgICAgZnVuY3Rpb24tPmZpbmlzaENyZWF0aW9uKGV4ZWMsIHNjb3BlQ2hh
aW4tPmdsb2JhbE9iamVjdC5nZXQoKSwgZXhlY3V0YWJsZSwgc2NvcGVDaGFpbik7CisgICAgICAg
ICAgICByZXR1cm4gZnVuY3Rpb247CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHZpcnR1
YWwgfkpTRnVuY3Rpb24oKTsKQEAgLTEyMyw3ICsxMzIsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICBwcm90ZWN0ZWQ6CiAgICAgICAgIGNvbnN0IHN0YXRpYyB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8
IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNP
YmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCi0gICAgICAgIHZvaWQgY29uc3RydWN0b3JCb2R5KEV4
ZWNTdGF0ZSosIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEV4ZWN1dGFibGVC
YXNlKik7CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxP
YmplY3QqLCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBFeGVjdXRhYmxlQmFz
ZSopOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2Jq
ZWN0KiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgU2NvcGVDaGFpbk5vZGUqKTsKIAogICAgIHByaXZh
dGU6CiAgICAgICAgIGV4cGxpY2l0IEpTRnVuY3Rpb24oVlB0clN0ZWFsaW5nSGFja1R5cGUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXgg
YzIzMGQ3MDJiNTNmZDE3ZTVlNWRiZTIxNDI5YjAxOGY5MTEwMmQxYy4uODVjNDI5NjYzMWFlM2U2
M2Q5MzgwMzVlYTcwODAwNGJmY2VlMDczMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xNTksNyArMTU5LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgICAgICAsIG1fd2Vha1JhbmRvbShzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmFu
ZG9tTnVtYmVyKCkgKiAoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpICsgMS4w
KSkpCiAgICAgICAgICAgICAsIG1fZXZhbEVuYWJsZWQodHJ1ZSkKICAgICAgICAgewotICAgICAg
ICAgICAgY29uc3RydWN0b3JCb2R5KHRoaXMpOworICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24o
Z2xvYmFsRGF0YSwgdGhpcyk7CiAgICAgICAgIH0KIAogICAgICAgICBKU0dsb2JhbE9iamVjdChK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU09iamVjdCog
dGhpc1ZhbHVlKQpAQCAtMTY5LDExICsxNjksMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
ICAgICAsIG1fd2Vha1JhbmRvbShzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmFuZG9tTnVtYmVyKCkg
KiAoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpICsgMS4wKSkpCiAgICAgICAg
ICAgICAsIG1fZXZhbEVuYWJsZWQodHJ1ZSkKICAgICAgICAgewotICAgICAgICAgICAgY29uc3Ry
dWN0b3JCb2R5KHRoaXNWYWx1ZSk7CisgICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxE
YXRhLCB0aGlzVmFsdWUpOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBjb25zdHJ1Y3RvckJv
ZHkoSlNPYmplY3QqIHRoaXNWYWx1ZSkKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTT2JqZWN0KiB0aGlzVmFsdWUpCiAgICAgICAgIHsKKyAg
ICAgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgICAgICAgICAg
Q09NUElMRV9BU1NFUlQoSlNHbG9iYWxPYmplY3Q6OkFub255bW91c1Nsb3RDb3VudCA9PSAxLCBK
U0dsb2JhbE9iamVjdF9oYXNfb25seV9hX3NpbmdsZV9zbG90KTsKICAgICAgICAgICAgIHB1dFRo
aXNUb0Fub255bW91c1ZhbHVlKDApOwogICAgICAgICAgICAgaW5pdCh0aGlzVmFsdWUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCmluZGV4IDY3ZmRh
MDUwYTYyODhkNzBhOTQyOThjZTAyYTcyNmQ4MjhlMjMyMWQuLjEzMWJhYTdhZjMyMTI3M2M3ZGJl
MDIwMTZjM2Y3ZjQwM2M1OTM0ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTm90QW5PYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU05vdEFuT2JqZWN0LmgKQEAgLTQxLDcgKzQxLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIEpTTm90QW5PYmplY3QoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgOiBKU05vbkZp
bmFsT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+Z2xvYmFsRGF0YSgpLm5vdEFuT2Jq
ZWN0U3RydWN0dXJlLmdldCgpKQogICAgICAgICB7Ci0gICAgICAgICAgICBmaW5pc2hDcmVhdGlv
bihleGVjLT5nbG9iYWxEYXRhKCkpOwogICAgICAgICB9CiAgICAgICAgIAogICAgIHB1YmxpYzoK
QEAgLTQ5LDcgKzQ4LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIEpTTm90
QW5PYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU05vdEFuT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkg
SlNOb3RBbk9iamVjdChleGVjKTsKKyAgICAgICAgICAgIEpTTm90QW5PYmplY3QqIG9iamVjdCA9
IG5ldyAoYWxsb2NhdGVDZWxsPEpTTm90QW5PYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBKU05vdEFu
T2JqZWN0KGV4ZWMpOworICAgICAgICAgICAgb2JqZWN0LT5maW5pc2hDcmVhdGlvbihleGVjLT5n
bG9iYWxEYXRhKCkpOworICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICAgICAgfQogCiAg
ICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OT2JqZWN0LmNwcAppbmRleCAwNWJkZTI4MTlhMDZmOTE0OTQ4MjA5YmU0M2QzMzY4
YzkwNGUwZjI4Li4xNzMxNTJiMjkxOTNkZjIwMjQ1ODEyMzc2NzY4ZmJkODlkZTczNjBjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcApAQCAtNTYsNiAr
NTYsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiBKU09OT2JqZWN0OjpKU09OT2JqZWN0KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogeworICAgIGZpbmlz
aENyZWF0aW9uKGdsb2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgSlNPTk9iamVjdDo6ZmluaXNoQ3Jl
YXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hD
cmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKICAgICBB
U1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OT2JqZWN0LmgKaW5kZXggNzdiZjQzNjk5MTFiNmVjNDBiMzBhY2Q4MzQyNzNlZGMz
OTkzNWVhYS4uNDgwZTc0YmRiODM0OTM2YmQyOWY3MmU2YWNkZTI0NjE3ZGU2YTVmMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaApAQCAtNDksNiArNDksNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87
CiAKICAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxP
YmplY3QqKTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwog
CiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuY3BwCmluZGV4IDg4NTUzMGYxMGY3OTkwMWRm
ZjY0ODQzYTc0MzQzMDQ4OGY1ZjdhNGYuLmFlNzAzODA4YjBmYjQ1NGY1NWY1NDAzZjA2MTk5YjEz
NzNlMGIyYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0V2l0aEdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcApAQCAtMzMsMTMgKzMzLDExIEBAIG5hbWVz
cGFjZSBKU0MgewogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpKU09iamVjdFdpdGhHbG9iYWxP
YmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CiAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBzdHJ1
Y3R1cmUpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCks
IGdsb2JhbE9iamVjdCk7CiB9CiAKLUpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6SlNPYmplY3RX
aXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCitKU09iamVjdFdpdGhHbG9iYWxP
YmplY3Q6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRh
LCBzdHJ1Y3R1cmUpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgZ2xvYmFsT2Jq
ZWN0KTsKIH0KIAogdm9pZCBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9u
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
QEAgLTUwLDcgKzQ4LDcgQEAgdm9pZCBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OmZpbmlzaENy
ZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWwKICAgICBpZiAoIWdsb2Jh
bE9iamVjdCkKICAgICAgICAgY2xlYXJBbm9ueW1vdXNWYWx1ZShHbG9iYWxPYmplY3RTbG90KTsK
ICAgICBlbHNlCi0gICAgICAgIHB1dEFub255bW91c1ZhbHVlKGdsb2JhbERhdGEsIEdsb2JhbE9i
amVjdFNsb3QsIGdsb2JhbE9iamVjdCk7CisgICAgICAgIHB1dEFub255bW91c1ZhbHVlKGdsb2Jh
bE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBHbG9iYWxPYmplY3RTbG90LCBnbG9iYWxPYmplY3QpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgKaW5kZXggMTMwZTA3ZDY5MDUy
ZmQyMWZiMmE3MjZmMTIyODE3YzhhNzZmYmM4OC4uMzc5ODQ4YjY1NDM2NDU0OTFiNzJhNDVhYTFj
YTU3YzU0MWIyZTI2NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGlj
OgogCiBwcm90ZWN0ZWQ6CiAgICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlKik7Ci0gICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFs
RGF0YSYsIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CisgICAgSlNPYmplY3RXaXRoR2xv
YmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSopOwogCiAgICAgSlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0KFZQdHJTdGVhbGluZ0hhY2tUeXBlKQogICAgICAgICA6IEpTTm9uRmluYWxP
YmplY3QoVlB0clN0ZWFsaW5nSGFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaAppbmRleCBiMTE5M2ZkYmRlZmVmYWUyMWZmNWY0
Y2M0MzFkMzQyNDljZTZhOGFjLi4yOWE0Y2FlOTE0N2E1NzczMmI4YmZhODExODI3ODQ5MTM5M2Jl
MWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Nj
b3BlT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNT
Y29wZU9iamVjdC5oCkBAIC0zNCw5ICszNCw5IEBAIG5hbWVzcGFjZSBKU0N7CiAgICAgcHVibGlj
OgogICAgICAgICB0eXBlZGVmIEpTVmFyaWFibGVPYmplY3QgQmFzZTsKIAotICAgICAgICBzdGF0
aWMgSlNTdGF0aWNTY29wZU9iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgaWRlbnQsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCisgICAg
ICAgIHN0YXRpYyBKU1N0YXRpY1Njb3BlT2JqZWN0KiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRy
aWJ1dGVzKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8
SlNTdGF0aWNTY29wZU9iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIEpTU3RhdGljU2NvcGVPYmplY3Qo
ZXhlYywgaWRlbnQsIHZhbHVlLCBhdHRyaWJ1dGVzKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcg
KGFsbG9jYXRlQ2VsbDxKU1N0YXRpY1Njb3BlT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgSlNTdGF0
aWNTY29wZU9iamVjdChleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSwgYXR0cmlidXRlcyk7CiAgICAg
ICAgIH0KIAogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYp
OwpAQCAtNTAsMTQgKzUwLDE5IEBAIG5hbWVzcGFjZSBKU0N7CiAgICAgICAgIHN0YXRpYyBTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUg
cHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7IH0KIAogICAgIHByb3RlY3RlZDoKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEpTVmFsdWUgdmFs
dWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCisgICAgICAgIHsKKyAgICAgICAgICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CisgICAgICAgICAgICBtX3JlZ2lzdGVy
U3RvcmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgdmFsdWUpOworICAgICAgICAgICAg
c3ltYm9sVGFibGUoKS5hZGQoaWRlbnRpZmllci5pbXBsKCksIFN5bWJvbFRhYmxlRW50cnkoLTEs
IGF0dHJpYnV0ZXMpKTsKKyAgICAgICAgfQogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBJc0Vudmlyb25tZW50UmVjb3JkIHwgT3ZlcnJpZGVzR2V0T3duUHJv
cGVydHlTbG90IHwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5
TmFtZXMgfCBKU1ZhcmlhYmxlT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHByaXZhdGU6
Ci0gICAgICAgIEpTU3RhdGljU2NvcGVPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBpZGVudCwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcykKKyAgICAg
ICAgSlNTdGF0aWNTY29wZU9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IGlkZW50aWZpZXIsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCiAgICAgICAg
ICAgICA6IEpTVmFyaWFibGVPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5nbG9iYWxE
YXRhKCkuc3RhdGljU2NvcGVTdHJ1Y3R1cmUuZ2V0KCksICZtX3N5bWJvbFRhYmxlLCByZWludGVy
cHJldF9jYXN0PFJlZ2lzdGVyKj4oJm1fcmVnaXN0ZXJTdG9yZSArIDEpKQogICAgICAgICB7Ci0g
ICAgICAgICAgICBtX3JlZ2lzdGVyU3RvcmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywg
dmFsdWUpOwotICAgICAgICAgICAgc3ltYm9sVGFibGUoKS5hZGQoaWRlbnQuaW1wbCgpLCBTeW1i
b2xUYWJsZUVudHJ5KC0xLCBhdHRyaWJ1dGVzKSk7CisgICAgICAgICAgICBmaW5pc2hDcmVhdGlv
bihleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSwgYXR0cmlidXRlcyk7CiAgICAgICAgIH0KICAgICAg
ICAgCiAgICAgICAgIFN5bWJvbFRhYmxlIG1fc3ltYm9sVGFibGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmgKaW5kZXggZjcxZWQzMDk5NDli
MzEyMzRhZGFmYzg4ZThhNjRhNTg2OTUyOTIwMC4uM2YxMTg0YjlkZDg4NDY2MzMwNDExODlhZmM1
YjdjZTEwMTFkOGJmNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNWYXJpYWJsZU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
VmFyaWFibGVPYmplY3QuaApAQCAtNzQsNyArNzQsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgICAgICwgbV9zeW1ib2xUYWJsZShzeW1ib2xUYWJsZSkKICAgICAgICAgICAgICwgbV9yZWdp
c3RlcnMocmVpbnRlcnByZXRfY2FzdDxXcml0ZUJhcnJpZXI8VW5rbm93bj4qPihyZWdpc3RlcnMp
KQogICAgICAgICB7Ci0gICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAg
ICAgICAgfQogCiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFw
cGVyT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmpl
Y3QuaAppbmRleCAzYjQzODMxMjQzOGRiYzczZTA4NjA3YWUzYjZmMGZmNDllMWFlZGJhLi4zZTU4
OWYyNzE0M2UyNGQ3MDlkYjE2MGVmOGVhMTViN2U2MDY2ZThjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaApAQCAtNTMsNyArNTMsNiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICBpbmxpbmUgSlNXcmFwcGVyT2JqZWN0OjpKU1dyYXBwZXJPYmpl
Y3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICAg
ICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKICAgICB7Ci0gICAg
ICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIH0KIAogICAgIGlubGluZSBKU1Zh
bHVlIEpTV3JhcHBlck9iamVjdDo6aW50ZXJuYWxWYWx1ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCmluZGV4IGU0YzRiNWJlYzhkZDFmOWI4
NGU0ZWY3YjE2YTkyZjU5MGI1NzcyMTkuLjVlYzU2YTM2ZTczNzU1OWEzMGRmYjEyMDhhMGMxM2Nl
YmE5ODdiNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3Qu
Y3BwCkBAIC04Nyw2ICs4NywxMiBAQCBjb25zdCBDbGFzc0luZm8gTWF0aE9iamVjdDo6c19pbmZv
ID0geyAiTWF0aCIsICZKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OnNfaW5mbwogTWF0aE9iamVj
dDo6TWF0aE9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0
KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMsIGds
b2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgTWF0aE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0
YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwog
ICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAKICAgICBwdXREaXJlY3RXaXRob3V0VHJh
bnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIElkZW50aWZpZXIoZXhlYywgIkUiKSwganNOdW1i
ZXIoZXhwKDEuMCkpLCBEb250RGVsZXRlIHwgRG9udEVudW0gfCBSZWFkT25seSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKaW5kZXggOWNmYThkMDI3ZGUzY2Y4
NmQyZDMyNjA3MDdmZTk3YWRlMjZhNTFmNC4uN2ZiZWQ5MGJmYmQyY2IxMTVhZDg1MjRmZTQzZWQ3
YTRmNjBhZTI4YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0
aE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3Qu
aApAQCAtNDcsNiArNDcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAgcHJv
dGVjdGVkOgorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFs
T2JqZWN0Kik7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsK
ICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1i
ZXJPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0
LmNwcAppbmRleCAxMzk0NWM3NTBlMjViNTY1NWUxNWFmYjZmNzA2YTE2ZDE3NDQ0NWMwLi4yMjY3
NmQwZmZhOGNjNzQ2YWQxNmQ2ZTQyOGYzYmM4Y2Q3MGQ3NjJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5jcHAKQEAgLTM0LDYgKzM0LDEyIEBAIGNv
bnN0IENsYXNzSW5mbyBOdW1iZXJPYmplY3Q6OnNfaW5mbyA9IHsgIk51bWJlciIsICZKU1dyYXBw
ZXJPYmplY3Q6OnNfaW5mbywgMCwKIE51bWJlck9iamVjdDo6TnVtYmVyT2JqZWN0KEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU1dyYXBwZXJP
YmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2Jh
bERhdGEpOworfQorCit2b2lkIE51bWJlck9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEp
OwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmgKaW5kZXggN2FjODFkNjM4YTUxMWVmODY1YzIw
Zjg1MzEzMGI5MGI2MWNhYWUwYi4uOTAxZjVlYjRiMGYzYjU0MTdmZGM5OWQyMjVlZWEyZjcxMzQ1
MjFmYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2Jq
ZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmgK
QEAgLTI4LDYgKzI4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgTnVtYmVyT2JqZWN0
IDogcHVibGljIEpTV3JhcHBlck9iamVjdCB7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBOdW1i
ZXJPYmplY3QoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKik7CisgICAgICAgIHZvaWQgZmluaXNo
Q3JlYXRpb24oSlNHbG9iYWxEYXRhJik7CiAKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYg
SlNXcmFwcGVyT2JqZWN0IEJhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0UHJvdG90eXBlLmNwcAppbmRleCAwODdjZDI2MGNmNTVkM2YxNWIzMzY1MjUzNmE1
NmJiNzc0MDE3OTlkLi41MDg5YTVmZmRiZjc3M2QwZmY3ZTg2OTkyMTM1ZDU1NWFhMjk1NzY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5j
cHAKQEAgLTYzLDExICs2MywxMCBAQCBjb25zdCBDbGFzc0luZm8gT2JqZWN0UHJvdG90eXBlOjpz
X2luZm8gPSB7ICJPYmplY3QiLCAmSlNOb25GaW5hbE9iamVjdDo6c19pbmZvLAogCiBBU1NFUlRf
Q0xBU1NfRklUU19JTl9DRUxMKE9iamVjdFByb3RvdHlwZSk7CiAKLU9iamVjdFByb3RvdHlwZTo6
T2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlKiBzdHVjdHVyZSkKK09iamVjdFByb3RvdHlwZTo6T2JqZWN0UHJvdG90
eXBlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHVjdHVyZSkKICAgICA6IEpTTm9uRmlu
YWxPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHVjdHVyZSkKICAgICAsIG1faGFzTm9Qcm9w
ZXJ0aWVzV2l0aFVJbnQzMk5hbWVzKHRydWUpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+
Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogfQogCiB2b2lkIE9iamVjdFByb3RvdHlwZTo6
ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T2JqZWN0UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQ
cm90b3R5cGUuaAppbmRleCAwYTJjOGZkNDhlZTdkNDlkZWFiZjkxYmVlMDU4NjBiMmZlOTNkYTMx
Li41ODRhYzMwZGZjYTI0NzYwODcwMGRjMDZlN2ZhYWRkNDExZGZmODA1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaApAQCAtMzEsNyArMzEs
OSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgT2JqZWN0UHJvdG90eXBlKiBj
cmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxs
b2NhdGVDZWxsPE9iamVjdFByb3RvdHlwZT4oKmV4ZWMtPmhlYXAoKSkpIE9iamVjdFByb3RvdHlw
ZShleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7CisgICAgICAgICAgICBPYmplY3RQcm90
b3R5cGUqIHByb3RvdHlwZSA9IG5ldyAoYWxsb2NhdGVDZWxsPE9iamVjdFByb3RvdHlwZT4oKmV4
ZWMtPmhlYXAoKSkpIE9iamVjdFByb3RvdHlwZShleGVjLCBzdHJ1Y3R1cmUpOworICAgICAgICAg
ICAgcHJvdG90eXBlLT5maW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIGdsb2JhbE9i
amVjdCk7CisgICAgICAgICAgICByZXR1cm4gcHJvdG90eXBlOwogICAgICAgICB9CiAKICAgICAg
ICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CkBAIC00OCw3ICs1MCw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIEpT
R2xvYmFsT2JqZWN0Kik7CiAKICAgICBwcml2YXRlOgotICAgICAgICBPYmplY3RQcm90b3R5cGUo
RXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKKyAgICAgICAgT2JqZWN0
UHJvdG90eXBlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSopOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
cHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cENvbnN0cnVjdG9yLmNwcAppbmRleCA0Nzc5YjI1NmUwNGY1ZGMzYzI1YTZiNmMxNDk0MGMz
NjM2ODRlNGQzLi5jOGExMzNiNDI1Njg3MzE1ZmY2ZTgyMWMwYmEyN2E1N2ExNWEzM2VhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3Iu
Y3BwCkBAIC0xMDksOCArMTA5LDE0IEBAIFJlZ0V4cENvbnN0cnVjdG9yOjpSZWdFeHBDb25zdHJ1
Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiB9CiAKIFJl
Z0V4cE1hdGNoZXNBcnJheTo6UmVnRXhwTWF0Y2hlc0FycmF5KEV4ZWNTdGF0ZSogZXhlYywgUmVn
RXhwQ29uc3RydWN0b3JQcml2YXRlKiBkYXRhKQotICAgIDogSlNBcnJheShleGVjLT5nbG9iYWxE
YXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cmVnRXhwTWF0Y2hlc0FycmF5U3Ry
dWN0dXJlKCksIGRhdGEtPmxhc3ROdW1TdWJQYXR0ZXJucyArIDEsIENyZWF0ZUluaXRpYWxpemVk
KQorICAgIDogSlNBcnJheShleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKS0+cmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0dXJlKCkpCiB7CisgICAgZmluaXNoQ3Jl
YXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBkYXRhKTsKK30KKwordm9pZCBSZWdFeHBNYXRjaGVz
QXJyYXk6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUmVnRXhwQ29u
c3RydWN0b3JQcml2YXRlKiBkYXRhKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2Jh
bERhdGEsIGRhdGEtPmxhc3ROdW1TdWJQYXR0ZXJucyArIDEsIENyZWF0ZUluaXRpYWxpemVkKTsK
ICAgICBSZWdFeHBDb25zdHJ1Y3RvclByaXZhdGUqIGQgPSBuZXcgUmVnRXhwQ29uc3RydWN0b3JQ
cml2YXRlOwogICAgIGQtPmlucHV0ID0gZGF0YS0+bGFzdElucHV0OwogICAgIGQtPmxhc3RJbnB1
dCA9IGRhdGEtPmxhc3RJbnB1dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKaW5kZXggZWQyMWJjODllNWUyN2QzNjFlNjUzMzllNGQ0
M2Q2YTE2ZWFhNGRmMi4uODdkNTljNzE0ZWI1NGRmMjgxNzNkZmVkZWJkZWQ1NDZmNjUxYzNhYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0Fy
cmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0Fy
cmF5LmgKQEAgLTM3LDYgKzM3LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KICAgICAg
ICAgdmlydHVhbCB+UmVnRXhwTWF0Y2hlc0FycmF5KCk7CiAKKyAgICBwcm90ZWN0ZWQ6CisgICAg
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiwgUmVnRXhwQ29uc3RydWN0b3JQ
cml2YXRlKiBkYXRhKTsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKaW5kZXggMmMxMjY1NTkyZTg2ODUzNDQ5
MjhlYzRkZTExZGZmMTkwMDQxNDI5Ny4uODQxZDkzOTQxMTdhYjA5MTE3MzhkMGM0ODVlM2ZlNTBi
NWExZGQxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmpl
Y3QuY3BwCkBAIC02Niw2ICs2NiwxMiBAQCBSZWdFeHBPYmplY3Q6OlJlZ0V4cE9iamVjdChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUgogICAgIDog
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogICAgICwg
ZChhZG9wdFB0cihuZXcgUmVnRXhwT2JqZWN0RGF0YShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEo
KSwgdGhpcywgcmVnRXhwKSkpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0KTsK
K30KKwordm9pZCBSZWdFeHBPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5n
bG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8p
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
T2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaApp
bmRleCA3M2YyMTU0OTI2NzAwNzliNTkzOTJhMjhlNWM2MTNmM2NkZjBiZTEzLi5iY2U0NTVhZjgx
MmY5MWJhYmIyMjYwNzBhZDIwZTllMDQ2ZjI0MTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBPYmplY3QuaApAQCAtNzQsNiArNzQsNyBAQCBuYW1lc3BhY2UgSlND
IHsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgUmVnRXhwT2JqZWN0KEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlKiwgUmVnRXhwKik7CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNH
bG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dCB8IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZh
bEFjdGl2YXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZh
bEFjdGl2YXRpb24uY3BwCmluZGV4IDk2ZDk0ZDg0ZWFiYjUyNjA1OTY5N2ZlMzM2ZGFhYjc4MjEz
NTRiNTQuLmU2NjZkZWUxNTc5MmI3ZmJlODk3ZTYwZDJjNTAzZDYyM2I3NmZkODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlv
bi5jcHAKQEAgLTMxLDcgKzMxLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiBTdHJpY3RFdmFsQWN0aXZh
dGlvbjo6U3RyaWN0RXZhbEFjdGl2YXRpb24oRXhlY1N0YXRlKiBleGVjKQogICAgIDogSlNOb25G
aW5hbE9iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmdsb2JhbERhdGEoKS5zdHJpY3RF
dmFsQWN0aXZhdGlvblN0cnVjdHVyZS5nZXQoKSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihleGVj
LT5nbG9iYWxEYXRhKCkpOwogfQogCiBib29sIFN0cmljdEV2YWxBY3RpdmF0aW9uOjpkZWxldGVQ
cm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5oCmluZGV4IDc2OTgx
ZmRiNDI4OTEzYzY3MDY0MWY4MGI3YmRiMTFiNWYxYWY4MTQuLjhhYTIyMzRjODdjNTE1OWJlNTlk
NjIwYzJhZDgxYTQwZTM5NjhmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uaApAQCAtMzYsNyArMzYsOSBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgU3RyaWN0RXZhbEFjdGl2YXRpb24qIGNyZWF0ZShFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8U3RyaWN0RXZhbEFj
dGl2YXRpb24+KCpleGVjLT5oZWFwKCkpKSBTdHJpY3RFdmFsQWN0aXZhdGlvbihleGVjKTsKKyAg
ICAgICAgU3RyaWN0RXZhbEFjdGl2YXRpb24qIGFjdGl2YXRpb24gPSBuZXcgKGFsbG9jYXRlQ2Vs
bDxTdHJpY3RFdmFsQWN0aXZhdGlvbj4oKmV4ZWMtPmhlYXAoKSkpIFN0cmljdEV2YWxBY3RpdmF0
aW9uKGV4ZWMpOworICAgICAgICBhY3RpdmF0aW9uLT5maW5pc2hDcmVhdGlvbihleGVjLT5nbG9i
YWxEYXRhKCkpOworICAgICAgICByZXR1cm4gYWN0aXZhdGlvbjsKICAgICB9CiAKICAgICB2aXJ0
dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKaW5kZXgg
MWQwYzdhYmY5OGQwODdjMGI1MTdiNTIwMjQ2ZTJhOGVmZWIzMDc2Ni4uYjhmYWQ5ZTQ5NzM3N2Fj
YTc0NTcwMTNjZGEzNzAzYjhmMjcwNTkzMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdPYmplY3QuY3BwCkBAIC0zMiw2ICszMiwxMiBAQCBjb25zdCBDbGFzc0lu
Zm8gU3RyaW5nT2JqZWN0OjpzX2luZm8gPSB7ICJTdHJpbmciLCAmSlNXcmFwcGVyT2JqZWN0Ojpz
X2luZm8sIDAsCiBTdHJpbmdPYmplY3Q6OlN0cmluZ09iamVjdChKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1N0cmluZyogc3RyaW5nKQogICAgIDogSlNX
cmFwcGVyT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlv
bihnbG9iYWxEYXRhLCBzdHJpbmcpOworfQorCit2b2lkIFN0cmluZ09iamVjdDo6ZmluaXNoQ3Jl
YXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1N0cmluZyogc3RyaW5nKQoreworICAg
IEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIEFTU0VSVChpbmhlcml0cygm
c19pbmZvKSk7CiAgICAgc2V0SW50ZXJuYWxWYWx1ZShnbG9iYWxEYXRhLCBzdHJpbmcpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAppbmRleCA3ZDEz
NWMxZTQxMjJmYWU3ZmFmZjE4ZGIyZTFiYTM3ZDc1Y2Q0NTVmLi4wYjBjMjAwNjQ4YmViZjhhZTY0
YjVjNzc5ZDFhNzU2M2MxOTY1YmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdPYmplY3QuaApAQCAtNjAsNiArNjAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgfQogCiAgICAgcHJvdGVjdGVkOgorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xv
YmFsRGF0YSYsIEpTU3RyaW5nKik7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFBy
b3BlcnR5TmFtZXMgfCBKU1dyYXBwZXJPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogICAgICAgICBT
dHJpbmdPYmplY3QoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiwgSlNTdHJpbmcqKTsKICAgICB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKaW5kZXggMTBhNjg2ZGNjNjk4MTBmNmM0ZjVmN2RhMTc3
ZTVhZjAwZTRhYmQ3YS4uNzY5ZTQ0MDg5Y2JmMDhiN2IxMDY1YTA5MTk3ZmNlYWRjODVlN2FmZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDgtMzAgIE1h
cmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBVbnppcCBp
bml0aWFsaXphdGlvbiBsaXN0cyBhbmQgY29uc3RydWN0b3JzIGluIEpTQ2VsbCBoaWVyYXJjaHkg
KDQvNykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3
MTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29t
cGxldGVkIHRoZSBmb3VydGggbGV2ZWwgb2YgdGhlIHJlZmFjdG9yaW5nIHRvIGFkZCBmaW5pc2hD
cmVhdGlvbigpIAorICAgICAgICBtZXRob2RzIHRvIGFsbCBjbGFzc2VzIHdpdGhpbiB0aGUgSlND
ZWxsIGhpZXJhcmNoeSB3aXRoIG5vbi10cml2aWFsIAorICAgICAgICBjb25zdHJ1Y3RvciBib2Rp
ZXMuCisKKyAgICAgICAgVGhpcyBwcmltYXJpbHkgY29uc2lzdHMgb2YgcHVzaGluZyB0aGUgY2Fs
bHMgdG8gZmluaXNoQ3JlYXRpb24oKSBkb3duIAorICAgICAgICBpbnRvIHRoZSBjb25zdHJ1Y3Rv
cnMgb2YgdGhlIHN1YmNsYXNzZXMgb2YgdGhlIHNlY29uZCBsZXZlbCBvZiB0aGUgaGllcmFyY2h5
IAorICAgICAgICBhcyB3ZWxsIGFzIHB1bGxpbmcgdGhlIGZpbmlzaENyZWF0aW9uKCkgY2FsbHMg
b3V0IGludG8gdGhlIGNsYXNzJ3MgY29ycmVzcG9uZGluZworICAgICAgICBjcmVhdGUoKSBtZXRo
b2QgaWYgaXQgaGFzIG9uZS4gIERvaW5nIGJvdGggc2ltdWx0YW5lb3VzbHkgYWxsb3dzIHVzIHRv
IAorICAgICAgICBtYWludGFpbiB0aGUgaW52YXJpYW50IHRoYXQgdGhlIGZpbmlzaENyZWF0aW9u
KCkgbWV0aG9kIGNoYWluIGlzIGNhbGxlZCBleGFjdGx5IAorICAgICAgICBvbmNlIGR1cmluZyB0
aGUgY3JlYXRpb24gb2YgYW4gb2JqZWN0LCBzaW5jZSBjYWxsaW5nIGl0IGFueSBvdGhlciBudW1i
ZXIgb2YgCisgICAgICAgIHRpbWVzICgwLCAyLCBvciBtb3JlKSB3aWxsIGNhdXNlIGFuIGFzc2Vy
dGlvbiBmYWlsdXJlLgorCisgICAgICAgICogVXNlck9iamVjdEltcC5jcHA6CisgICAgICAgIChV
c2VyT2JqZWN0SW1wOjpVc2VyT2JqZWN0SW1wKToKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1wLmg6
CisgICAgICAgIChVc2VyT2JqZWN0SW1wOjpjcmVhdGUpOgorCiAyMDExLTA4LTI5ICBNYXJrIEhh
aG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgVW56aXAgaW5pdGlh
bGl6YXRpb24gbGlzdHMgYW5kIGNvbnN0cnVjdG9ycyBpbiBKU0NlbGwgaGllcmFyY2h5ICgzLzcp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKaW5kZXggMGQ0ZDQ1YWY3MmY4
YzI3NGQyMDMwZmJlM2I4NmJhZWM5ZTRmZDIxNi4uYWQzNjkzYjNhZDEzMDVlMGE5YzI0NmViNmM5
OTgxMzM2MWUwZjRiZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmpl
Y3RJbXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcApA
QCAtMzgsNyArMzgsNiBAQCBVc2VyT2JqZWN0SW1wOjpVc2VyT2JqZWN0SW1wKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTVQogICAgIDogSlNOb25GaW5h
bE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiAgICAgLCBmSlNVc2VyT2JqZWN0KChKU1Vz
ZXJPYmplY3QqKXVzZXJPYmplY3QtPlJldGFpbigpKQogewotICAgIGZpbmlzaENyZWF0aW9uKGds
b2JhbERhdGEpOwogfQogCiBVc2VyT2JqZWN0SW1wOjp+VXNlck9iamVjdEltcCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oIGIvU291cmNlL0phdmFT
Y3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaAppbmRleCA4ZWU4ZTJhNzA0N2Y4NjlhMjk3MjY1Y2Mx
YzI2YzNmMzZmOTA4YTgwLi4xNTk2MDcwMGNmYWM1YWEwNDQzYTg5YmE4NjM4NGNiN2QxNjc3ZTE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKQEAgLTQwLDcgKzQwLDkgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIFVzZXJPYmplY3RJbXAqIGNyZWF0ZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1VzZXJPYmplY3QqIHVzZXJPYmpl
Y3QpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8VXNlck9iamVjdElt
cD4oZ2xvYmFsRGF0YS5oZWFwKSkgVXNlck9iamVjdEltcChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUs
IHVzZXJPYmplY3QpOworICAgICAgICBVc2VyT2JqZWN0SW1wKiBvYmplY3QgPSBuZXcgKGFsbG9j
YXRlQ2VsbDxVc2VyT2JqZWN0SW1wPihnbG9iYWxEYXRhLmhlYXApKSBVc2VyT2JqZWN0SW1wKGds
b2JhbERhdGEsIHN0cnVjdHVyZSwgdXNlck9iamVjdCk7CisgICAgICAgIG9iamVjdC0+ZmluaXNo
Q3JlYXRpb24oZ2xvYmFsRGF0YSk7CisgICAgICAgIHJldHVybiBvYmplY3Q7CiAgICAgfQogICAg
IAogICAgIHZpcnR1YWwgflVzZXJPYmplY3RJbXAoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKaW5kZXggMDBmYWMwYTdlZTEwZDE3Mzc2N2Rk
M2VjODVmNjhlOTc5NjA4MjVmNy4uNWQwZDQzNmNjOTY4NzNhZDlmYTAzOTVmMzU1Y2VhZWUzMjE1
Mzg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dT
aGVsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVs
bC5jcHAKQEAgLTQzLDExICs0MywxMCBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTRE9N
V2luZG93U2hlbGwpOwogCiBjb25zdCBDbGFzc0luZm8gSlNET01XaW5kb3dTaGVsbDo6c19pbmZv
ID0geyAiSlNET01XaW5kb3dTaGVsbCIsICZCYXNlOjpzX2luZm8sIDAsIDAgfTsKIAotSlNET01X
aW5kb3dTaGVsbDo6SlNET01XaW5kb3dTaGVsbChQYXNzUmVmUHRyPERPTVdpbmRvdz4gd2luZG93
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCkKK0pTRE9NV2lu
ZG93U2hlbGw6OkpTRE9NV2luZG93U2hlbGwoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIERPTVdyYXBw
ZXJXb3JsZCogd29ybGQpCiAgICAgOiBCYXNlKCp3b3JsZC0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1
cmUpCiAgICAgLCBtX3dvcmxkKHdvcmxkKQogewotICAgIGZpbmlzaENyZWF0aW9uKCp3b3JsZC0+
Z2xvYmFsRGF0YSgpLCB3aW5kb3cpOwogfQogCiB2b2lkIEpTRE9NV2luZG93U2hlbGw6OmZpbmlz
aENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUGFzc1JlZlB0cjxET01XaW5kb3c+
IHdpbmRvdykKQEAgLTE4MSw2ICsxODAsMTMgQEAgdm9pZCogSlNET01XaW5kb3dTaGVsbDo6b3Bl
cmF0b3IgbmV3KHNpemVfdCBzaXplKQogICAgIHJldHVybiBoZWFwLmFsbG9jYXRlKHNpemUpOwog
fQogCitKU0RPTVdpbmRvd1NoZWxsKiBKU0RPTVdpbmRvd1NoZWxsOjpjcmVhdGUoUGFzc1JlZlB0
cjxET01XaW5kb3c+IHdpbmRvdywgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRE9NV3JhcHBl
cldvcmxkKiB3b3JsZCkKK3sKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IG5ldyBKU0RP
TVdpbmRvd1NoZWxsKHN0cnVjdHVyZSwgd29ybGQpOworICAgIHNoZWxsLT5maW5pc2hDcmVhdGlv
bigqd29ybGQtPmdsb2JhbERhdGEoKSwgd2luZG93KTsKKyAgICByZXR1cm4gc2hlbGw7IAorfQor
CiAvLyAtLS0tCiAvLyBDb252ZXJzaW9uIG1ldGhvZHMKIC8vIC0tLS0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAppbmRleCA1NDU5NjYxMmM3ZGE1MTIy
YTM3NzU2NWVhNGEwYmUxN2U3MzAxMzA0Li4zMDI4MzRmZmM2Nzk1NDM0ZGJlNDdmNDNlZTkyZTY2
YTY2N2I0Y2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd1NoZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dT
aGVsbC5oCkBAIC01NSw3ICs1NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBE
T01XaW5kb3cqIGltcGwoKSBjb25zdDsKIAotICAgICAgICB2b2lkKiBvcGVyYXRvciBuZXcoc2l6
ZV90KTsKKyAgICAgICAgc3RhdGljIEpTRE9NV2luZG93U2hlbGwqIGNyZWF0ZShQYXNzUmVmUHRy
PERPTVdpbmRvdz4sIEpTQzo6U3RydWN0dXJlKiwgRE9NV3JhcHBlcldvcmxkKik7CiAKICAgICAg
ICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpIAogICAgICAgICB7CkBAIC02
NSw5ICs2NSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIERPTVdyYXBwZXJXb3Js
ZCogd29ybGQoKSB7IHJldHVybiBtX3dvcmxkLmdldCgpOyB9CiAKICAgICBwcm90ZWN0ZWQ6Cisg
ICAgICAgIEpTRE9NV2luZG93U2hlbGwoSlNDOjpTdHJ1Y3R1cmUqLCBET01XcmFwcGVyV29ybGQq
KTsKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OkpTR2xvYmFsRGF0YSYsIFBhc3NS
ZWZQdHI8RE9NV2luZG93Pik7CiAKICAgICBwcml2YXRlOgorICAgICAgICB2b2lkKiBvcGVyYXRv
ciBuZXcoc2l6ZV90KTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc1Zp
c2l0Q2hpbGRyZW4gfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1
Y3R1cmVGbGFnczsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihKU0M6OlNs
b3RWaXNpdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdyYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCmlu
ZGV4IDlhNGFjYTVjNTFiOGNmZWI3NTMwYjJhNmUwZTc5ODQ1MWZkODU4ZTYuLjFiODIxOTcwM2Nm
OTM5MjBkMGI4NzdjNzZkNzc2NWU3YWJmMTBiNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV3JhcHBlci5oCkBAIC01OSw2ICs1OSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAg
Ly8gbmV3IEphdmFTY3JpcHQgb2JqZWN0cyBvbiBkZXRhY2hlZCB3aW5kb3dzIGR1ZSB0byBET01X
aW5kb3c6OmRvY3VtZW50KCkKICAgICAgICAgLy8gbmVlZGluZyB0byByZWFjaCB0aHJvdWdoIHRo
ZSBmcmFtZSB0byBnZXQgdG8gdGhlIERvY3VtZW50Ki4gIFNlZSBidWcgMjc2NDAuCiAgICAgICAg
IC8vIEFTU0VSVChnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAg
ICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmpl
Y3QpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHAKaW5kZXggODcwMjlkMWRiMDEyMzE0MjNiMWU4OGM1YWM1Zjk1MTQwY2Q5
NjE2YS4uZDI1YzcyMmE0OTVjMzVkMWRkYTFmYmE2NTY1MWJlNDc0MmYwMmU0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTEwOCw3
ICsxMDgsNyBAQCBKU0RPTVdpbmRvd1NoZWxsKiBTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVXaW5k
b3dTaGVsbChET01XcmFwcGVyV29ybGQqIHdvcmxkKQogewogICAgIEFTU0VSVCghbV93aW5kb3dT
aGVsbHMuY29udGFpbnMod29ybGQpKTsKICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTRE9N
V2luZG93U2hlbGw6OmNyZWF0ZVN0cnVjdHVyZSgqd29ybGQtPmdsb2JhbERhdGEoKSwganNOdWxs
KCkpOwotICAgIFN0cm9uZzxKU0RPTVdpbmRvd1NoZWxsPiB3aW5kb3dTaGVsbCgqd29ybGQtPmds
b2JhbERhdGEoKSwgbmV3IEpTRE9NV2luZG93U2hlbGwobV9mcmFtZS0+ZG9tV2luZG93KCksIHN0
cnVjdHVyZSwgd29ybGQpKTsKKyAgICBTdHJvbmc8SlNET01XaW5kb3dTaGVsbD4gd2luZG93U2hl
bGwoKndvcmxkLT5nbG9iYWxEYXRhKCksIEpTRE9NV2luZG93U2hlbGw6OmNyZWF0ZShtX2ZyYW1l
LT5kb21XaW5kb3coKSwgc3RydWN0dXJlLCB3b3JsZCkpOwogICAgIFN0cm9uZzxKU0RPTVdpbmRv
d1NoZWxsPiB3aW5kb3dTaGVsbDIod2luZG93U2hlbGwpOwogICAgIG1fd2luZG93U2hlbGxzLmFk
ZCh3b3JsZCwgd2luZG93U2hlbGwpOwogICAgIHdvcmxkLT5kaWRDcmVhdGVXaW5kb3dTaGVsbCh0
aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KaW5kZXggMGMwMWZjN2YyMjAxNmU0MDJjZjU5OWJjMmRiZjEyNjExY2MzNWQ0Yi4u
ZWYzOTBjNWE2Mzk5MjUxZGViN2RkMWEzOTNhMmU2ZWNmYmE4YWYxMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTEwNTcs
NyArMTA1Nyw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgdmlydHVhbCB2b2lkIGRlZmluZUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0KiBnZXR0ZXJGdW5jdGlv
biwgdW5zaWduZWQgYXR0cmlidXRlcyk7XG4iKSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJDdXN0b21Qcm90b3R5cGVEZWZpbmVHZXR0ZXIifTsKIAogICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICJcbnByaXZhdGU6XG4iKTsKLSAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
ICR7Y2xhc3NOYW1lfVByb3RvdHlwZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJl
KSA6IEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgc3RydWN0dXJlKSB7IH1cbiIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJHtj
bGFzc05hbWV9UHJvdG90eXBlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpIDog
SlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKSB7IGZp
bmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCk7IH1cbiIpOwogCiAgICAgIyBz
dHJ1Y3R1cmUgZmxhZ3MKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHJvdGVjdGVkOlxuIik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaCBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCmluZGV4IGQ4MDE5MDEw
Njc1OWUzMTYwZGY1M2U4YjNiMWRmMDc0NjUwYzc2ZWUuLjE3NTNjMGJjN2VlMDk2MTI4M2FjY2Ri
NmY5YzVkN2VhMmZmYzU0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpj
L29iamNfcnVudGltZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVu
dGltZS5oCkBAIC0xMTYsNiArMTE2LDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCitw
cm90ZWN0ZWQ6CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCopOworCiBw
cml2YXRlOgogICAgIE9iamNGYWxsYmFja09iamVjdEltcChKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZSosIE9iamNJbnN0YW5jZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3du
UHJvcGVydHlTbG90IHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCmluZGV4IDc1MGJjN2VlZmRlMWUzOGExMzY3NmNl
YWYwOTIyZGU3MWY4NTk5ZGYuLmRmMGU3MWM3ZmVjYjYyZTE2Zjc1ZGE5MTIwMzFmYTk2YjFhMmE3
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KQEAgLTIw
MSw2ICsyMDEsMTIgQEAgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpPYmpjRmFsbGJhY2tPYmplY3RJ
bXAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWMKICAgICAsIF9pbnN0YW5jZShp
KQogICAgICwgX2l0ZW0ocHJvcGVydHlOYW1lKQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2Jh
bE9iamVjdCk7Cit9CisKK3ZvaWQgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpmaW5pc2hDcmVhdGlv
bihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0
aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogICAgIEFTU0VS
VChpbmhlcml0cygmc19pbmZvKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2Fy
cmF5LmNwcAppbmRleCBiNWY3YTA3OGIyYzAwY2Y4ZGZkYzgwOTBjN2FmODQwMjEyNGQ2NTdiLi5l
MDFhMTVmMzdjYzkxYzQ1OGVkYTE0MWM3NDg2ZDhjMjY5YzZkY2IwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC00MCw2ICs0MCwxMiBAQCBjb25zdCBDbGFzc0lu
Zm8gUnVudGltZUFycmF5OjpzX2luZm8gPSB7ICJSdW50aW1lQXJyYXkiLCAmSlNBcnJheTo6c19p
bmZvLCAwLCAwCiBSdW50aW1lQXJyYXk6OlJ1bnRpbWVBcnJheShFeGVjU3RhdGUqIGV4ZWMsIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBCaW5kaW5nczo6QXJyYXkqIGFycmF5KQogICAgIDogSlNBcnJh
eShleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihl
eGVjLT5nbG9iYWxEYXRhKCksIGFycmF5KTsKK30KKwordm9pZCBSdW50aW1lQXJyYXk6OmZpbmlz
aENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgQmluZGluZ3M6OkFycmF5KiBhcnJh
eSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICBBU1NFUlQo
aW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHNldFN1YmNsYXNzRGF0YShhcnJheSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAppbmRleCBjYjdiYzYzNTc3NmQ4ZWJjOTEwMzk1
MzIwYWVmZGU0MmJjYjkwNmQ3Li44ZDhmNWFlNmJmNjhhNjMzODY1ZDBkMDJiZjY0M2Y5NWU0NGE4
OTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTc0LDYgKzc0LDgg
QEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgorICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
SlNHbG9iYWxEYXRhJiwgQmluZGluZ3M6OkFycmF5Kik7CisKICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVy
cmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNBcnJheTo6U3RydWN0dXJlRmxhZ3M7CiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAppbmRleCBmNGQwYmFk
ZTVlOGJmYWE1OWQzYjkxNzAwMWEzZTQwNmJmNTk1OTc3Li45NjY0MGYwMDhmYWMxYWM0NzE3NjRm
Zjg1ZTNiOGY2NDViOTJiZjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVj
dC5jcHAKQEAgLTQxLDYgKzQxLDEyIEBAIFJ1bnRpbWVPYmplY3Q6OlJ1bnRpbWVPYmplY3QoRXhl
Y1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlCiAgICAgOiBK
U09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiAgICAgLCBt
X2luc3RhbmNlKGluc3RhbmNlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7
Cit9CisKK3ZvaWQgUnVudGltZU9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3Qt
Pmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5m
bykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCmluZGV4IDg2MjJl
MzExZjI2NjA4YzU0NmRlODZlMGNmNGEzZDU1ODUzOTkyYTIuLjk5ZTA2ZTAxYzViYWY3ODA3N2Zi
OWE0YmRkZjkzYTVhNDRkOGMzYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX29iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVj
dC5oCkBAIC03NCw2ICs3NCw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIFJ1bnRpbWVP
YmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBQYXNzUmVmUHRy
PEluc3RhbmNlPik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCopOwog
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93
blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU09iamVjdFdpdGhH
bG9iYWxPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3Bw
CmluZGV4IDMzZWRiZTkyMmQ2Yjg1ZDY4OTcwODU1Yzk3MTVkZGE4MzEwOWI2YzQuLjIyOTEwZjVj
YTQ3Njc2NjVhYTM4ZmM4ZWM0ZGNkY2U5NWZhZmRhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKQEAg
LTU1LDYgKzU1LDEyIEBAIEpTTlBPYmplY3Q6OkpTTlBPYmplY3QoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgTlBSdW50aW1lT2JqZWN0TWFwKiBvYmplY3RNCiAgICAgLCBtX29iamVjdE1h
cChvYmplY3RNYXApCiAgICAgLCBtX25wT2JqZWN0KG5wT2JqZWN0KQogeworICAgIGZpbmlzaENy
ZWF0aW9uKGdsb2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgSlNOUE9iamVjdDo6ZmluaXNoQ3JlYXRp
b24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVh
dGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKICAgICBBU1NF
UlQoaW5oZXJpdHMoJnNfaW5mbykpOwogCiAgICAgLy8gV2Ugc2hvdWxkIG5ldmVyIGhhdmUgYW4g
TlBKU09iamVjdCBpbnNpZGUgYSBKU05QT2JqZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKaW5kZXggMmVhMTIy
ODJiMWIzYWVmZWYxNjlmMjM3MTU3NzY0YTY0YTU3YWQyMi4uNzU4MjJjM2M1OTY3M2Q4Y2RiN2E0
N2JlYmM4NjFkM2JkOGI2OWJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCkBAIC01Nyw2ICs1Nyw5IEBAIHB1
YmxpYzoKIAogICAgIE5QT2JqZWN0KiBucE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbnBPYmpl
Y3Q7IH0KIAorcHJvdGVjdGVkOgorICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpKU0dsb2Jh
bE9iamVjdCopOworCiBwcml2YXRlOgogICAgIEpTTlBPYmplY3QoSlNDOjpKU0dsb2JhbE9iamVj
dCosIE5QUnVudGltZU9iamVjdE1hcCosIE5QT2JqZWN0KiwgSlNDOjpTdHJ1Y3R1cmUqKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105882</attachid>
            <date>2011-08-31 19:10:57 -0700</date>
            <delta_ts>2011-09-01 09:04:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67174-20110831191056.patch</filename>
            <type>text/plain</type>
            <size>86867</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQyMjMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcAppbmRleCBmYTlkMjE2ZGQxMTI1MDEyN2Vl
Njg1ZmUxZWM4ZDU5ZmYyNjhjOTllLi45NTA0YWQ4MGQ4NTNmM2M2NTVmODQyOGQ3ZDE2YTY1ZmVj
YjgzMDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuY3BwCkBAIC00Myw2ICs0MywxMiBAQCBKU0NhbGxiYWNrQ29uc3RydWN0b3I6
OkpTQ2FsbGJhY2tDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
YwogICAgICwgbV9jbGFzcyhqc0NsYXNzKQogICAgICwgbV9jYWxsYmFjayhjYWxsYmFjaykKIHsK
KyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QsIGpzQ2xhc3MpOworfQorCit2b2lkIEpT
Q2FsbGJhY2tDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDbGFzc1JlZiBqc0NsYXNzKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChp
bmhlcml0cygmc19pbmZvKSk7CiAgICAgaWYgKG1fY2xhc3MpCiAgICAgICAgIEpTQ2xhc3NSZXRh
aW4oanNDbGFzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuaAppbmRleCA0MGFhYmNmMTkyMTMxZDQxNDdiMDc4Mzg5OTkwOTlmOGExZTUx
ZWRhLi45MTE5MWRiNWY5Njc5OWUyMGNhNDZlOTEwMTRlNWVhNGFjNjY4Y2Q3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmgKQEAgLTUy
LDYgKzUyLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgSlNDYWxsYmFja0NvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgSlNDbGFzc1JlZiwgSlNPYmplY3RDYWxs
QXNDb25zdHJ1Y3RvckNhbGxiYWNrKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
T2JqZWN0KiwgSlNDbGFzc1JlZik7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdz
OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuaAppbmRleCBlZTk5MGEwMmZjZmI5OTRjMWQ0ODFlMjc4NTdlY2MzODA4MDBjNmI1Li45ZWU2
NzkzMDFlNWEyMzhlYTE3MDkzYzljOGQ1ZTJhNWUyMGM3NmM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTI0LDE2ICsxMjQsMjEgQEAgcHJv
dGVjdGVkOgogICAgIC8vIGZ1bmN0aW9uYWxpdHkgaGVyZS4KICAgICB2b2lkKiBvcGVyYXRvciBu
ZXcoc2l6ZV90LCB2b2lkKiBwdHIpIHsgcmV0dXJuIHB0cjsgfQogCisgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oSlNHbG9iYWxEYXRhJik7CisKIHB1YmxpYzoKICAgICB0eXBlZGVmIFBhcmVudCBCYXNl
OwogCiAgICAgc3RhdGljIEpTQ2FsbGJhY2tPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0Ns
YXNzUmVmIGNsYXNzUmVmLCB2b2lkKiBkYXRhKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAo
YWxsb2NhdGVDZWxsPEpTQ2FsbGJhY2tPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBKU0NhbGxiYWNr
T2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBjbGFzc1JlZiwgZGF0YSk7Cisg
ICAgICAgIEpTQ2FsbGJhY2tPYmplY3QqIGNhbGxiYWNrT2JqZWN0ID0gbmV3IChhbGxvY2F0ZUNl
bGw8SlNDYWxsYmFja09iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIEpTQ2FsbGJhY2tPYmplY3QoZXhl
YywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGNsYXNzUmVmLCBkYXRhKTsKKyAgICAgICAgcmV0
dXJuIGNhbGxiYWNrT2JqZWN0OwogICAgIH0KICAgICBzdGF0aWMgSlNDYWxsYmFja09iamVjdCog
Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDbGFzc1JlZiBjbGFzc1JlZiwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNl
bGw8SlNDYWxsYmFja09iamVjdD4oZ2xvYmFsRGF0YS5oZWFwKSkgSlNDYWxsYmFja09iamVjdChn
bG9iYWxEYXRhLCBjbGFzc1JlZiwgc3RydWN0dXJlKTsKKyAgICAgICAgSlNDYWxsYmFja09iamVj
dCogY2FsbGJhY2tPYmplY3QgPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0NhbGxiYWNrT2JqZWN0Pihn
bG9iYWxEYXRhLmhlYXApKSBKU0NhbGxiYWNrT2JqZWN0KGdsb2JhbERhdGEsIGNsYXNzUmVmLCBz
dHJ1Y3R1cmUpOworICAgICAgICByZXR1cm4gY2FsbGJhY2tPYmplY3Q7CiAgICAgfQogCiAgICAg
dm9pZCBzZXRQcml2YXRlKHZvaWQqIGRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAppbmRleCA2OTEwZTU2ZmY4Y2E0
OTk0YjYzMzZhODdhZDg2ZWQwZTE2OGM3Y2E2Li4yMjNkOWI2NWEzNDk3YTI0ZWRiMjA5NWRmOTQ3
N2FhNGNhYTBmZDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tPYmplY3RGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaApAQCAtNTQsOCArNTQsNyBAQCBKU0NhbGxiYWNrT2Jq
ZWN0PFBhcmVudD46OkpTQ2FsbGJhY2tPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9i
amVjdCogZ2xvYgogICAgIDogUGFyZW50KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogICAgICwg
bV9jYWxsYmFja09iamVjdERhdGEoYWRvcHRQdHIobmV3IEpTQ2FsbGJhY2tPYmplY3REYXRhKGRh
dGEsIGpzQ2xhc3MpKSkKIHsKLSAgICBBU1NFUlQoUGFyZW50Ojppbmhlcml0cygmc19pbmZvKSk7
Ci0gICAgaW5pdChleGVjKTsKKyAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3Qp
OwogfQogCiAvLyBHbG9iYWwgb2JqZWN0IGNvbnN0cnVjdG9yLgpAQCAtNjUsNiArNjQsMjIgQEAg
SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpKU0NhbGxiYWNrT2JqZWN0KEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNDbGFzc1JlZgogICAgIDogUGFyZW50KGdsb2JhbERhdGEsIHN0cnVjdHVy
ZSkKICAgICAsIG1fY2FsbGJhY2tPYmplY3REYXRhKGFkb3B0UHRyKG5ldyBKU0NhbGxiYWNrT2Jq
ZWN0RGF0YSgwLCBqc0NsYXNzKSkpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7
Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Cit2b2lkIEpTQ2FsbGJhY2tPYmplY3Q8UGFy
ZW50Pjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xv
YmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOworICAgIEFTU0VSVChQYXJlbnQ6OmluaGVyaXRzKCZz
X2luZm8pKTsKKyAgICBpbml0KGV4ZWMpOworfQorCisvLyBUaGlzIGlzIGp1c3QgZm9yIEdsb2Jh
bCBvYmplY3QsIHNvIHdlIGNhbiBhc3N1bWUgdGhhdCBCYXNlOjpmaW5pc2hDcmVhdGlvbiBpcyBK
U0dsb2JhbE9iamVjdDo6Y29uc3RydWN0b3JCb2R5LgordGVtcGxhdGUgPGNsYXNzIFBhcmVudD4K
K3ZvaWQgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEpCit7CisgICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOwogICAgIEFT
U0VSVChQYXJlbnQ6OmluaGVyaXRzKCZzX2luZm8pKTsKICAgICBBU1NFUlQoUGFyZW50Ojppc0ds
b2JhbE9iamVjdCgpKTsKICAgICBpbml0KHN0YXRpY19jYXN0PEpTR2xvYmFsT2JqZWN0Kj4odGhp
cyktPmdsb2JhbEV4ZWMoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuSlNWQUxVRTY0b25seS5leHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuSlNWQUxVRTY0b25seS5leHAKaW5kZXggZWFhOWY1MTM5ZjIyZTAzYzgwZWQ3
Y2Y0NzkyZTQ4ZGFmOTE2YTYxMS4uMTM5NTk3ZjljYjA3YzVkNDhiZWQxODk4NGVjNDc0N2Y0YjRm
MzQzOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLkpT
VkFMVUU2NG9ubHkuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5KU1ZBTFVFNjRvbmx5LmV4cApAQCAtMSArMSwyIEBACi1fX1pOM0pTQzEwSlNGdW5jdGlvbkMx
RVBOU185RXhlY1N0YXRlRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRWlSS05T
XzEwSWRlbnRpZmllckVQRlB2UzJfRQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUuZXhwCmluZGV4IDlmNGEzYmRjYTIxM2IzYjViNTJmNThmZjQ2YjFiMzcwYjBkODVkZTcu
LjI3NDVhNDcxZDRkMTgyM2Q0MWQ5MzJkZTA0NjZmOGM3YWU5OGQ5Y2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cApAQCAtMTEwLDEzICsxMTAsMTcgQEAgX19aTjNK
U0MxMElkZW50aWZpZXI0ZnJvbUVQTlNfOUV4ZWNTdGF0ZUVpCiBfX1pOM0pTQzEwSWRlbnRpZmll
cjRmcm9tRVBOU185RXhlY1N0YXRlRWoKIF9fWk4zSlNDMTBJZGVudGlmaWVyNWVxdWFsRVBLTjNX
VEYxMFN0cmluZ0ltcGxFUEtjCiBfX1pOM0pTQzEwSWRlbnRpZmllcjh0b1VJbnQzMkVSS05TXzdV
U3RyaW5nRVJiCitfX1pOM0pTQzEwSlNGdW5jdGlvbjE0ZmluaXNoQ3JlYXRpb25FUE5TXzlFeGVj
U3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RFUE5TXzE4RnVuY3Rpb25FeGVjdXRhYmxlRVBOU18x
NFNjb3BlQ2hhaW5Ob2RlRQorX19aTjNKU0MxMEpTRnVuY3Rpb24xNGZpbmlzaENyZWF0aW9uRVBO
U185RXhlY1N0YXRlRVBOU18xNEpTR2xvYmFsT2JqZWN0RWlSS05TXzEwSWRlbnRpZmllckVQTlNf
MTRFeGVjdXRhYmxlQmFzZUUKIF9fWk4zSlNDMTBKU0Z1bmN0aW9uNG5hbWVFUE5TXzlFeGVjU3Rh
dGVFCitfX1pOM0pTQzEwSlNGdW5jdGlvbjZjcmVhdGVFUE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNH
bG9iYWxPYmplY3RFUE5TXzlTdHJ1Y3R1cmVFaVJLTlNfMTBJZGVudGlmaWVyRVBGUHZTMl9FCiBf
X1pOM0pTQzEwSlNGdW5jdGlvbjZzX2luZm9FCitfX1pOM0pTQzEwSlNGdW5jdGlvbkMxRVBOU185
RXhlY1N0YXRlRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRQogX19aTjNKU0Mx
MHRocm93RXJyb3JFUE5TXzlFeGVjU3RhdGVFTlNfN0pTVmFsdWVFCiBfX1pOM0pTQzEwdGhyb3dF
cnJvckVQTlNfOUV4ZWNTdGF0ZUVQTlNfOEpTT2JqZWN0RQogX19aTjNKU0MxMUpTQnl0ZUFycmF5
MTNzX2RlZmF1bHRJbmZvRQogX19aTjNKU0MxMUpTQnl0ZUFycmF5MTVjcmVhdGVTdHJ1Y3R1cmVF
Uk5TXzEySlNHbG9iYWxEYXRhRU5TXzdKU1ZhbHVlRVBLTlNfOUNsYXNzSW5mb0UKLV9fWk4zSlND
MTFKU0J5dGVBcnJheTZjcmVhdGVFUE5TXzlFeGVjU3RhdGVFUE5TXzlTdHJ1Y3R1cmVFUE4zV1RG
OUJ5dGVBcnJheUUKK19fWk4zSlNDMTFKU0J5dGVBcnJheUMxRVBOU185RXhlY1N0YXRlRVBOU185
U3RydWN0dXJlRVBOM1dURjlCeXRlQXJyYXlFCiBfX1pOM0pTQzExUGFyc2VyQXJlbmE1cmVzZXRF
dgogX19aTjNKU0MxMWNoZWNrU3ludGF4RVBOU185RXhlY1N0YXRlRVJLTlNfMTBTb3VyY2VDb2Rl
RQogX19aTjNKU0MxMWNyZWF0ZUVycm9yRVBOU185RXhlY1N0YXRlRVJLTlNfN1VTdHJpbmdFCkBA
IC0xMzMsNiArMTM3LDcgQEAgX19aTjNKU0MxMkpTR2xvYmFsRGF0YTE0ZHVtcFNhbXBsZURhdGFF
UE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pTQzEySlNHbG9iYWxEYXRhMTRyZXNldERhdGVDYWNoZUV2
CiBfX1pOM0pTQzEySlNHbG9iYWxEYXRhMTRzaGFyZWRJbnN0YW5jZUV2CiBfX1pOM0pTQzEySlNH
bG9iYWxEYXRhMTVkdW1wUmVnRXhwVHJhY2VFdgorX19aTjNKU0MxMkpTR2xvYmFsRGF0YTE1Z2V0
SG9zdEZ1bmN0aW9uRVBGUHZQTlNfOUV4ZWNTdGF0ZUVFCiBfX1pOM0pTQzEySlNHbG9iYWxEYXRh
MjJjbGVhckJ1aWx0aW5TdHJ1Y3R1cmVzRXYKICNpZm5kZWYgTkRFQlVHCiBfX1pOM0pTQzEySlNH
bG9iYWxEYXRhMjNyZWxlYXNlRXhlY3V0YWJsZU1lbW9yeUV2CkBAIC0xOTYsNyArMjAxLDcgQEAg
X19aTjNKU0MxN0J5dGVjb2RlR2VuZXJhdG9yMjFzZXREdW1wc0dlbmVyYXRlZENvZGVFYgogX19a
TjNKU0MxN1Byb3BlcnR5TmFtZUFycmF5M2FkZEVQTjNXVEYxMFN0cmluZ0ltcGxFCiBfX1pOM0pT
QzE3Y29uc3RydWN0RnVuY3Rpb25FUE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RF
UktOU183QXJnTGlzdEVSS05TXzEwSWRlbnRpZmllckVSS05TXzdVU3RyaW5nRWkKIF9fWk4zSlND
MTdjcmVhdGVTeW50YXhFcnJvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzdVU3RyaW5nRQotX19aTjNK
U0MxOERlYnVnZ2VyQWN0aXZhdGlvbkMxRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfOEpTT2JqZWN0
RQorX19aTjNKU0MxOERlYnVnZ2VyQWN0aXZhdGlvbjZjcmVhdGVFUk5TXzEySlNHbG9iYWxEYXRh
RVBOU184SlNPYmplY3RFCiBfX1pOM0pTQzE4UHJvcGVydHlEZXNjcmlwdG9yMTFzZXRXcml0YWJs
ZUViCiBfX1pOM0pTQzE4UHJvcGVydHlEZXNjcmlwdG9yMTJzZXRVbmRlZmluZWRFdgogX19aTjNK
U0MxOFByb3BlcnR5RGVzY3JpcHRvcjEzc2V0RGVzY3JpcHRvckVOU183SlNWYWx1ZUVqCkBAIC0y
MTksOCArMjI0LDkgQEAgX19aTjNKU0MyM0Fic3RyYWN0U2FtcGxpbmdDb3VudGVyNGR1bXBFdgog
X19aTjNKU0MyM29iamVjdFByb3RvRnVuY1RvU3RyaW5nRVBOU185RXhlY1N0YXRlRQogX19aTjNK
U0MyM3NldFVwU3RhdGljRnVuY3Rpb25TbG90RVBOU185RXhlY1N0YXRlRVBLTlNfOUhhc2hFbnRy
eUVQTlNfOEpTT2JqZWN0RVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKIF9f
Wk4zSlNDMjREeW5hbWljR2xvYmFsT2JqZWN0U2NvcGVDMUVSTlNfMTJKU0dsb2JhbERhdGFFUE5T
XzE0SlNHbG9iYWxPYmplY3RFCitfX1pOM0pTQzI0SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0MTRm
aW5pc2hDcmVhdGlvbkVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzE0SlNHbG9iYWxPYmplY3RFCitf
X1pOM0pTQzI0SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0QzJFUk5TXzEySlNHbG9iYWxEYXRhRVBO
U185U3RydWN0dXJlRQogX19aTjNKU0MyNEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEMyRVBOU18x
NEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRQotX19aTjNKU0MyNEpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdEMyRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfMTRKU0dsb2JhbE9iamVjdEVQTlNf
OVN0cnVjdHVyZUUKIF9fWk4zSlNDMjRjcmVhdGVTdGFja092ZXJmbG93RXJyb3JFUE5TXzlFeGVj
U3RhdGVFCiBfX1pOM0pTQzI1ZXZhbHVhdGVJbkdsb2JhbENhbGxGcmFtZUVSS05TXzdVU3RyaW5n
RVJOU183SlNWYWx1ZUVQTlNfMTRKU0dsb2JhbE9iamVjdEUKIF9fWk4zSlNDMzVjcmVhdGVJbnRl
cnJ1cHRlZEV4ZWN1dGlvbkV4Y2VwdGlvbkVQTlNfMTJKU0dsb2JhbERhdGFFCkBAIC0yNjksMTIg
KzI3NSwxNSBAQCBfX1pOM0pTQzZKU0xvY2tDMUVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDNlJl
Z0V4cEQxRXYKIF9fWk4zSlNDNlJlZ0V4cDZjcmVhdGVFUk5TXzEySlNHbG9iYWxEYXRhRVJLTlNf
N1VTdHJpbmdFTlNfMTFSZWdFeHBGbGFnc0UKIF9fWk4zSlNDN0pTQXJyYXkxM3Zpc2l0Q2hpbGRy
ZW5FUk5TXzExU2xvdFZpc2l0b3JFCitfX1pOM0pTQzdKU0FycmF5MTRmaW5pc2hDcmVhdGlvbkVS
TlNfMTJKU0dsb2JhbERhdGFFCitfX1pOM0pTQzdKU0FycmF5MTRmaW5pc2hDcmVhdGlvbkVSTlNf
MTJKU0dsb2JhbERhdGFFUktOU183QXJnTGlzdEUKIF9fWk4zSlNDN0pTQXJyYXkxNXNldFN1YmNs
YXNzRGF0YUVQdgogX19aTjNKU0M3SlNBcnJheTE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhl
Y1N0YXRlRWpSTlNfMTJQcm9wZXJ0eVNsb3RFCitfX1pOM0pTQzdKU0FycmF5NmNyZWF0ZUVSTlNf
MTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFUktOU183QXJnTGlzdEUKK19fWk4zSlNDN0pT
QXJyYXk2Y3JlYXRlRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfOVN0cnVjdHVyZUUKIF9fWk4zSlND
N0pTQXJyYXk2c19pbmZvRQogX19aTjNKU0M3SlNBcnJheTlzZXRMZW5ndGhFagogX19aTjNKU0M3
SlNBcnJheUMxRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfOVN0cnVjdHVyZUUKLV9fWk4zSlNDN0pT
QXJyYXlDMUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFUktOU183QXJnTGlzdEUK
IF9fWk4zSlNDN0pTQXJyYXlDMkVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFCiBf
X1pOM0pTQzdKU0FycmF5RDJFdgogX19aTjNKU0M3SlNWYWx1ZTEzaXNWYWxpZENhbGxlZUV2CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCmlu
ZGV4IGQxY2ZmNzg2Mzc3YTBkNDEzNjJjZDJlZmI3Yjg1ZWMzOTJlMDViYzQuLjllOWVlYTg5OWMy
NDJhY2Q2MGQ1YzEwYzVkMDQzOGVjMTIzZmUxNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUuZGVmCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ov
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCkBAIC05LDExICs5LDExIEBAIEVYUE9S
VFMKICAgICA/PzBEeW5hbWljR2xvYmFsT2JqZWN0U2NvcGVASlNDQEBRQUVAQUFWSlNHbG9iYWxE
YXRhQDFAUEFWSlNHbG9iYWxPYmplY3RAMUBAWiAgCiAgICAgPz8wSW50ZXJuYWxGdW5jdGlvbkBK
U0NAQElBRUBQQVZKU0dsb2JhbERhdGFAMUBQQVZKU0dsb2JhbE9iamVjdEAxQFBBVlN0cnVjdHVy
ZUAxQEFCVklkZW50aWZpZXJAMUBAWgogICAgID8/MEpTQXJyYXlASlNDQEBJQUVAQUFWSlNHbG9i
YWxEYXRhQDFAUEFWU3RydWN0dXJlQDFAQFoKLSAgICA/PzBKU0FycmF5QEpTQ0BASUFFQEFBVkpT
R2xvYmFsRGF0YUAxQFBBVlN0cnVjdHVyZUAxQEFCVkFyZ0xpc3RAMUBAWgotICAgID8/MEpTRnVu
Y3Rpb25ASlNDQEBBQUVAUEFWRXhlY1N0YXRlQDFAUEFWSlNHbG9iYWxPYmplY3RAMUBQQVZTdHJ1
Y3R1cmVAMUBIQUJWSWRlbnRpZmllckAxQFA2SV9KMEBaQFoKKyAgICA/PzBKU0J5dGVBcnJheUBK
U0NAQEFBRUBQQVZFeGVjU3RhdGVAMUBQQVZTdHJ1Y3R1cmVAMUBQQVZCeXRlQXJyYXlAV1RGQEBA
WgorICAgID8/MEpTRnVuY3Rpb25ASlNDQEBBQUVAUEFWRXhlY1N0YXRlQDFAUEFWSlNHbG9iYWxP
YmplY3RAMUBQQVZTdHJ1Y3R1cmVAMUBAWgogICAgID8/MEpTTG9ja0BKU0NAQFFBRUBQQVZFeGVj
U3RhdGVAMUBAWgotICAgID8/MEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEBKU0NAQElBRUBBQVZK
U0dsb2JhbERhdGFAMUBQQVZKU0dsb2JhbE9iamVjdEAxQFBBVlN0cnVjdHVyZUAxQEBaCiAgICAg
Pz8wSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0QEpTQ0BASUFFQFBBVkpTR2xvYmFsT2JqZWN0QDFA
UEFWU3RydWN0dXJlQDFAQFoKKyAgICA/PzBKU09iamVjdFdpdGhHbG9iYWxPYmplY3RASlNDQEBJ
QUVAQUFWSlNHbG9iYWxEYXRhQDFAUEFWU3RydWN0dXJlQDFAQFoKICAgICA/PzBNRDVAV1RGQEBR
QUVAWFoKICAgICA/PzBNdXRleEBXVEZAQFFBRUBYWgogICAgID8/MFJlZkNvdW50ZWRMZWFrQ291
bnRlckBXVEZAQFFBRUBQQkRAWgpAQCAtOTUsNyArOTUsOSBAQCBFWFBPUlRTCiAgICAgP2NvbnZl
cnRVVEYxNlRvVVRGOEBVbmljb2RlQFdURkBAWUE/QVc0Q29udmVyc2lvblJlc3VsdEAxMkBQQVBC
X1dQQl9XUEFQQURQQURfTkBaCiAgICAgP2NvbnZlcnRVVEY4VG9VVEYxNkBVbmljb2RlQFdURkBA
WUE/QVc0Q29udmVyc2lvblJlc3VsdEAxMkBQQVBCRFBCRFBBUEFfV1BBX1dfTkBaCiAgICAgP2Ny
ZWF0ZUBCeXRlQXJyYXlAV1RGQEBTQT9BVj8kUGFzc1JlZlB0ckBWQnl0ZUFycmF5QFdURkBAQDJA
SUBaCi0gICAgP2NyZWF0ZUBKU0J5dGVBcnJheUBKU0NAQFNBUEFWMTJAUEFWRXhlY1N0YXRlQDJA
UEFWU3RydWN0dXJlQDJAUEFWQnl0ZUFycmF5QFdURkBAQFoKKyAgICA/Y3JlYXRlQEpTQXJyYXlA
SlNDQEBTQVBBVjEyQEFBVkpTR2xvYmFsRGF0YUAyQFBBVlN0cnVjdHVyZUAyQEBaCisgICAgP2Ny
ZWF0ZUBKU0FycmF5QEpTQ0BAU0FQQVYxMkBBQVZKU0dsb2JhbERhdGFAMkBQQVZTdHJ1Y3R1cmVA
MkBBQlZBcmdMaXN0QDJAQFoKKyAgICA/Y3JlYXRlQEpTRnVuY3Rpb25ASlNDQEBTQVBBVjEyQFBB
VkV4ZWNTdGF0ZUAyQFBBVkpTR2xvYmFsT2JqZWN0QDJAUEFWU3RydWN0dXJlQDJASEFCVklkZW50
aWZpZXJAMkBQNklfSjBAWkBaCiAgICAgP2NyZWF0ZUBKU0dsb2JhbERhdGFASlNDQEBTQT9BVj8k
UGFzc1JlZlB0ckBWSlNHbG9iYWxEYXRhQEpTQ0BAQFdURkBAVzRUaHJlYWRTdGFja1R5cGVAMkBX
NEhlYXBTaXplQDJAQFoKICAgICA/Y3JlYXRlQE9wYXF1ZUpTU3RyaW5nQEBTQT9BVj8kUGFzc1Jl
ZlB0ckBVT3BhcXVlSlNTdHJpbmdAQEBXVEZAQEFCVlVTdHJpbmdASlNDQEBAWgogICAgID9jcmVh
dGVAUmVnRXhwQEpTQ0BAU0FQQVYxMkBBQVZKU0dsb2JhbERhdGFAMkBBQlZVU3RyaW5nQDJAVzRS
ZWdFeHBGbGFnc0AyQEBaCkBAIC0xNjcsNiArMTY5LDEwIEBAIEVYUE9SVFMKICAgICA/ZmFzdFpl
cm9lZE1hbGxvY0BXVEZAQFlBUEFYSUBaCiAgICAgP2ZpbGxHZXR0ZXJQcm9wZXJ0eVNsb3RASlNP
YmplY3RASlNDQEBRQUVYQUFWUHJvcGVydHlTbG90QDJAUEFWPyRXcml0ZUJhcnJpZXJCYXNlQFc0
VW5rbm93bkBKU0NAQEAyQEBaCiAgICAgP2ZpbmFsaXplQFdlYWtIYW5kbGVPd25lckBKU0NAQFVB
RVhWPyRIYW5kbGVAVzRVbmtub3duQEpTQ0BAQDJAUEFYQFoKKyAgICA/ZmluaXNoQ3JlYXRpb25A
SlNBcnJheUBKU0NAQElBRVhBQVZKU0dsb2JhbERhdGFAMkBAWgorICAgID9maW5pc2hDcmVhdGlv
bkBKU0FycmF5QEpTQ0BASUFFWEFBVkpTR2xvYmFsRGF0YUAyQEFCVkFyZ0xpc3RAMkBAWgorICAg
ID9maW5pc2hDcmVhdGlvbkBKU0Z1bmN0aW9uQEpTQ0BASUFFWFBBVkV4ZWNTdGF0ZUAyQFBBVkpT
R2xvYmFsT2JqZWN0QDJASEFCVklkZW50aWZpZXJAMkBQQVZFeGVjdXRhYmxlQmFzZUAyQEBaCisg
ICAgP2ZpbmlzaENyZWF0aW9uQEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEBKU0NAQElBRVhBQVZK
U0dsb2JhbERhdGFAMkBQQVZKU0dsb2JhbE9iamVjdEAyQEBaCiAgICAgP2ZvY3VzQFByb2ZpbGVA
SlNDQEBRQUVYUEJWUHJvZmlsZU5vZGVAMkBAWgogICAgID9mcm9tQElkZW50aWZpZXJASlNDQEBT
QT9BVjEyQFBBVkV4ZWNTdGF0ZUAyQEhAWgogICAgID9mcm9tQElkZW50aWZpZXJASlNDQEBTQT9B
VjEyQFBBVkV4ZWNTdGF0ZUAyQElAWgpAQCAtMTc2LDYgKzE4Miw3IEBAIEVYUE9SVFMKICAgICA/
Z2V0QFN0cnVjdHVyZUBKU0NAQFFBRUlBQVZKU0dsb2JhbERhdGFAMkBQQVZTdHJpbmdJbXBsQFdU
RkBAQUFJQUFQQVZKU0NlbGxAMkBAWgogICAgID9nZXRDYWxsRGF0YUBKU0NlbGxASlNDQEBVQUU/
QVc0Q2FsbFR5cGVAMkBBQVRDYWxsRGF0YUAyQEBaCiAgICAgP2dldENvbnN0cnVjdERhdGFASlND
ZWxsQEpTQ0BAVUFFP0FXNENvbnN0cnVjdFR5cGVAMkBBQVRDb25zdHJ1Y3REYXRhQDJAQFoKKyAg
ICA/Z2V0SG9zdEZ1bmN0aW9uQEpTR2xvYmFsRGF0YUBKU0NAQFFBRVBBVk5hdGl2ZUV4ZWN1dGFi
bGVAMkBQNklfSlBBVkV4ZWNTdGF0ZUAyQEBaQFoKICAgICA/Z2V0SlNOdW1iZXJASlNDZWxsQEpT
Q0BAVUFFP0FWSlNWYWx1ZUAyQFhaCiAgICAgP2dldE9iamVjdEBKU0NlbGxASlNDQEBRQUVQQVZK
U09iamVjdEAyQFhaCiAgICAgP2dldE93blByb3BlcnR5RGVzY3JpcHRvckBKU0dsb2JhbE9iamVj
dEBKU0NAQFVBRV9OUEFWRXhlY1N0YXRlQDJAQUJWSWRlbnRpZmllckAyQEFBVlByb3BlcnR5RGVz
Y3JpcHRvckAyQEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIv
RGVidWdnZXJBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9E
ZWJ1Z2dlckFjdGl2YXRpb24uY3BwCmluZGV4IGFlOGE1YWNkNmE4NTcwYWQ3MzdjZTBlMDBjYzlk
NWE2OGE5NDA5ZGQuLmE3MTAxZGNiNmJhYTQwZmY0ZmUwZWZhMzJkMWQ1NWI2OGE5NDE0ZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRp
b24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2
YXRpb24uY3BwCkBAIC0zMCwxMCArMzAsMTYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLURlYnVn
Z2VyQWN0aXZhdGlvbjo6RGVidWdnZXJBY3RpdmF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNPYmplY3QqIGFjdGl2YXRpb24pCitEZWJ1Z2dlckFjdGl2YXRpb246OkRlYnVnZ2VyQWN0
aXZhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCiAgICAgOiBKU05vbkZpbmFsT2JqZWN0
KGdsb2JhbERhdGEsIGdsb2JhbERhdGEuZGVidWdnZXJBY3RpdmF0aW9uU3RydWN0dXJlLmdldCgp
KQogewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGFjdGl2YXRpb24pOworfQorCitE
ZWJ1Z2dlckFjdGl2YXRpb24qIERlYnVnZ2VyQWN0aXZhdGlvbjo6Y3JlYXRlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNPYmplY3QqIG9iamVjdCkKK3sKKyAgICBEZWJ1Z2dlckFjdGl2YXRp
b24qIGFjdGl2YXRpb24gPSBuZXcgKGFsbG9jYXRlQ2VsbDxEZWJ1Z2dlckFjdGl2YXRpb24+KGds
b2JhbERhdGEuaGVhcCkpIERlYnVnZ2VyQWN0aXZhdGlvbihnbG9iYWxEYXRhKTsKKyAgICBhY3Rp
dmF0aW9uLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBvYmplY3QpOworICAgIHJldHVybiBh
Y3RpdmF0aW9uOwogfQogCiB2b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6ZmluaXNoQ3JlYXRpb24o
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU09iamVjdCogYWN0aXZhdGlvbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAppbmRl
eCAzNDQ0YmQ4NGU1ZTZjMGE0YzRmZDJjYzgwOWY3ZGYyOGM1ZDhkNTMzLi5kODNiMmY3MGZjNGIw
YjhhYTU5OWRmNDE0YzVmMDcyYWNkOTg0ZDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCkBAIC0zNCwxMiArMzQsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSlNOb25GaW5hbE9i
amVjdCBCYXNlOwogCi0gICAgICAgIHN0YXRpYyBEZWJ1Z2dlckFjdGl2YXRpb24qIGNyZWF0ZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTT2JqZWN0KiBvYmplY3QpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIERlYnVnZ2VyQWN0aXZhdGlvbiogYWN0aXZhdGlvbiA9IG5ldyAoYWxsb2NhdGVD
ZWxsPERlYnVnZ2VyQWN0aXZhdGlvbj4oZ2xvYmFsRGF0YS5oZWFwKSkgRGVidWdnZXJBY3RpdmF0
aW9uKGdsb2JhbERhdGEsIG9iamVjdCk7Ci0gICAgICAgICAgICByZXR1cm4gYWN0aXZhdGlvbjsK
LSAgICAgICAgfQotCisgICAgICAgIHN0YXRpYyBEZWJ1Z2dlckFjdGl2YXRpb24qIGNyZWF0ZShK
U0dsb2JhbERhdGEmLCBKU09iamVjdCopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGls
ZHJlbihTbG90VmlzaXRvciYpOwogICAgICAgICB2aXJ0dWFsIFVTdHJpbmcgY2xhc3NOYW1lKCkg
Y29uc3Q7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKQEAgLTY0
LDcgKzU5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
SlNHbG9iYWxEYXRhJiwgSlNPYmplY3QqIGFjdGl2YXRpb24pOwogCiAgICAgcHJpdmF0ZToKLSAg
ICAgICAgRGVidWdnZXJBY3RpdmF0aW9uKEpTR2xvYmFsRGF0YSYsIEpTT2JqZWN0Kik7CisgICAg
ICAgIERlYnVnZ2VyQWN0aXZhdGlvbihKU0dsb2JhbERhdGEmKTsKICAgICAgICAgV3JpdGVCYXJy
aWVyPEpTQWN0aXZhdGlvbj4gbV9hY3RpdmF0aW9uOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKaW5kZXggMDlkNTVmMjE2MzU1NTQxZTRiZGRmYjIy
MjU4MWI3NmYwOTMxODg3ZS4uN2QwYWYzZGU0ZjI4NWZkNGI2NmMwOGExZmJjN2U4MWU1MjRkYzFm
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKQEAgLTY0LDEy
ICs2NCwxNCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIEFyZ3VtZW50cyogY3Jl
YXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiAgICAg
ICAgIHsKICAgICAgICAgICAgIEFyZ3VtZW50cyogYXJndW1lbnRzID0gbmV3IChhbGxvY2F0ZUNl
bGw8QXJndW1lbnRzPihnbG9iYWxEYXRhLmhlYXApKSBBcmd1bWVudHMoY2FsbEZyYW1lKTsKKyAg
ICAgICAgICAgIGFyZ3VtZW50cy0+ZmluaXNoQ3JlYXRpb24oY2FsbEZyYW1lKTsKICAgICAgICAg
ICAgIHJldHVybiBhcmd1bWVudHM7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0YXRp
YyBBcmd1bWVudHMqIGNyZWF0ZU5vUGFyYW1ldGVycyhKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQogICAgICAgICB7CiAgICAgICAgICAgICBBcmd1bWVudHMq
IGFyZ3VtZW50cyA9IG5ldyAoYWxsb2NhdGVDZWxsPEFyZ3VtZW50cz4oZ2xvYmFsRGF0YS5oZWFw
KSkgQXJndW1lbnRzKGNhbGxGcmFtZSwgTm9QYXJhbWV0ZXJzKTsKKyAgICAgICAgICAgIGFyZ3Vt
ZW50cy0+ZmluaXNoQ3JlYXRpb24oY2FsbEZyYW1lLCBOb1BhcmFtZXRlcnMpOwogICAgICAgICAg
ICAgcmV0dXJuIGFyZ3VtZW50czsKICAgICAgICAgfQogCkBAIC0xNjYsMTQgKzE2OCwxMiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGNhbGxGcmFtZS0+Z2xv
YmFsRGF0YSgpLCBjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+YXJndW1lbnRzU3Ry
dWN0dXJlKCkpCiAgICAgICAgICwgZChhZG9wdFB0cihuZXcgQXJndW1lbnRzRGF0YSkpCiAgICAg
ewotICAgICAgICBmaW5pc2hDcmVhdGlvbihjYWxsRnJhbWUpOwogICAgIH0KIAogICAgIGlubGlu
ZSBBcmd1bWVudHM6OkFyZ3VtZW50cyhDYWxsRnJhbWUqIGNhbGxGcmFtZSwgTm9QYXJhbWV0ZXJz
VHlwZSkKICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgp
LCBjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+YXJndW1lbnRzU3RydWN0dXJlKCkp
CiAgICAgICAgICwgZChhZG9wdFB0cihuZXcgQXJndW1lbnRzRGF0YSkpCiAgICAgewotICAgICAg
ICBmaW5pc2hDcmVhdGlvbihjYWxsRnJhbWUsIE5vUGFyYW1ldGVycyk7CiAgICAgfQogICAgIAog
ICAgIGlubGluZSB2b2lkIEFyZ3VtZW50czo6ZmluaXNoQ3JlYXRpb24oQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVBy
b3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlw
ZS5jcHAKaW5kZXggNzhjZTAxMmQxYjg1Y2Y0YzY0NzA1MjBkM2UwNjM4Y2Y2Yzc1Yjk4Yy4uOTk2
NzRiYjIzYjQ5ODE4YjJmM2EzNDg0YzI2NmUwMTM5ZDg2ZWY0NiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtMTE3LDYgKzExNywx
MiBAQCBjb25zdCBDbGFzc0luZm8gQXJyYXlQcm90b3R5cGU6OnNfaW5mbyA9IHsiQXJyYXkiLCAm
SlNBcnJheTo6c19pbmZvLCAwLCBFeGVjU3RhdAogQXJyYXlQcm90b3R5cGU6OkFycmF5UHJvdG90
eXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQog
ICAgIDogSlNBcnJheShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogewor
ICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgQXJyYXlQcm90b3R5
cGU6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAg
QmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpOwogICAgIEFT
U0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxEYXRhKCksIDAsIGdsb2JhbE9iamVjdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaAppbmRleCAxMjRjNjFhYzRkYzc5ODM4
NWRlZWE3ODdkZDY0ZDViY2I2ZmJhMjU4Li45YTYyOGUwYzY5M2NhOWQ3N2U3NzZhODZhOTlkODJh
MzA1YjdjN2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJv
dG90eXBlLmgKQEAgLTQ5LDYgKzQ5LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KIAog
ICAgIHByb3RlY3RlZDoKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVj
dCopOworCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNTbG90Q291bnQg
PSBKU0FycmF5OjpBbm9ueW1vdXNTbG90Q291bnQgKyAxOwogICAgIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAKaW5kZXggZTI0YTMwYTRi
YjU0YWU1MDBlZDBlOWQ3MTY1ZmM5Y2U3YTVkOWE2My4uYjllMzNkYzQ4NDI5OGI2Y2VlNjc0ZTE4
ZDU0YTg3ZjYyZGFkZmQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQm9vbGVhbk9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Qm9vbGVhbk9iamVjdC5jcHAKQEAgLTMwLDYgKzMwLDEyIEBAIGNvbnN0IENsYXNzSW5mbyBCb29s
ZWFuT2JqZWN0OjpzX2luZm8gPSB7ICJCb29sZWFuIiwgJkpTV3JhcHBlck9iamVjdDo6c19pbmZv
LCAwCiBCb29sZWFuT2JqZWN0OjpCb29sZWFuT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU1dyYXBwZXJPYmplY3QoZ2xvYmFsRGF0
YSwgc3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOworfQorCit2
b2lkIEJvb2xlYW5PYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICBBU1NFUlQo
aW5oZXJpdHMoJnNfaW5mbykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Cb29sZWFuT2JqZWN0LmgKaW5kZXggNzBlZDEyNjEyY2ZlOTU3MzdhMDEzZTBkN2M3NDYzMWNi
OWMwNjdlZS4uODQ2MTBkOWI4MWY1MGUxZGFiOGQ4MzQxNWRkNDc1Mjg1NDg5N2U1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuaApAQCAtMjgsNiAr
MjgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBCb29sZWFuT2JqZWN0IDogcHVibGlj
IEpTV3JhcHBlck9iamVjdCB7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBCb29sZWFuT2JqZWN0
KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSopOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9u
KEpTR2xvYmFsRGF0YSYpOwogCiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpTV3JhcHBl
ck9iamVjdCBCYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RGF0ZUluc3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0
YW5jZS5jcHAKaW5kZXggZDhjYTA3MjQ5MWI4NTgzZGZjODFlMTI5NWEyZDhiMzkyYTY0NDdkZi4u
MmVjNzIxZDliNWI0OTY3ZDhlMTM4Mjg0MTM4MTEyNzIzYThkYmNiNSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuY3BwCkBAIC0zNywxNSArMzcsMjAg
QEAgY29uc3QgQ2xhc3NJbmZvIERhdGVJbnN0YW5jZTo6c19pbmZvID0geyJEYXRlIiwgJkpTV3Jh
cHBlck9iamVjdDo6c19pbmZvLCAwLCAwfTsKIERhdGVJbnN0YW5jZTo6RGF0ZUluc3RhbmNlKEV4
ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU1dyYXBwZXJPYmpl
Y3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7Ci0gICAgQVNTRVJUKGluaGVyaXRz
KCZzX2luZm8pKTsKLSAgICBzZXRJbnRlcm5hbFZhbHVlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNO
YU4oKSk7CisgICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc05hTigpKTsK
IH0KIAogRGF0ZUluc3RhbmNlOjpEYXRlSW5zdGFuY2UoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgZG91YmxlIHRpbWUpCiAgICAgOiBKU1dyYXBwZXJPYmplY3QoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xv
YmFsRGF0YSgpLCBqc051bWJlcih0aW1lQ2xpcCh0aW1lKSkpOworfQorCit2b2lkIERhdGVJbnN0
YW5jZTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHZh
bHVlKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIEFTU0VS
VChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgc2V0SW50ZXJuYWxWYWx1ZShleGVjLT5nbG9iYWxE
YXRhKCksIGpzTnVtYmVyKHRpbWVDbGlwKHRpbWUpKSk7CisgICAgc2V0SW50ZXJuYWxWYWx1ZShn
bG9iYWxEYXRhLCB2YWx1ZSk7CiB9CiAKIGNvbnN0IEdyZWdvcmlhbkRhdGVUaW1lKiBEYXRlSW5z
dGFuY2U6OmNhbGN1bGF0ZUdyZWdvcmlhbkRhdGVUaW1lKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKaW5kZXggYWYy
ZGZhMDUwYjMzMjU2YjIzOGM5ZDMwZDZjYzJmYWVjYmRhMzYxYi4uNDU2ZDM1ZDEzOWEyZTIzNDc2
OGU4OTJjMTMwYWE1YTJlMTVmMDBmNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRGF0ZUluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGF0ZUluc3RhbmNlLmgKQEAgLTMzLDYgKzMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
cHJvdGVjdGVkOgogICAgICAgICBEYXRlSW5zdGFuY2UoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwg
ZG91YmxlKTsKICAgICAgICAgRGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSopOwor
ICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIEpTVmFsdWUpOwogICAg
ICAgICAKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSlNXcmFwcGVyT2JqZWN0IEJhc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCmlu
ZGV4IDNlMDMzN2I4OTRkMzUzN2FlMTJlZjU5NWJhOTU5MWQ4M2U1YWQyMGYuLjRmNWU2ZTJmNTY4
NDgwNjFkOGUxMzlkNWIxNzk1Zjg1NzA5ZGJlN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCkBAIC0yOSwyNiArMjksNiBAQCBFcnJvcklu
c3RhbmNlOjpFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCiAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVy
ZSkKICAgICAsIG1fYXBwZW5kU291cmNlVG9NZXNzYWdlKGZhbHNlKQogewotICAgIGZpbmlzaENy
ZWF0aW9uKGdsb2JhbERhdGEsIFVTdHJpbmcoIiIsIDApKTsKLX0KLQotRXJyb3JJbnN0YW5jZTo6
RXJyb3JJbnN0YW5jZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBjb25zdCBVU3RyaW5nJiBtZXNzYWdlKQotICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9i
YWxEYXRhLCBzdHJ1Y3R1cmUpCi0gICAgLCBtX2FwcGVuZFNvdXJjZVRvTWVzc2FnZShmYWxzZSkK
LXsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBtZXNzYWdlKTsKLX0KLQotRXJyb3JJ
bnN0YW5jZSogRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFVTdHJpbmcmIG1lc3NhZ2UpCi17Ci0gICAgcmV0
dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEVycm9ySW5zdGFuY2U+KGdsb2JhbERhdGEuaGVhcCkpIEVy
cm9ySW5zdGFuY2UoZ2xvYmFsRGF0YSwgc3RydWN0dXJlLCBtZXNzYWdlKTsKLX0KLQotRXJyb3JJ
bnN0YW5jZSogRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIEpTVmFsdWUgbWVzc2FnZSkKLXsKLSAgICBpZiAobWVzc2FnZS5pc1VuZGVm
aW5lZCgpKQotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8RXJyb3JJbnN0YW5jZT4o
KmV4ZWMtPmhlYXAoKSkpIEVycm9ySW5zdGFuY2UoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1
cmUpOwotICAgIHJldHVybiBjcmVhdGUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUsIG1l
c3NhZ2UudG9TdHJpbmcoZXhlYykpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaAppbmRleCAwNmE5NTMyMTNj
YTViZTViNDUxYTNkYzhhMTFlOTJkYWExMjc2ZjkyLi45YzZhN2E3NzU5MTI2NjJhOTkyZjRkNTcy
MDMzZDBkNmJmYWRjNjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvckluc3RhbmNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JJbnN0YW5jZS5oCkBAIC0zNiw5ICszNiwyMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJ
bmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19p
bmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRpYyBFcnJvckluc3RhbmNlKiBjcmVhdGUo
SlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiwgY29uc3QgVVN0cmluZyYpOwotICAgICAgICBzdGF0
aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIEpTVmFsdWUg
bWVzc2FnZSk7Ci0KKyAgICAgICAgc3RhdGljIEVycm9ySW5zdGFuY2UqIGNyZWF0ZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBVU3RyaW5nJiBt
ZXNzYWdlKQorICAgICAgICB7CisgICAgICAgICAgICBFcnJvckluc3RhbmNlKiBpbnN0YW5jZSA9
IG5ldyAoYWxsb2NhdGVDZWxsPEVycm9ySW5zdGFuY2U+KGdsb2JhbERhdGEuaGVhcCkpIEVycm9y
SW5zdGFuY2UoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIGluc3RhbmNlLT5m
aW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBtZXNzYWdlKTsKKyAgICAgICAgICAgIHJldHVybiBp
bnN0YW5jZTsKKyAgICAgICAgfQorICAgICAgICBzdGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRl
KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTVmFsdWUgbWVzc2FnZSkK
KyAgICAgICAgeworICAgICAgICAgICAgaWYgKG1lc3NhZ2UuaXNVbmRlZmluZWQoKSkgeworICAg
ICAgICAgICAgICAgIEVycm9ySW5zdGFuY2UqIGluc3RhbmNlID0gbmV3IChhbGxvY2F0ZUNlbGw8
RXJyb3JJbnN0YW5jZT4oKmV4ZWMtPmhlYXAoKSkpIEVycm9ySW5zdGFuY2UoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgICAgIGluc3RhbmNlLT5maW5pc2hDcmVh
dGlvbihleGVjLT5nbG9iYWxEYXRhKCksIFVTdHJpbmcoIiIsIDApKTsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gaW5zdGFuY2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gY3Jl
YXRlKGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlLCBtZXNzYWdlLnRvU3RyaW5nKGV4ZWMp
KTsKKyAgICAgICAgfQogCiAgICAgICAgIGJvb2wgYXBwZW5kU291cmNlVG9NZXNzYWdlKCkgeyBy
ZXR1cm4gbV9hcHBlbmRTb3VyY2VUb01lc3NhZ2U7IH0KICAgICAgICAgdm9pZCBzZXRBcHBlbmRT
b3VyY2VUb01lc3NhZ2UoKSB7IG1fYXBwZW5kU291cmNlVG9NZXNzYWdlID0gdHJ1ZTsgfQpAQCAt
NDgsNyArNjAsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAg
ZXhwbGljaXQgRXJyb3JJbnN0YW5jZShKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqKTsKLSAgICAg
ICAgZXhwbGljaXQgRXJyb3JJbnN0YW5jZShKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqLCBjb25z
dCBVU3RyaW5nJik7CiAKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIGNvbnN0IFVTdHJpbmcmIG1lc3NhZ2UpCiAgICAgICAgIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcAppbmRleCAzODYw
NjhiYzNlNzhmN2JiZGRiMjRjMzQ3YzlkMWZmZDdjZWRhODExLi42OTg2NzUyNGM0Y2U3ZWY1Yzc2
M2I2YTUyNzJlNzE2Y2U4NDk1NzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCkBAIC01MywxMSArNTMsMTIgQEAgQVNTRVJUX0NMQVNT
X0ZJVFNfSU5fQ0VMTChFcnJvclByb3RvdHlwZSk7CiBFcnJvclByb3RvdHlwZTo6RXJyb3JQcm90
b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEVycm9ySW5zdGFuY2UoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBzdHJ1Y3R1cmUpCiB7Ci0gICAgY29uc3RydWN0b3JCb2R5KGV4ZWMsIGdsb2JhbE9iamVjdCk7
CisgICAgZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFsT2JqZWN0KTsKIH0KIAotdm9pZCBFcnJv
clByb3RvdHlwZTo6Y29uc3RydWN0b3JCb2R5KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgRXJyb3JQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKKyAgICBCYXNl
OjpmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksICIiKTsKICAgICBBU1NFUlQoaW5o
ZXJpdHMoJnNfaW5mbykpOwogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5uYW1lLCBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgIkVycm9yIiks
IERvbnRFbnVtKTsKICAgICBwdXRBbm9ueW1vdXNWYWx1ZShnbG9iYWxPYmplY3QtPmdsb2JhbERh
dGEoKSwgMCwgZ2xvYmFsT2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvclByb3RvdHlwZS5oCmluZGV4IDk4MzU3MmI2MjIzYTdiZDM4ZmMzZTVhYTE4NTY5YmMw
ODQ0MGVkNzguLmQ3YjE1MjI1YzgxOGYxMmRkMWI0NjNmZTFmNTQ3MDhjZGZjZjQ5YTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuaApAQCAtNDUs
NyArNDUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgRXJy
b3JQcm90b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKLSAg
ICAgICAgdm9pZCBjb25zdHJ1Y3RvckJvZHkoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKTsK
KyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCop
OwogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IEVycm9ySW5zdGFuY2U6OlN0cnVjdHVyZUZsYWdzOwog
ICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQW5vbnltb3VzU2xvdENvdW50ID0gRXJyb3JJ
bnN0YW5jZTo6QW5vbnltb3VzU2xvdENvdW50ICsgMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKaW5kZXggYjU4ZDg5NTE3ZTM3ZWRi
YWIyNzk0MDMwMTExNmZlM2MyMjNjMzQ4Mi4uNGJjNGZhZTA2MDRjYjYyMThiZDk0MGVjMmFmMzRh
ZWRhZGEzZGYxMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhj
ZXB0aW9uSGVscGVycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhj
ZXB0aW9uSGVscGVycy5jcHAKQEAgLTQ2LDcgKzQ2LDYgQEAgcHJpdmF0ZToKICAgICBJbnRlcnJ1
cHRlZEV4ZWN1dGlvbkVycm9yKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKICAgICAgICAgOiBK
U05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIGdsb2JhbERhdGEuaW50ZXJydXB0ZWRFeGVjdXRp
b25FcnJvclN0cnVjdHVyZS5nZXQoKSkKICAgICB7Ci0gICAgICAgIGZpbmlzaENyZWF0aW9uKGds
b2JhbERhdGEpOwogICAgIH0KIAogcHVibGljOgpAQCAtNTQsNyArNTMsOSBAQCBwdWJsaWM6CiAK
ICAgICBzdGF0aWMgSW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvciogY3JlYXRlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxJ
bnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yPihnbG9iYWxEYXRhLmhlYXApKSBJbnRlcnJ1cHRlZEV4
ZWN1dGlvbkVycm9yKGdsb2JhbERhdGEpOworICAgICAgICBJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVy
cm9yKiBlcnJvciA9IG5ldyAoYWxsb2NhdGVDZWxsPEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3I+
KGdsb2JhbERhdGEuaGVhcCkpIEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3IoZ2xvYmFsRGF0YSk7
CisgICAgICAgIGVycm9yLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKKyAgICAgICAgcmV0
dXJuIGVycm9yOwogICAgIH0KIAogICAgIHZpcnR1YWwgQ29tcGxUeXBlIGV4Y2VwdGlvblR5cGUo
KSBjb25zdCB7IHJldHVybiBJbnRlcnJ1cHRlZDsgfQpAQCAtNzIsNyArNzMsNiBAQCBwcml2YXRl
OgogICAgIFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEp
CiAgICAgICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLnRlcm1p
bmF0ZWRFeGVjdXRpb25FcnJvclN0cnVjdHVyZS5nZXQoKSkKICAgICB7Ci0gICAgICAgIGZpbmlz
aENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIH0KIAogcHVibGljOgpAQCAtODAsNyArODAsOSBA
QCBwdWJsaWM6CiAKICAgICBzdGF0aWMgVGVybWluYXRlZEV4ZWN1dGlvbkVycm9yKiBjcmVhdGUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAoYWxs
b2NhdGVDZWxsPFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcj4oZ2xvYmFsRGF0YS5oZWFwKSkgVGVy
bWluYXRlZEV4ZWN1dGlvbkVycm9yKGdsb2JhbERhdGEpOworICAgICAgICBUZXJtaW5hdGVkRXhl
Y3V0aW9uRXJyb3IqIGVycm9yID0gbmV3IChhbGxvY2F0ZUNlbGw8VGVybWluYXRlZEV4ZWN1dGlv
bkVycm9yPihnbG9iYWxEYXRhLmhlYXApKSBUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3IoZ2xvYmFs
RGF0YSk7CisgICAgICAgIGVycm9yLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKKyAgICAg
ICAgcmV0dXJuIGVycm9yOwogICAgIH0KIAogICAgIHZpcnR1YWwgQ29tcGxUeXBlIGV4Y2VwdGlv
blR5cGUoKSBjb25zdCB7IHJldHVybiBUZXJtaW5hdGVkOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCmluZGV4IDM4OTdlOTM2OGIyZjkwNzlhYTViOTJm
MmZkNDAyMTdjZTYwZTAwZTIuLjU2MTc1MjIzMDk2YTJmMjYyMzVjZTdiMDcxNGU5NjYzZGVjOTgx
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCkBA
IC0xMjcsNyArMTI3LDYgQEAgY29uc3QgQ2xhc3NJbmZvIEV2YWxFeGVjdXRhYmxlOjpzX2luZm8g
PSB7ICJFdmFsRXhlY3V0YWJsZSIsICZTY3JpcHRFeGVjdXRhYmxlOjoKIEV2YWxFeGVjdXRhYmxl
OjpFdmFsRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJj
ZSwgYm9vbCBpblN0cmljdENvbnRleHQpCiAgICAgOiBTY3JpcHRFeGVjdXRhYmxlKGV4ZWMtPmds
b2JhbERhdGEoKS5ldmFsRXhlY3V0YWJsZVN0cnVjdHVyZS5nZXQoKSwgZXhlYywgc291cmNlLCBp
blN0cmljdENvbnRleHQpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgp
KTsKIH0KIAogRXZhbEV4ZWN1dGFibGU6On5FdmFsRXhlY3V0YWJsZSgpCkBAIC0xMzksNyArMTM4
LDYgQEAgY29uc3QgQ2xhc3NJbmZvIFByb2dyYW1FeGVjdXRhYmxlOjpzX2luZm8gPSB7ICJQcm9n
cmFtRXhlY3V0YWJsZSIsICZTY3JpcHRFeGVjdXQKIFByb2dyYW1FeGVjdXRhYmxlOjpQcm9ncmFt
RXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSkKICAg
ICA6IFNjcmlwdEV4ZWN1dGFibGUoZXhlYy0+Z2xvYmFsRGF0YSgpLnByb2dyYW1FeGVjdXRhYmxl
U3RydWN0dXJlLmdldCgpLCBleGVjLCBzb3VyY2UsIGZhbHNlKQogewotICAgIGZpbmlzaENyZWF0
aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CiB9CiAKIFByb2dyYW1FeGVjdXRhYmxlOjp+UHJvZ3Jh
bUV4ZWN1dGFibGUoKQpAQCAtMTQ4LDcgKzE0Niw3IEBAIFByb2dyYW1FeGVjdXRhYmxlOjp+UHJv
Z3JhbUV4ZWN1dGFibGUoKQogCiBjb25zdCBDbGFzc0luZm8gRnVuY3Rpb25FeGVjdXRhYmxlOjpz
X2luZm8gPSB7ICJGdW5jdGlvbkV4ZWN1dGFibGUiLCAmU2NyaXB0RXhlY3V0YWJsZTo6c19pbmZv
LCAwLCAwIH07CiAKLUZ1bmN0aW9uRXhlY3V0YWJsZTo6RnVuY3Rpb25FeGVjdXRhYmxlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291cmNl
Q29kZSYgc291cmNlLCBib29sIGZvcmNlVXNlc0FyZ3VtZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJz
KiBwYXJhbWV0ZXJzLCBib29sIGluU3RyaWN0Q29udGV4dCwgaW50IGZpcnN0TGluZSwgaW50IGxh
c3RMaW5lKQorRnVuY3Rpb25FeGVjdXRhYmxlOjpGdW5jdGlvbkV4ZWN1dGFibGUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25zdCBTb3VyY2VDb2Rl
JiBzb3VyY2UsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqIHBh
cmFtZXRlcnMsIGJvb2wgaW5TdHJpY3RDb250ZXh0KQogICAgIDogU2NyaXB0RXhlY3V0YWJsZShn
bG9iYWxEYXRhLmZ1bmN0aW9uRXhlY3V0YWJsZVN0cnVjdHVyZS5nZXQoKSwgZ2xvYmFsRGF0YSwg
c291cmNlLCBpblN0cmljdENvbnRleHQpCiAgICAgLCBtX251bUNhcHR1cmVkVmFyaWFibGVzKDAp
CiAgICAgLCBtX2ZvcmNlVXNlc0FyZ3VtZW50cyhmb3JjZVVzZXNBcmd1bWVudHMpCkBAIC0xNTYs
MTAgKzE1NCw5IEBAIEZ1bmN0aW9uRXhlY3V0YWJsZTo6RnVuY3Rpb25FeGVjdXRhYmxlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmllCiAgICAgLCBtX25hbWUobmFtZSkK
ICAgICAsIG1fc3ltYm9sVGFibGUoMCkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRh
LCBuYW1lLCBmaXJzdExpbmUsIGxhc3RMaW5lKTsKIH0KIAotRnVuY3Rpb25FeGVjdXRhYmxlOjpG
dW5jdGlvbkV4ZWN1dGFibGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBuYW1l
LCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5j
dGlvblBhcmFtZXRlcnMqIHBhcmFtZXRlcnMsIGJvb2wgaW5TdHJpY3RDb250ZXh0LCBpbnQgZmly
c3RMaW5lLCBpbnQgbGFzdExpbmUpCitGdW5jdGlvbkV4ZWN1dGFibGU6OkZ1bmN0aW9uRXhlY3V0
YWJsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJj
ZUNvZGUmIHNvdXJjZSwgYm9vbCBmb3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVy
cyogcGFyYW1ldGVycywgYm9vbCBpblN0cmljdENvbnRleHQpCiAgICAgOiBTY3JpcHRFeGVjdXRh
YmxlKGV4ZWMtPmdsb2JhbERhdGEoKS5mdW5jdGlvbkV4ZWN1dGFibGVTdHJ1Y3R1cmUuZ2V0KCks
IGV4ZWMsIHNvdXJjZSwgaW5TdHJpY3RDb250ZXh0KQogICAgICwgbV9udW1DYXB0dXJlZFZhcmlh
YmxlcygwKQogICAgICwgbV9mb3JjZVVzZXNBcmd1bWVudHMoZm9yY2VVc2VzQXJndW1lbnRzKQpA
QCAtMTY3LDcgKzE2NCw2IEBAIEZ1bmN0aW9uRXhlY3V0YWJsZTo6RnVuY3Rpb25FeGVjdXRhYmxl
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgbmFtZSwKICAgICAsIG1fbmFtZShu
YW1lKQogICAgICwgbV9zeW1ib2xUYWJsZSgwKQogewotICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMt
Pmdsb2JhbERhdGEoKSwgbmFtZSwgZmlyc3RMaW5lLCBsYXN0TGluZSk7CiB9CiAKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCmluZGV4IDVmYWRiYjgxMjQxYTBj
ZTNlMTM4MzE4NTg4YWY0MjExNjdmYTFiNjkuLjYzOWJiZTQ3MDBhZjMzNDM0MjQxZDE1NTA4YWRk
N2Q0MWE3MmExN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4
ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxl
LmgKQEAgLTE3NiwxNiArMTc2LDIxIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMg
TmF0aXZlRXhlY3V0YWJsZSogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyIGNhbGxUaHVuaywgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIE1hY3Jv
QXNzZW1ibGVyQ29kZVB0ciBjb25zdHJ1Y3RUaHVuaywgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0
b3IpCiAgICAgICAgIHsKICAgICAgICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGV4ZWN1dGFibGU7
Ci0gICAgICAgICAgICBpZiAoIWNhbGxUaHVuaykKLSAgICAgICAgICAgICAgICBleGVjdXRhYmxl
ID0gbmV3IChhbGxvY2F0ZUNlbGw8TmF0aXZlRXhlY3V0YWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkg
TmF0aXZlRXhlY3V0YWJsZShnbG9iYWxEYXRhLCBKSVRDb2RlKCksIGZ1bmN0aW9uLCBKSVRDb2Rl
KCksIGNvbnN0cnVjdG9yKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBleGVj
dXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8TmF0aXZlRXhlY3V0YWJsZT4oZ2xvYmFsRGF0YS5o
ZWFwKSkgTmF0aXZlRXhlY3V0YWJsZShnbG9iYWxEYXRhLCBKSVRDb2RlOjpIb3N0RnVuY3Rpb24o
Y2FsbFRodW5rKSwgZnVuY3Rpb24sIEpJVENvZGU6Okhvc3RGdW5jdGlvbihjb25zdHJ1Y3RUaHVu
ayksIGNvbnN0cnVjdG9yKTsKKyAgICAgICAgICAgIGlmICghY2FsbFRodW5rKSB7CisgICAgICAg
ICAgICAgICAgZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2NhdGVDZWxsPE5hdGl2ZUV4ZWN1dGFibGU+
KGdsb2JhbERhdGEuaGVhcCkpIE5hdGl2ZUV4ZWN1dGFibGUoZ2xvYmFsRGF0YSwgZnVuY3Rpb24s
IGNvbnN0cnVjdG9yKTsKKyAgICAgICAgICAgICAgICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlv
bihnbG9iYWxEYXRhLCBKSVRDb2RlKCksIEpJVENvZGUoKSk7CisgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxOYXRpdmVF
eGVjdXRhYmxlPihnbG9iYWxEYXRhLmhlYXApKSBOYXRpdmVFeGVjdXRhYmxlKGdsb2JhbERhdGEs
IGZ1bmN0aW9uLCBjb25zdHJ1Y3Rvcik7CisgICAgICAgICAgICAgICAgZXhlY3V0YWJsZS0+Zmlu
aXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgSklUQ29kZTo6SG9zdEZ1bmN0aW9uKGNhbGxUaHVuayks
IEpJVENvZGU6Okhvc3RGdW5jdGlvbihjb25zdHJ1Y3RUaHVuaykpOworICAgICAgICAgICAgfQog
ICAgICAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CiAgICAgICAgIH0KICNlbHNlCiAgICAgICAg
IHN0YXRpYyBOYXRpdmVFeGVjdXRhYmxlKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxOYXRpdmVFeGVj
dXRhYmxlPihnbG9iYWxEYXRhLmhlYXApKSBOYXRpdmVFeGVjdXRhYmxlKGdsb2JhbERhdGEsIGZ1
bmN0aW9uLCBjb25zdHJ1Y3Rvcik7CisgICAgICAgICAgICBOYXRpdmVFeGVjdXRhYmxlKiBleGVj
dXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8TmF0aXZlRXhlY3V0YWJsZT4oZ2xvYmFsRGF0YS5o
ZWFwKSkgTmF0aXZlRXhlY3V0YWJsZShnbG9iYWxEYXRhLCBmdW5jdGlvbiwgY29uc3RydWN0b3Ip
OworICAgICAgICAgICAgZXhlY3V0YWJsZS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7Cisg
ICAgICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAgICAgICAgfQogI2VuZGlmCiAKQEAgLTIx
MSwxMiArMjE2LDExIEBAIG5hbWVzcGFjZSBKU0MgewogIAogICAgIHByaXZhdGU6CiAjaWYgRU5B
QkxFKEpJVCkKLSAgICAgICAgTmF0aXZlRXhlY3V0YWJsZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpJVENvZGUgY2FsbFRodW5rLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgSklUQ29kZSBj
b25zdHJ1Y3RUaHVuaywgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IpCisgICAgICAgIE5hdGl2
ZUV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBOYXRpdmVGdW5jdGlvbiBmdW5j
dGlvbiwgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IpCiAgICAgICAgICAgICA6IEV4ZWN1dGFi
bGVCYXNlKGdsb2JhbERhdGEsIGdsb2JhbERhdGEubmF0aXZlRXhlY3V0YWJsZVN0cnVjdHVyZS5n
ZXQoKSwgTlVNX1BBUkFNRVRFUlNfSVNfSE9TVCkKICAgICAgICAgICAgICwgbV9mdW5jdGlvbihm
dW5jdGlvbikKICAgICAgICAgICAgICwgbV9jb25zdHJ1Y3Rvcihjb25zdHJ1Y3RvcikKICAgICAg
ICAgewotICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgY2FsbFRodW5rLCBj
b25zdHJ1Y3RUaHVuayk7CiAgICAgICAgIH0KICNlbHNlCiAgICAgICAgIE5hdGl2ZUV4ZWN1dGFi
bGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgTmF0
aXZlRnVuY3Rpb24gY29uc3RydWN0b3IpCkBAIC0yMjQsNyArMjI4LDYgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgICAgICAsIG1fZnVuY3Rpb24oZnVuY3Rpb24pCiAgICAgICAgICAgICAsIG1f
Y29uc3RydWN0b3IoY29uc3RydWN0b3IpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGZpbmlzaENy
ZWF0aW9uKGdsb2JhbERhdGEpOwogICAgICAgICB9CiAjZW5kaWYKIApAQCAtMzE3LDYgKzMyMCw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgRXZhbEV4ZWN1dGFibGUqIGNyZWF0
ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBpc0luU3Ry
aWN0Q29udGV4dCkgCiAgICAgICAgIHsKICAgICAgICAgICAgIEV2YWxFeGVjdXRhYmxlKiBleGVj
dXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8RXZhbEV4ZWN1dGFibGU+KCpleGVjLT5oZWFwKCkp
KSBFdmFsRXhlY3V0YWJsZShleGVjLCBzb3VyY2UsIGlzSW5TdHJpY3RDb250ZXh0KTsKKyAgICAg
ICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CiAg
ICAgICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAgICAgICAgfQogCkBAIC0zNTQsNiArMzU4
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBQcm9ncmFtRXhlY3V0YWJsZSog
Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291cmNlKQogICAgICAg
ICB7CiAgICAgICAgICAgICBQcm9ncmFtRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IG5ldyAoYWxs
b2NhdGVDZWxsPFByb2dyYW1FeGVjdXRhYmxlPigqZXhlYy0+aGVhcCgpKSkgUHJvZ3JhbUV4ZWN1
dGFibGUoZXhlYywgc291cmNlKTsKKyAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0
aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CiAgICAgICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsK
ICAgICAgICAgfQogCkBAIC00MTIsMTMgKzQxNywxNSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
ICAgICBzdGF0aWMgRnVuY3Rpb25FeGVjdXRhYmxlKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJvb2wgZm9y
Y2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqIHBhcmFtZXRlcnMsIGJvb2wgaXNJ
blN0cmljdENvbnRleHQsIGludCBmaXJzdExpbmUsIGludCBsYXN0TGluZSkKICAgICAgICAgewot
ICAgICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0
ZUNlbGw8RnVuY3Rpb25FeGVjdXRhYmxlPigqZXhlYy0+aGVhcCgpKSkgRnVuY3Rpb25FeGVjdXRh
YmxlKGV4ZWMsIG5hbWUsIHNvdXJjZSwgZm9yY2VVc2VzQXJndW1lbnRzLCBwYXJhbWV0ZXJzLCBp
c0luU3RyaWN0Q29udGV4dCwgZmlyc3RMaW5lLCBsYXN0TGluZSk7CisgICAgICAgICAgICBGdW5j
dGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxGdW5jdGlvbkV4
ZWN1dGFibGU+KCpleGVjLT5oZWFwKCkpKSBGdW5jdGlvbkV4ZWN1dGFibGUoZXhlYywgbmFtZSwg
c291cmNlLCBmb3JjZVVzZXNBcmd1bWVudHMsIHBhcmFtZXRlcnMsIGlzSW5TdHJpY3RDb250ZXh0
KTsKKyAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERh
dGEoKSwgbmFtZSwgZmlyc3RMaW5lLCBsYXN0TGluZSk7CiAgICAgICAgICAgICByZXR1cm4gZXhl
Y3V0YWJsZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBGdW5jdGlvbkV4ZWN1dGFibGUq
IGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXImIG5hbWUs
IGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBmb3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0
aW9uUGFyYW1ldGVycyogcGFyYW1ldGVycywgYm9vbCBpc0luU3RyaWN0Q29udGV4dCwgaW50IGZp
cnN0TGluZSwgaW50IGxhc3RMaW5lKQogICAgICAgICB7Ci0gICAgICAgICAgICBGdW5jdGlvbkV4
ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxGdW5jdGlvbkV4ZWN1dGFi
bGU+KGdsb2JhbERhdGEuaGVhcCkpIEZ1bmN0aW9uRXhlY3V0YWJsZShnbG9iYWxEYXRhLCBuYW1l
LCBzb3VyY2UsIGZvcmNlVXNlc0FyZ3VtZW50cywgcGFyYW1ldGVycywgaXNJblN0cmljdENvbnRl
eHQsIGZpcnN0TGluZSwgbGFzdExpbmUpOworICAgICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxl
KiBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8RnVuY3Rpb25FeGVjdXRhYmxlPihnbG9i
YWxEYXRhLmhlYXApKSBGdW5jdGlvbkV4ZWN1dGFibGUoZ2xvYmFsRGF0YSwgbmFtZSwgc291cmNl
LCBmb3JjZVVzZXNBcmd1bWVudHMsIHBhcmFtZXRlcnMsIGlzSW5TdHJpY3RDb250ZXh0KTsKKyAg
ICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIG5hbWUsIGZp
cnN0TGluZSwgbGFzdExpbmUpOwogICAgICAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CiAgICAg
ICAgIH0KIApAQCAtNTM5LDggKzU0Niw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAK
ICAgICBwcml2YXRlOgotICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiwg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29kZSYsIGJvb2wgZm9yY2VVc2Vz
QXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqLCBib29sLCBpbnQgZmlyc3RMaW5lLCBpbnQg
bGFzdExpbmUpOwotICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29kZSYsIGJvb2wgZm9yY2VVc2VzQXJndW1l
bnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqLCBib29sLCBpbnQgZmlyc3RMaW5lLCBpbnQgbGFzdExp
bmUpOworICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiwgY29uc3QgSWRl
bnRpZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29kZSYsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRz
LCBGdW5jdGlvblBhcmFtZXRlcnMqLCBib29sKTsKKyAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxl
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmLCBi
b29sIGZvcmNlVXNlc0FyZ3VtZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJzKiwgYm9vbCk7CiAKICAg
ICAgICAgSlNPYmplY3QqIGNvbXBpbGVGb3JDYWxsSW50ZXJuYWwoRXhlY1N0YXRlKiwgU2NvcGVD
aGFpbk5vZGUqLCBFeGVjU3RhdGUqIGNhbGxlZUFyZ3NFeGVjKTsKICAgICAgICAgSlNPYmplY3Qq
IGNvbXBpbGVGb3JDb25zdHJ1Y3RJbnRlcm5hbChFeGVjU3RhdGUqLCBTY29wZUNoYWluTm9kZSop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5j
dGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9u
LmNwcAppbmRleCBiY2ExNzQ3MTMyZDRjOTczMTdkNTdjZDgwZTQ5MWQ0ODYyOGFjZTkwLi4wN2Mw
ZjdmNWJmNjVhM2U3NTZiNTFjMjQwMzdjYWNjMzNjNDJlNjIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcApAQCAtNDQsNyArNDQs
MTQgQEAgSW50ZXJuYWxGdW5jdGlvbjo6SW50ZXJuYWxGdW5jdGlvbihWUHRyU3RlYWxpbmdIYWNr
VHlwZSkKIEludGVybmFsRnVuY3Rpb246OkludGVybmFsRnVuY3Rpb24oSlNHbG9iYWxEYXRhKiBn
bG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKICAgICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9i
amVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKIHsKLSAgICBjb25zdHJ1Y3RvckJvZHkoKmds
b2JhbERhdGEsIG5hbWUpOworICAgIGZpbmlzaENyZWF0aW9uKCpnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIG5hbWUpOworfQorCit2b2lkIEludGVybmFsRnVuY3Rpb246OmZpbmlzaENyZWF0aW9u
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9i
YWxEYXRhLCBnbG9iYWxPYmplY3QpOworICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Cisg
ICAgcHV0RGlyZWN0KGdsb2JhbERhdGEsIGdsb2JhbERhdGEucHJvcGVydHlOYW1lcy0+bmFtZSwg
anNTdHJpbmcoJmdsb2JhbERhdGEsIG5hbWUuaXNOdWxsKCkgPyAiIiA6IG5hbWUudXN0cmluZygp
KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogfQogCiBjb25zdCBVU3RyaW5n
JiBJbnRlcm5hbEZ1bmN0aW9uOjpuYW1lKEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24uaAppbmRleCAxNDM2ZjMyZDZl
N2E3ZGUyOGY1NGY5MTA5MDNiZDFmNzgxMDcwZTY1Li42MDY3YmU4ZGJmZGRiMzdjYTQ2MDc5ODFh
NzMwOGE1ODM4MDY4NWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRlcm5hbEZ1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50ZXJuYWxGdW5jdGlvbi5oCkBAIC01NCwxMSArNTQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgICAgICBJbnRlcm5hbEZ1bmN0aW9uKEpTR2xvYmFsRGF0YSosIEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlKiwgY29uc3QgSWRlbnRpZmllciYpOwogCi0gICAgICAgIHZvaWQgY29uc3RydWN0
b3JCb2R5KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkK
LSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKLSAgICAg
ICAgICAgIHB1dERpcmVjdChnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLnByb3BlcnR5TmFtZXMtPm5h
bWUsIGpzU3RyaW5nKCZnbG9iYWxEYXRhLCBuYW1lLmlzTnVsbCgpID8gIiIgOiBuYW1lLnVzdHJp
bmcoKSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKLSAgICAgICAgfQorICAg
ICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIEpTR2xvYmFsT2JqZWN0Kiwg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSk7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFs
IENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKaW5kZXggNTAyODkwMmM5OTJkMTRhMTI1
NGE3M2EwZGRjNjljOTlmN2ZhMGI2Mi4uNWM5OWQ3YTY1NDM4ZDFjZTc5ZGM3Y2I1MDVhODU3N2Ez
ZjY5N2JlYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3Rp
dmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRp
b24uY3BwCkBAIC00Niw2ICs0NiwxMiBAQCBKU0FjdGl2YXRpb246OkpTQWN0aXZhdGlvbihDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbkV4ZQogICAgICwg
bV9yZXF1aXJlc0R5bmFtaWNDaGVja3MoZnVuY3Rpb25FeGVjdXRhYmxlLT51c2VzRXZhbCgpKQog
ICAgICwgbV9hcmd1bWVudHNSZWdpc3RlcihmdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVyYXRlZEJ5
dGVjb2RlKCkuYXJndW1lbnRzUmVnaXN0ZXIoKSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihjYWxs
RnJhbWUpOworfQorCit2b2lkIEpTQWN0aXZhdGlvbjo6ZmluaXNoQ3JlYXRpb24oQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oY2FsbEZyYW1lLT5nbG9i
YWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAKICAgICAvLyBXZSBo
YXZlIHRvIG1hbnVhbGx5IHJlZiBhbmQgZGVyZWYgdGhlIHN5bWJvbCB0YWJsZSBhcyBKU1Zhcmlh
YmxlT2JqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fj
dGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5o
CmluZGV4IGYxNTkxYWFhMTgwZWFlMTNmMzVmNTkyMDY0ODQyMDliYjNmOGUwYWQuLmRhMmU0NjU1
ZTA2OTRmN2M1OTNkM2FmMTcxZDYwMGZkMDcwNjYyNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCkBAIC03Nyw2ICs3Nyw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0
ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyB9CiAKICAgICBwcm90ZWN0ZWQ6CisgICAg
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oQ2FsbEZyYW1lKik7CiAgICAgICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IElzRW52aXJvbm1lbnRSZWNvcmQgfCBPdmVycmlk
ZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVz
R2V0UHJvcGVydHlOYW1lcyB8IEpTVmFyaWFibGVPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCiAg
ICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKaW5k
ZXggMTg1ZDdhZWI2YmZjNDUyOTE2YmJmZWJiMTcxMDRkYjA3Njc1ZDkzMi4uNGIwY2FhMjIxNjgy
ZjZjNjhhNjA1ZThhZjllNTQwNjY1OGMwMzJjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheS5jcHAKQEAgLTEzNCwxOSArMTM0LDYgQEAgSlNBcnJheTo6SlNBcnJheShW
UHRyU3RlYWxpbmdIYWNrVHlwZSkKIEpTQXJyYXk6OkpTQXJyYXkoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xv
YmFsRGF0YSwgc3RydWN0dXJlKQogewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwot
fQotCi1KU0FycmF5OjpKU0FycmF5KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIHVuc2lnbmVkIGluaXRpYWxMZW5ndGgsIEFycmF5Q3JlYXRpb25Nb2RlIGNy
ZWF0aW9uTW9kZSkKLSAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJl
KQotewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGluaXRpYWxMZW5ndGgsIGNyZWF0
aW9uTW9kZSk7Ci19Ci0KLUpTQXJyYXk6OkpTQXJyYXkoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgQXJnTGlzdCYgbGlzdCkKLSAgICA6IEpTTm9u
RmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQotewotICAgIGZpbmlzaENyZWF0aW9u
KGdsb2JhbERhdGEsIGxpc3QpOwogfQogCiB2b2lkIEpTQXJyYXk6OmZpbmlzaENyZWF0aW9uKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJy
YXkuaAppbmRleCBlOGUxZmE5MmQ1ZmQ0MDE5MzFlNzgyMzVkMzI2NTQxMzlkNjZkZmU2Li5iYTJl
MTdjZWFjOTk4ZjAzZDdjYWIwNTliMzk5ZDg0OWMxMzUyOTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheS5oCkBAIC02Miw4ICs2Miw2IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBleHBsaWNpdCBKU0FycmF5KEpTR2xvYmFsRGF0YSYs
IFN0cnVjdHVyZSopOwotICAgICAgICBKU0FycmF5KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSos
IHVuc2lnbmVkIGluaXRpYWxMZW5ndGgsIEFycmF5Q3JlYXRpb25Nb2RlKTsKLSAgICAgICAgSlNB
cnJheShKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqLCBjb25zdCBBcmdMaXN0JiBpbml0aWFsVmFs
dWVzKTsKIAogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYpOwogICAg
ICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIHVuc2lnbmVkIGluaXRpYWxM
ZW5ndGgsIEFycmF5Q3JlYXRpb25Nb2RlKTsKQEAgLTc3LDE5ICs3NSwyNSBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgICAgICBzdGF0aWMgSlNBcnJheSogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0FycmF5PihnbG9iYWxEYXRhLmhlYXApKSBKU0FycmF5
KGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7CisgICAgICAgICAgICBKU0FycmF5KiBhcnJheSA9IG5l
dyAoYWxsb2NhdGVDZWxsPEpTQXJyYXk+KGdsb2JhbERhdGEuaGVhcCkpIEpTQXJyYXkoZ2xvYmFs
RGF0YSwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIGFycmF5LT5maW5pc2hDcmVhdGlvbihnbG9i
YWxEYXRhKTsKKyAgICAgICAgICAgIHJldHVybiBhcnJheTsKICAgICAgICAgfQotICAgICAgICAK
KwogICAgICAgICBzdGF0aWMgSlNBcnJheSogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVuc2lnbmVkIGluaXRpYWxMZW5ndGgsIEFycmF5Q3Jl
YXRpb25Nb2RlIGNyZWF0ZU1vZGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcg
KGFsbG9jYXRlQ2VsbDxKU0FycmF5PihnbG9iYWxEYXRhLmhlYXApKSBKU0FycmF5KGdsb2JhbERh
dGEsIHN0cnVjdHVyZSwgaW5pdGlhbExlbmd0aCwgY3JlYXRlTW9kZSk7CisgICAgICAgICAgICBK
U0FycmF5KiBhcnJheSA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTQXJyYXk+KGdsb2JhbERhdGEuaGVh
cCkpIEpTQXJyYXkoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIGFycmF5LT5m
aW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBpbml0aWFsTGVuZ3RoLCBjcmVhdGVNb2RlKTsKKyAg
ICAgICAgICAgIHJldHVybiBhcnJheTsKICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICBz
dGF0aWMgSlNBcnJheSogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIGNvbnN0IEFyZ0xpc3QmIGluaXRpYWxWYWx1ZXMpCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0FycmF5PihnbG9iYWxEYXRhLmhl
YXApKSBKU0FycmF5KGdsb2JhbERhdGEsIHN0cnVjdHVyZSwgaW5pdGlhbFZhbHVlcyk7CisgICAg
ICAgICAgICBKU0FycmF5KiBhcnJheSA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTQXJyYXk+KGdsb2Jh
bERhdGEuaGVhcCkpIEpTQXJyYXkoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKKyAgICAgICAgICAg
IGFycmF5LT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBpbml0aWFsVmFsdWVzKTsKKyAgICAg
ICAgICAgIHJldHVybiBhcnJheTsKICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKaW5kZXggYmJlNzYz
MmEyZTIxYTM5OTdkNDczNWVmNjZjZDFkM2Y3NjcxYTA3OS4uNGVlNjU0YzBmMzI5MTMzZTE0OWFk
OWNlZGY1MmNlOTJjZTFkNWExOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNCeXRlQXJyYXkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQnl0ZUFycmF5LmNwcApAQCAtMzksMTQgKzM5LDggQEAgSlNCeXRlQXJyYXk6OkpTQnl0ZUFy
cmF5KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEJ5dGVBcnJheSogc3Rv
cmEKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUp
CiAgICAgLCBtX3N0b3JhZ2Uoc3RvcmFnZSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihleGVjKTsK
IH0KICAgICAgICAgCi1KU0J5dGVBcnJheSogSlNCeXRlQXJyYXk6OmNyZWF0ZShFeGVjU3RhdGUq
IGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBCeXRlQXJyYXkqIHN0b3JhZ2UpCi17Ci0gICAg
cmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEpTQnl0ZUFycmF5PigqZXhlYy0+aGVhcCgpKSkgSlNC
eXRlQXJyYXkoZXhlYywgc3RydWN0dXJlLCBzdG9yYWdlKTsKLX0KLQogI2lmICFBU1NFUlRfRElT
QUJMRUQKIEpTQnl0ZUFycmF5Ojp+SlNCeXRlQXJyYXkoKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKaW5kZXggMjhlYmQ3ZDBmNThlY2I0NGFhMmIxNmU3
MDQ2ZDQ4ZDkzMjRhZTExZC4uYjIxZDM3MTI1NDFmN2I5NGVlM2E5M2Q0N2EzZWQyOWJlNjM2N2Ez
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXku
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCkBAIC03
OSw3ICs3OSwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSlNCeXRlQXJyYXkoRXhlY1N0
YXRlKiwgU3RydWN0dXJlKiwgQnl0ZUFycmF5KiBzdG9yYWdlKTsKICAgICAgICAgCiAgICAgcHVi
bGljOgotICAgICAgICBzdGF0aWMgSlNCeXRlQXJyYXkqIGNyZWF0ZShFeGVjU3RhdGUqLCBTdHJ1
Y3R1cmUqLCBCeXRlQXJyYXkqKTsKKyAgICAgICAgc3RhdGljIEpTQnl0ZUFycmF5KiBjcmVhdGUo
RXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQnl0ZUFycmF5KiBzdG9yYWdl
KQorICAgICAgICB7CisgICAgICAgICAgICBKU0J5dGVBcnJheSogYXJyYXkgPSBuZXcgKGFsbG9j
YXRlQ2VsbDxKU0J5dGVBcnJheT4oKmV4ZWMtPmhlYXAoKSkpIEpTQnl0ZUFycmF5KGV4ZWMsIHN0
cnVjdHVyZSwgc3RvcmFnZSk7CisgICAgICAgICAgICBhcnJheS0+ZmluaXNoQ3JlYXRpb24oZXhl
Yyk7CisgICAgICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgICAgIH0KIAogICAgICAgICBzdGF0
aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiwgSlNWYWx1ZSBwcm90
b3R5cGUsIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiA9ICZzX2RlZmF1bHRJbmZvKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCA0OTlhZWI2ZDI3
NDhjMjk0MDg5MGJjMmJiYzdkZDhkYTg2NGViZWVkLi5kYWY0Y2E5NTgyOTdmMzE4N2M3YTZjY2Nj
ZjQzOTYwNTgwYzhlY2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1
bmN0aW9uLmNwcApAQCAtNjEsMjEgKzYxLDExIEBAIEpTRnVuY3Rpb246OkpTRnVuY3Rpb24oVlB0
clN0ZWFsaW5nSGFja1R5cGUpCiB7CiB9CiAKLUpTRnVuY3Rpb246OkpTRnVuY3Rpb24oRXhlY1N0
YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgTmF0aXZlRXhlY3V0YWJs
ZSogdGh1bmspCitKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNl
KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogICAgICwgbV9leGVjdXRhYmxlKCkKICAgICAsIG1f
c2NvcGVDaGFpbihleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIGdsb2JhbE9iamVjdC0+Z2xvYmFs
U2NvcGVDaGFpbigpKQogewotICAgIGNvbnN0cnVjdG9yQm9keShleGVjLCBsZW5ndGgsIG5hbWUs
IHRodW5rKTsKLX0KLQotSlNGdW5jdGlvbjo6SlNGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQgbGVu
Z3RoLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBOYXRpdmVGdW5jdGlvbiBmdW5jKQotICAgIDog
QmFzZShnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKLSAgICAsIG1fZXhlY3V0YWJsZSgpCi0gICAg
LCBtX3Njb3BlQ2hhaW4oZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBnbG9iYWxPYmplY3QtPmds
b2JhbFNjb3BlQ2hhaW4oKSkKLXsKLSAgICAvLyBDYW4ndCBkbyB0aGlzIGR1cmluZyBpbml0aWFs
aXphdGlvbiBiZWNhdXNlIGdldEhvc3RGdW5jdGlvbiBtaWdodCBkbyBhIEdDIGFsbG9jYXRpb24u
Ci0gICAgY29uc3RydWN0b3JCb2R5KGV4ZWMsIGxlbmd0aCwgbmFtZSwgIGV4ZWMtPmdsb2JhbERh
dGEoKS5nZXRIb3N0RnVuY3Rpb24oZnVuYykpOwogfQogCiBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9u
KEV4ZWNTdGF0ZSogZXhlYywgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBTY29wZUNo
YWluTm9kZSogc2NvcGVDaGFpbk5vZGUpCkBAIC04MywxOSArNzMsMjUgQEAgSlNGdW5jdGlvbjo6
SlNGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJs
ZSwgU2NvcGVDaGEKICAgICAsIG1fZXhlY3V0YWJsZShleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMs
IGV4ZWN1dGFibGUpCiAgICAgLCBtX3Njb3BlQ2hhaW4oZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlz
LCBzY29wZUNoYWluTm9kZSkKIHsKLSAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwotICAg
IHNldFN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCksIHNjb3BlQ2hhaW5Ob2RlLT5nbG9iYWxP
YmplY3QtPm5hbWVkRnVuY3Rpb25TdHJ1Y3R1cmUoKSk7Ci0gICAgcHV0RGlyZWN0T2Zmc2V0KGV4
ZWMtPmdsb2JhbERhdGEoKSwgc2NvcGVDaGFpbk5vZGUtPmdsb2JhbE9iamVjdC0+ZnVuY3Rpb25O
YW1lT2Zmc2V0KCksIGV4ZWN1dGFibGUtPm5hbWVWYWx1ZSgpKTsKIH0KIAotaW5saW5lIHZvaWQg
SlNGdW5jdGlvbjo6Y29uc3RydWN0b3JCb2R5KEV4ZWNTdGF0ZSogZXhlYywgaW50IGxlbmd0aCwg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSwgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUpCit2b2lk
IEpTRnVuY3Rpb246OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgRXhl
Y3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUpCiB7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xv
YmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CiAgICAgQVNTRVJUKGluaGVy
aXRzKCZzX2luZm8pKTsKICAgICBtX2V4ZWN1dGFibGUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwg
dGhpcywgZXhlY3V0YWJsZSk7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhl
Yy0+Z2xvYmFsRGF0YSgpLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzU3RyaW5nKGV4ZWMsIG5hbWUu
aXNOdWxsKCkgPyAiIiA6IG5hbWUudXN0cmluZygpKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwg
RG9udEVudW0pOwogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKGxlbmd0aCksIERvbnREZWxldGUgfCBSZWFkT25s
eSB8IERvbnRFbnVtKTsKIH0KIAordm9pZCBKU0Z1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbihFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEZ1bmN0aW9uRXhlY3V0
YWJsZSogZXhlY3V0YWJsZSwgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW5Ob2RlKQoreworICAg
IEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxP
YmplY3QpOworICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CisgICAgc2V0U3RydWN0dXJl
KGV4ZWMtPmdsb2JhbERhdGEoKSwgc2NvcGVDaGFpbk5vZGUtPmdsb2JhbE9iamVjdC0+bmFtZWRG
dW5jdGlvblN0cnVjdHVyZSgpKTsKKyAgICBwdXREaXJlY3RPZmZzZXQoZXhlYy0+Z2xvYmFsRGF0
YSgpLCBzY29wZUNoYWluTm9kZS0+Z2xvYmFsT2JqZWN0LT5mdW5jdGlvbk5hbWVPZmZzZXQoKSwg
ZXhlY3V0YWJsZS0+bmFtZVZhbHVlKCkpOworfQorCiBKU0Z1bmN0aW9uOjp+SlNGdW5jdGlvbigp
CiB7CiAgICAgQVNTRVJUKHZwdHIoKSA9PSBKU0dsb2JhbERhdGE6OmpzRnVuY3Rpb25WUHRyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAppbmRleCA4YjczYjBi
ZTJmMmEyOTk3ZDkwOTA2MDEyOTczMGQwZGY1MGEwZGQ3Li41NTkzYjhhYWJiNzAwZThkOTUxODg5
NTZlN2Y2YjJhMzcyZTBjZDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNG
dW5jdGlvbi5oCkBAIC00NiwyNCArNDYsMzMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGZy
aWVuZCBjbGFzcyBERkc6OkpJVENvZGVHZW5lcmF0b3I7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBK
U0dsb2JhbERhdGE7CiAKLSAgICAgICAgSlNGdW5jdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9i
amVjdCosIFN0cnVjdHVyZSosIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImLCBOYXRpdmVG
dW5jdGlvbik7Ci0gICAgICAgIEpTRnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3Qq
LCBTdHJ1Y3R1cmUqLCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiwgTmF0aXZlRXhlY3V0
YWJsZSopOworICAgICAgICBKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlKik7CiAgICAgICAgIEpTRnVuY3Rpb24oRXhlY1N0YXRlKiwgRnVuY3Rpb25FeGVj
dXRhYmxlKiwgU2NvcGVDaGFpbk5vZGUqKTsKICAgICAgICAgCiAgICAgcHVibGljOgogICAgICAg
ICB0eXBlZGVmIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdCBCYXNlOwogCi0gICAgICAgIHN0YXRp
YyBKU0Z1bmN0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRp
ZmllciYgaWRlbnQsIE5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmMpCisgICAgICAgIHN0YXRpYyBK
U0Z1bmN0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmll
ciYgbmFtZSwgTmF0aXZlRnVuY3Rpb24gbmF0aXZlRnVuY3Rpb24pCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0Z1bmN0aW9uPigqZXhlYy0+aGVhcCgp
KSkgSlNGdW5jdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgbGVuZ3RoLCBpZGVu
dCwgbmF0aXZlRnVuYyk7CisgICAgICAgICAgICBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSA9
IChFeGVjdXRhYmxlQmFzZSopZXhlYy0+Z2xvYmFsRGF0YSgpLmdldEhvc3RGdW5jdGlvbihuYXRp
dmVGdW5jdGlvbik7CisgICAgICAgICAgICBKU0Z1bmN0aW9uKiBmdW5jdGlvbiA9IG5ldyAoYWxs
b2NhdGVDZWxsPEpTRnVuY3Rpb24+KCpleGVjLT5oZWFwKCkpKSBKU0Z1bmN0aW9uKGV4ZWMsIGds
b2JhbE9iamVjdCwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIC8vIENhbid0IGRvIHRoaXMgZHVy
aW5nIGluaXRpYWxpemF0aW9uIGJlY2F1c2UgZ2V0SG9zdEZ1bmN0aW9uIG1pZ2h0IGRvIGEgR0Mg
YWxsb2NhdGlvbi4KKyAgICAgICAgICAgIGZ1bmN0aW9uLT5maW5pc2hDcmVhdGlvbihleGVjLCBn
bG9iYWxPYmplY3QsIGxlbmd0aCwgbmFtZSwgZXhlY3V0YWJsZSk7CisgICAgICAgICAgICByZXR1
cm4gZnVuY3Rpb247CiAgICAgICAgIH0KLSAgICAgICAgc3RhdGljIEpTRnVuY3Rpb24qIGNyZWF0
ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgTmF0aXZl
RXhlY3V0YWJsZSogbmF0aXZlRXhlYykKKworICAgICAgICBzdGF0aWMgSlNGdW5jdGlvbiogY3Jl
YXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIE5hdGl2
ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0Z1bmN0aW9uPigqZXhlYy0+aGVhcCgpKSkgSlNGdW5j
dGlvbihleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgbGVuZ3RoLCBpZGVudCwgbmF0aXZl
RXhlYyk7CisgICAgICAgICAgICBKU0Z1bmN0aW9uKiBmdW5jdGlvbiA9IG5ldyAoYWxsb2NhdGVD
ZWxsPEpTRnVuY3Rpb24+KCpleGVjLT5oZWFwKCkpKSBKU0Z1bmN0aW9uKGV4ZWMsIGdsb2JhbE9i
amVjdCwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIGZ1bmN0aW9uLT5maW5pc2hDcmVhdGlvbihl
eGVjLCBnbG9iYWxPYmplY3QsIGxlbmd0aCwgbmFtZSwgKEV4ZWN1dGFibGVCYXNlKiluYXRpdmVF
eGVjdXRhYmxlKTsKKyAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbjsKICAgICAgICAgfQotICAg
ICAgICBzdGF0aWMgSlNGdW5jdGlvbiogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgRnVuY3Rpb25F
eGVjdXRhYmxlKiBmdW5jRXhlYywgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4pCisKKyAgICAg
ICAgc3RhdGljIEpTRnVuY3Rpb24qIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEZ1bmN0aW9uRXhl
Y3V0YWJsZSogZXhlY3V0YWJsZSwgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4pCiAgICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0Z1bmN0aW9uPigqZXhl
Yy0+aGVhcCgpKSkgSlNGdW5jdGlvbihleGVjLCBmdW5jRXhlYywgc2NvcGVDaGFpbik7CisgICAg
ICAgICAgICBKU0Z1bmN0aW9uKiBmdW5jdGlvbiA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTRnVuY3Rp
b24+KCpleGVjLT5oZWFwKCkpKSBKU0Z1bmN0aW9uKGV4ZWMsIGV4ZWN1dGFibGUsIHNjb3BlQ2hh
aW4pOworICAgICAgICAgICAgZnVuY3Rpb24tPmZpbmlzaENyZWF0aW9uKGV4ZWMsIHNjb3BlQ2hh
aW4tPmdsb2JhbE9iamVjdC5nZXQoKSwgZXhlY3V0YWJsZSwgc2NvcGVDaGFpbik7CisgICAgICAg
ICAgICByZXR1cm4gZnVuY3Rpb247CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHZpcnR1
YWwgfkpTRnVuY3Rpb24oKTsKQEAgLTEyMyw3ICsxMzIsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICBwcm90ZWN0ZWQ6CiAgICAgICAgIGNvbnN0IHN0YXRpYyB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8
IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNP
YmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCi0gICAgICAgIHZvaWQgY29uc3RydWN0b3JCb2R5KEV4
ZWNTdGF0ZSosIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEV4ZWN1dGFibGVC
YXNlKik7CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxP
YmplY3QqLCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBFeGVjdXRhYmxlQmFz
ZSopOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2Jq
ZWN0KiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgU2NvcGVDaGFpbk5vZGUqKTsKIAogICAgIHByaXZh
dGU6CiAgICAgICAgIGV4cGxpY2l0IEpTRnVuY3Rpb24oVlB0clN0ZWFsaW5nSGFja1R5cGUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXgg
YzIzMGQ3MDJiNTNmZDE3ZTVlNWRiZTIxNDI5YjAxOGY5MTEwMmQxYy4uODVjNDI5NjYzMWFlM2U2
M2Q5MzgwMzVlYTcwODAwNGJmY2VlMDczMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xNTksNyArMTU5LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgICAgICAsIG1fd2Vha1JhbmRvbShzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmFu
ZG9tTnVtYmVyKCkgKiAoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpICsgMS4w
KSkpCiAgICAgICAgICAgICAsIG1fZXZhbEVuYWJsZWQodHJ1ZSkKICAgICAgICAgewotICAgICAg
ICAgICAgY29uc3RydWN0b3JCb2R5KHRoaXMpOworICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24o
Z2xvYmFsRGF0YSwgdGhpcyk7CiAgICAgICAgIH0KIAogICAgICAgICBKU0dsb2JhbE9iamVjdChK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU09iamVjdCog
dGhpc1ZhbHVlKQpAQCAtMTY5LDExICsxNjksMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
ICAgICAsIG1fd2Vha1JhbmRvbShzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmFuZG9tTnVtYmVyKCkg
KiAoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpICsgMS4wKSkpCiAgICAgICAg
ICAgICAsIG1fZXZhbEVuYWJsZWQodHJ1ZSkKICAgICAgICAgewotICAgICAgICAgICAgY29uc3Ry
dWN0b3JCb2R5KHRoaXNWYWx1ZSk7CisgICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxE
YXRhLCB0aGlzVmFsdWUpOwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBjb25zdHJ1Y3RvckJv
ZHkoSlNPYmplY3QqIHRoaXNWYWx1ZSkKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTT2JqZWN0KiB0aGlzVmFsdWUpCiAgICAgICAgIHsKKyAg
ICAgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgICAgICAgICAg
Q09NUElMRV9BU1NFUlQoSlNHbG9iYWxPYmplY3Q6OkFub255bW91c1Nsb3RDb3VudCA9PSAxLCBK
U0dsb2JhbE9iamVjdF9oYXNfb25seV9hX3NpbmdsZV9zbG90KTsKICAgICAgICAgICAgIHB1dFRo
aXNUb0Fub255bW91c1ZhbHVlKDApOwogICAgICAgICAgICAgaW5pdCh0aGlzVmFsdWUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCmluZGV4IDY3ZmRh
MDUwYTYyODhkNzBhOTQyOThjZTAyYTcyNmQ4MjhlMjMyMWQuLjEzMWJhYTdhZjMyMTI3M2M3ZGJl
MDIwMTZjM2Y3ZjQwM2M1OTM0ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTm90QW5PYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU05vdEFuT2JqZWN0LmgKQEAgLTQxLDcgKzQxLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIEpTTm90QW5PYmplY3QoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICAgICAgOiBKU05vbkZp
bmFsT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+Z2xvYmFsRGF0YSgpLm5vdEFuT2Jq
ZWN0U3RydWN0dXJlLmdldCgpKQogICAgICAgICB7Ci0gICAgICAgICAgICBmaW5pc2hDcmVhdGlv
bihleGVjLT5nbG9iYWxEYXRhKCkpOwogICAgICAgICB9CiAgICAgICAgIAogICAgIHB1YmxpYzoK
QEAgLTQ5LDcgKzQ4LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIEpTTm90
QW5PYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU05vdEFuT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkg
SlNOb3RBbk9iamVjdChleGVjKTsKKyAgICAgICAgICAgIEpTTm90QW5PYmplY3QqIG9iamVjdCA9
IG5ldyAoYWxsb2NhdGVDZWxsPEpTTm90QW5PYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBKU05vdEFu
T2JqZWN0KGV4ZWMpOworICAgICAgICAgICAgb2JqZWN0LT5maW5pc2hDcmVhdGlvbihleGVjLT5n
bG9iYWxEYXRhKCkpOworICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICAgICAgfQogCiAg
ICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OT2JqZWN0LmNwcAppbmRleCAwNWJkZTI4MTlhMDZmOTE0OTQ4MjA5YmU0M2QzMzY4
YzkwNGUwZjI4Li4xNzMxNTJiMjkxOTNkZjIwMjQ1ODEyMzc2NzY4ZmJkODlkZTczNjBjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcApAQCAtNTYsNiAr
NTYsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiBKU09OT2JqZWN0OjpKU09OT2JqZWN0KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogeworICAgIGZpbmlz
aENyZWF0aW9uKGdsb2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgSlNPTk9iamVjdDo6ZmluaXNoQ3Jl
YXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hD
cmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKICAgICBB
U1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OT2JqZWN0LmgKaW5kZXggNzdiZjQzNjk5MTFiNmVjNDBiMzBhY2Q4MzQyNzNlZGMz
OTkzNWVhYS4uNDgwZTc0YmRiODM0OTM2YmQyOWY3MmU2YWNkZTI0NjE3ZGU2YTVmMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaApAQCAtNDksNiArNDksNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87
CiAKICAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxP
YmplY3QqKTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwog
CiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuY3BwCmluZGV4IDg4NTUzMGYxMGY3OTkwMWRm
ZjY0ODQzYTc0MzQzMDQ4OGY1ZjdhNGYuLmFlNzAzODA4YjBmYjQ1NGY1NWY1NDAzZjA2MTk5YjEz
NzNlMGIyYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0V2l0aEdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcApAQCAtMzMsMTMgKzMzLDExIEBAIG5hbWVz
cGFjZSBKU0MgewogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpKU09iamVjdFdpdGhHbG9iYWxP
YmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CiAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBzdHJ1
Y3R1cmUpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCks
IGdsb2JhbE9iamVjdCk7CiB9CiAKLUpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6SlNPYmplY3RX
aXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCitKU09iamVjdFdpdGhHbG9iYWxP
YmplY3Q6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRh
LCBzdHJ1Y3R1cmUpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgZ2xvYmFsT2Jq
ZWN0KTsKIH0KIAogdm9pZCBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9u
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
QEAgLTUwLDcgKzQ4LDcgQEAgdm9pZCBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OmZpbmlzaENy
ZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWwKICAgICBpZiAoIWdsb2Jh
bE9iamVjdCkKICAgICAgICAgY2xlYXJBbm9ueW1vdXNWYWx1ZShHbG9iYWxPYmplY3RTbG90KTsK
ICAgICBlbHNlCi0gICAgICAgIHB1dEFub255bW91c1ZhbHVlKGdsb2JhbERhdGEsIEdsb2JhbE9i
amVjdFNsb3QsIGdsb2JhbE9iamVjdCk7CisgICAgICAgIHB1dEFub255bW91c1ZhbHVlKGdsb2Jh
bE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBHbG9iYWxPYmplY3RTbG90LCBnbG9iYWxPYmplY3QpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgKaW5kZXggMTMwZTA3ZDY5MDUy
ZmQyMWZiMmE3MjZmMTIyODE3YzhhNzZmYmM4OC4uMzc5ODQ4YjY1NDM2NDU0OTFiNzJhNDVhYTFj
YTU3YzU0MWIyZTI2NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGlj
OgogCiBwcm90ZWN0ZWQ6CiAgICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlKik7Ci0gICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFs
RGF0YSYsIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CisgICAgSlNPYmplY3RXaXRoR2xv
YmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSopOwogCiAgICAgSlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0KFZQdHJTdGVhbGluZ0hhY2tUeXBlKQogICAgICAgICA6IEpTTm9uRmluYWxP
YmplY3QoVlB0clN0ZWFsaW5nSGFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaAppbmRleCBiMTE5M2ZkYmRlZmVmYWUyMWZmNWY0
Y2M0MzFkMzQyNDljZTZhOGFjLi4yOWE0Y2FlOTE0N2E1NzczMmI4YmZhODExODI3ODQ5MTM5M2Jl
MWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Nj
b3BlT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNT
Y29wZU9iamVjdC5oCkBAIC0zNCw5ICszNCw5IEBAIG5hbWVzcGFjZSBKU0N7CiAgICAgcHVibGlj
OgogICAgICAgICB0eXBlZGVmIEpTVmFyaWFibGVPYmplY3QgQmFzZTsKIAotICAgICAgICBzdGF0
aWMgSlNTdGF0aWNTY29wZU9iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgaWRlbnQsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCisgICAg
ICAgIHN0YXRpYyBKU1N0YXRpY1Njb3BlT2JqZWN0KiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRy
aWJ1dGVzKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8
SlNTdGF0aWNTY29wZU9iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIEpTU3RhdGljU2NvcGVPYmplY3Qo
ZXhlYywgaWRlbnQsIHZhbHVlLCBhdHRyaWJ1dGVzKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcg
KGFsbG9jYXRlQ2VsbDxKU1N0YXRpY1Njb3BlT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgSlNTdGF0
aWNTY29wZU9iamVjdChleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSwgYXR0cmlidXRlcyk7CiAgICAg
ICAgIH0KIAogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYp
OwpAQCAtNTAsMTQgKzUwLDE5IEBAIG5hbWVzcGFjZSBKU0N7CiAgICAgICAgIHN0YXRpYyBTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUg
cHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7IH0KIAogICAgIHByb3RlY3RlZDoKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEpTVmFsdWUgdmFs
dWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCisgICAgICAgIHsKKyAgICAgICAgICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CisgICAgICAgICAgICBtX3JlZ2lzdGVy
U3RvcmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgdmFsdWUpOworICAgICAgICAgICAg
c3ltYm9sVGFibGUoKS5hZGQoaWRlbnRpZmllci5pbXBsKCksIFN5bWJvbFRhYmxlRW50cnkoLTEs
IGF0dHJpYnV0ZXMpKTsKKyAgICAgICAgfQogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBJc0Vudmlyb25tZW50UmVjb3JkIHwgT3ZlcnJpZGVzR2V0T3duUHJv
cGVydHlTbG90IHwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5
TmFtZXMgfCBKU1ZhcmlhYmxlT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHByaXZhdGU6
Ci0gICAgICAgIEpTU3RhdGljU2NvcGVPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBpZGVudCwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcykKKyAgICAg
ICAgSlNTdGF0aWNTY29wZU9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IGlkZW50aWZpZXIsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCiAgICAgICAg
ICAgICA6IEpTVmFyaWFibGVPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5nbG9iYWxE
YXRhKCkuc3RhdGljU2NvcGVTdHJ1Y3R1cmUuZ2V0KCksICZtX3N5bWJvbFRhYmxlLCByZWludGVy
cHJldF9jYXN0PFJlZ2lzdGVyKj4oJm1fcmVnaXN0ZXJTdG9yZSArIDEpKQogICAgICAgICB7Ci0g
ICAgICAgICAgICBtX3JlZ2lzdGVyU3RvcmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywg
dmFsdWUpOwotICAgICAgICAgICAgc3ltYm9sVGFibGUoKS5hZGQoaWRlbnQuaW1wbCgpLCBTeW1i
b2xUYWJsZUVudHJ5KC0xLCBhdHRyaWJ1dGVzKSk7CisgICAgICAgICAgICBmaW5pc2hDcmVhdGlv
bihleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSwgYXR0cmlidXRlcyk7CiAgICAgICAgIH0KICAgICAg
ICAgCiAgICAgICAgIFN5bWJvbFRhYmxlIG1fc3ltYm9sVGFibGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmgKaW5kZXggZjcxZWQzMDk5NDli
MzEyMzRhZGFmYzg4ZThhNjRhNTg2OTUyOTIwMC4uM2YxMTg0YjlkZDg4NDY2MzMwNDExODlhZmM1
YjdjZTEwMTFkOGJmNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNWYXJpYWJsZU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
VmFyaWFibGVPYmplY3QuaApAQCAtNzQsNyArNzQsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgICAgICwgbV9zeW1ib2xUYWJsZShzeW1ib2xUYWJsZSkKICAgICAgICAgICAgICwgbV9yZWdp
c3RlcnMocmVpbnRlcnByZXRfY2FzdDxXcml0ZUJhcnJpZXI8VW5rbm93bj4qPihyZWdpc3RlcnMp
KQogICAgICAgICB7Ci0gICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAg
ICAgICAgfQogCiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFw
cGVyT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmpl
Y3QuaAppbmRleCAzYjQzODMxMjQzOGRiYzczZTA4NjA3YWUzYjZmMGZmNDllMWFlZGJhLi4zZTU4
OWYyNzE0M2UyNGQ3MDlkYjE2MGVmOGVhMTViN2U2MDY2ZThjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaApAQCAtNTMsNyArNTMsNiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICBpbmxpbmUgSlNXcmFwcGVyT2JqZWN0OjpKU1dyYXBwZXJPYmpl
Y3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICAg
ICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKICAgICB7Ci0gICAg
ICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIH0KIAogICAgIGlubGluZSBKU1Zh
bHVlIEpTV3JhcHBlck9iamVjdDo6aW50ZXJuYWxWYWx1ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCmluZGV4IGU0YzRiNWJlYzhkZDFmOWI4
NGU0ZWY3YjE2YTkyZjU5MGI1NzcyMTkuLjVlYzU2YTM2ZTczNzU1OWEzMGRmYjEyMDhhMGMxM2Nl
YmE5ODdiNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3Qu
Y3BwCkBAIC04Nyw2ICs4NywxMiBAQCBjb25zdCBDbGFzc0luZm8gTWF0aE9iamVjdDo6c19pbmZv
ID0geyAiTWF0aCIsICZKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OnNfaW5mbwogTWF0aE9iamVj
dDo6TWF0aE9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0
KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMsIGds
b2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgTWF0aE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0
YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwog
ICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAKICAgICBwdXREaXJlY3RXaXRob3V0VHJh
bnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIElkZW50aWZpZXIoZXhlYywgIkUiKSwganNOdW1i
ZXIoZXhwKDEuMCkpLCBEb250RGVsZXRlIHwgRG9udEVudW0gfCBSZWFkT25seSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKaW5kZXggOWNmYThkMDI3ZGUzY2Y4
NmQyZDMyNjA3MDdmZTk3YWRlMjZhNTFmNC4uN2ZiZWQ5MGJmYmQyY2IxMTVhZDg1MjRmZTQzZWQ3
YTRmNjBhZTI4YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0
aE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3Qu
aApAQCAtNDcsNiArNDcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAgcHJv
dGVjdGVkOgorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFs
T2JqZWN0Kik7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsK
ICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1i
ZXJPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0
LmNwcAppbmRleCAxMzk0NWM3NTBlMjViNTY1NWUxNWFmYjZmNzA2YTE2ZDE3NDQ0NWMwLi4yMjY3
NmQwZmZhOGNjNzQ2YWQxNmQ2ZTQyOGYzYmM4Y2Q3MGQ3NjJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5jcHAKQEAgLTM0LDYgKzM0LDEyIEBAIGNv
bnN0IENsYXNzSW5mbyBOdW1iZXJPYmplY3Q6OnNfaW5mbyA9IHsgIk51bWJlciIsICZKU1dyYXBw
ZXJPYmplY3Q6OnNfaW5mbywgMCwKIE51bWJlck9iamVjdDo6TnVtYmVyT2JqZWN0KEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU1dyYXBwZXJP
YmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2Jh
bERhdGEpOworfQorCit2b2lkIE51bWJlck9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEp
OwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmgKaW5kZXggN2FjODFkNjM4YTUxMWVmODY1YzIw
Zjg1MzEzMGI5MGI2MWNhYWUwYi4uOTAxZjVlYjRiMGYzYjU0MTdmZGM5OWQyMjVlZWEyZjcxMzQ1
MjFmYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2Jq
ZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmgK
QEAgLTI4LDYgKzI4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgTnVtYmVyT2JqZWN0
IDogcHVibGljIEpTV3JhcHBlck9iamVjdCB7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBOdW1i
ZXJPYmplY3QoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKik7CisgICAgICAgIHZvaWQgZmluaXNo
Q3JlYXRpb24oSlNHbG9iYWxEYXRhJik7CiAKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYg
SlNXcmFwcGVyT2JqZWN0IEJhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0UHJvdG90eXBlLmNwcAppbmRleCAwODdjZDI2MGNmNTVkM2YxNWIzMzY1MjUzNmE1
NmJiNzc0MDE3OTlkLi41MDg5YTVmZmRiZjc3M2QwZmY3ZTg2OTkyMTM1ZDU1NWFhMjk1NzY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5j
cHAKQEAgLTYzLDExICs2MywxMCBAQCBjb25zdCBDbGFzc0luZm8gT2JqZWN0UHJvdG90eXBlOjpz
X2luZm8gPSB7ICJPYmplY3QiLCAmSlNOb25GaW5hbE9iamVjdDo6c19pbmZvLAogCiBBU1NFUlRf
Q0xBU1NfRklUU19JTl9DRUxMKE9iamVjdFByb3RvdHlwZSk7CiAKLU9iamVjdFByb3RvdHlwZTo6
T2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlKiBzdHVjdHVyZSkKK09iamVjdFByb3RvdHlwZTo6T2JqZWN0UHJvdG90
eXBlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHVjdHVyZSkKICAgICA6IEpTTm9uRmlu
YWxPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHVjdHVyZSkKICAgICAsIG1faGFzTm9Qcm9w
ZXJ0aWVzV2l0aFVJbnQzMk5hbWVzKHRydWUpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+
Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogfQogCiB2b2lkIE9iamVjdFByb3RvdHlwZTo6
ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T2JqZWN0UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQ
cm90b3R5cGUuaAppbmRleCAwYTJjOGZkNDhlZTdkNDlkZWFiZjkxYmVlMDU4NjBiMmZlOTNkYTMx
Li41ODRhYzMwZGZjYTI0NzYwODcwMGRjMDZlN2ZhYWRkNDExZGZmODA1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaApAQCAtMzEsNyArMzEs
OSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgT2JqZWN0UHJvdG90eXBlKiBj
cmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxs
b2NhdGVDZWxsPE9iamVjdFByb3RvdHlwZT4oKmV4ZWMtPmhlYXAoKSkpIE9iamVjdFByb3RvdHlw
ZShleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7CisgICAgICAgICAgICBPYmplY3RQcm90
b3R5cGUqIHByb3RvdHlwZSA9IG5ldyAoYWxsb2NhdGVDZWxsPE9iamVjdFByb3RvdHlwZT4oKmV4
ZWMtPmhlYXAoKSkpIE9iamVjdFByb3RvdHlwZShleGVjLCBzdHJ1Y3R1cmUpOworICAgICAgICAg
ICAgcHJvdG90eXBlLT5maW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIGdsb2JhbE9i
amVjdCk7CisgICAgICAgICAgICByZXR1cm4gcHJvdG90eXBlOwogICAgICAgICB9CiAKICAgICAg
ICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CkBAIC00OCw3ICs1MCw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIEpT
R2xvYmFsT2JqZWN0Kik7CiAKICAgICBwcml2YXRlOgotICAgICAgICBPYmplY3RQcm90b3R5cGUo
RXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKKyAgICAgICAgT2JqZWN0
UHJvdG90eXBlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSopOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
cHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cENvbnN0cnVjdG9yLmNwcAppbmRleCA0Nzc5YjI1NmUwNGY1ZGMzYzI1YTZiNmMxNDk0MGMz
NjM2ODRlNGQzLi5jOGExMzNiNDI1Njg3MzE1ZmY2ZTgyMWMwYmEyN2E1N2ExNWEzM2VhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3Iu
Y3BwCkBAIC0xMDksOCArMTA5LDE0IEBAIFJlZ0V4cENvbnN0cnVjdG9yOjpSZWdFeHBDb25zdHJ1
Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiB9CiAKIFJl
Z0V4cE1hdGNoZXNBcnJheTo6UmVnRXhwTWF0Y2hlc0FycmF5KEV4ZWNTdGF0ZSogZXhlYywgUmVn
RXhwQ29uc3RydWN0b3JQcml2YXRlKiBkYXRhKQotICAgIDogSlNBcnJheShleGVjLT5nbG9iYWxE
YXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cmVnRXhwTWF0Y2hlc0FycmF5U3Ry
dWN0dXJlKCksIGRhdGEtPmxhc3ROdW1TdWJQYXR0ZXJucyArIDEsIENyZWF0ZUluaXRpYWxpemVk
KQorICAgIDogSlNBcnJheShleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKS0+cmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0dXJlKCkpCiB7CisgICAgZmluaXNoQ3Jl
YXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBkYXRhKTsKK30KKwordm9pZCBSZWdFeHBNYXRjaGVz
QXJyYXk6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUmVnRXhwQ29u
c3RydWN0b3JQcml2YXRlKiBkYXRhKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2Jh
bERhdGEsIGRhdGEtPmxhc3ROdW1TdWJQYXR0ZXJucyArIDEsIENyZWF0ZUluaXRpYWxpemVkKTsK
ICAgICBSZWdFeHBDb25zdHJ1Y3RvclByaXZhdGUqIGQgPSBuZXcgUmVnRXhwQ29uc3RydWN0b3JQ
cml2YXRlOwogICAgIGQtPmlucHV0ID0gZGF0YS0+bGFzdElucHV0OwogICAgIGQtPmxhc3RJbnB1
dCA9IGRhdGEtPmxhc3RJbnB1dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKaW5kZXggZWQyMWJjODllNWUyN2QzNjFlNjUzMzllNGQ0
M2Q2YTE2ZWFhNGRmMi4uODdkNTljNzE0ZWI1NGRmMjgxNzNkZmVkZWJkZWQ1NDZmNjUxYzNhYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0Fy
cmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0Fy
cmF5LmgKQEAgLTM3LDYgKzM3LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KICAgICAg
ICAgdmlydHVhbCB+UmVnRXhwTWF0Y2hlc0FycmF5KCk7CiAKKyAgICBwcm90ZWN0ZWQ6CisgICAg
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiwgUmVnRXhwQ29uc3RydWN0b3JQ
cml2YXRlKiBkYXRhKTsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKaW5kZXggMmMxMjY1NTkyZTg2ODUzNDQ5
MjhlYzRkZTExZGZmMTkwMDQxNDI5Ny4uODQxZDkzOTQxMTdhYjA5MTE3MzhkMGM0ODVlM2ZlNTBi
NWExZGQxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmpl
Y3QuY3BwCkBAIC02Niw2ICs2NiwxMiBAQCBSZWdFeHBPYmplY3Q6OlJlZ0V4cE9iamVjdChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUgogICAgIDog
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogICAgICwg
ZChhZG9wdFB0cihuZXcgUmVnRXhwT2JqZWN0RGF0YShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEo
KSwgdGhpcywgcmVnRXhwKSkpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0KTsK
K30KKwordm9pZCBSZWdFeHBPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5n
bG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8p
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
T2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaApp
bmRleCA3M2YyMTU0OTI2NzAwNzliNTkzOTJhMjhlNWM2MTNmM2NkZjBiZTEzLi5iY2U0NTVhZjgx
MmY5MWJhYmIyMjYwNzBhZDIwZTllMDQ2ZjI0MTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBPYmplY3QuaApAQCAtNzQsNiArNzQsNyBAQCBuYW1lc3BhY2UgSlND
IHsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgUmVnRXhwT2JqZWN0KEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlKiwgUmVnRXhwKik7CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNH
bG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dCB8IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZh
bEFjdGl2YXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZh
bEFjdGl2YXRpb24uY3BwCmluZGV4IDk2ZDk0ZDg0ZWFiYjUyNjA1OTY5N2ZlMzM2ZGFhYjc4MjEz
NTRiNTQuLmU2NjZkZWUxNTc5MmI3ZmJlODk3ZTYwZDJjNTAzZDYyM2I3NmZkODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlv
bi5jcHAKQEAgLTMxLDcgKzMxLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiBTdHJpY3RFdmFsQWN0aXZh
dGlvbjo6U3RyaWN0RXZhbEFjdGl2YXRpb24oRXhlY1N0YXRlKiBleGVjKQogICAgIDogSlNOb25G
aW5hbE9iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmdsb2JhbERhdGEoKS5zdHJpY3RF
dmFsQWN0aXZhdGlvblN0cnVjdHVyZS5nZXQoKSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihleGVj
LT5nbG9iYWxEYXRhKCkpOwogfQogCiBib29sIFN0cmljdEV2YWxBY3RpdmF0aW9uOjpkZWxldGVQ
cm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5oCmluZGV4IDc2OTgx
ZmRiNDI4OTEzYzY3MDY0MWY4MGI3YmRiMTFiNWYxYWY4MTQuLjhhYTIyMzRjODdjNTE1OWJlNTlk
NjIwYzJhZDgxYTQwZTM5NjhmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uaApAQCAtMzYsNyArMzYsOSBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgU3RyaWN0RXZhbEFjdGl2YXRpb24qIGNyZWF0ZShFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8U3RyaWN0RXZhbEFj
dGl2YXRpb24+KCpleGVjLT5oZWFwKCkpKSBTdHJpY3RFdmFsQWN0aXZhdGlvbihleGVjKTsKKyAg
ICAgICAgU3RyaWN0RXZhbEFjdGl2YXRpb24qIGFjdGl2YXRpb24gPSBuZXcgKGFsbG9jYXRlQ2Vs
bDxTdHJpY3RFdmFsQWN0aXZhdGlvbj4oKmV4ZWMtPmhlYXAoKSkpIFN0cmljdEV2YWxBY3RpdmF0
aW9uKGV4ZWMpOworICAgICAgICBhY3RpdmF0aW9uLT5maW5pc2hDcmVhdGlvbihleGVjLT5nbG9i
YWxEYXRhKCkpOworICAgICAgICByZXR1cm4gYWN0aXZhdGlvbjsKICAgICB9CiAKICAgICB2aXJ0
dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKaW5kZXgg
MWQwYzdhYmY5OGQwODdjMGI1MTdiNTIwMjQ2ZTJhOGVmZWIzMDc2Ni4uYjhmYWQ5ZTQ5NzM3N2Fj
YTc0NTcwMTNjZGEzNzAzYjhmMjcwNTkzMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdPYmplY3QuY3BwCkBAIC0zMiw2ICszMiwxMiBAQCBjb25zdCBDbGFzc0lu
Zm8gU3RyaW5nT2JqZWN0OjpzX2luZm8gPSB7ICJTdHJpbmciLCAmSlNXcmFwcGVyT2JqZWN0Ojpz
X2luZm8sIDAsCiBTdHJpbmdPYmplY3Q6OlN0cmluZ09iamVjdChKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1N0cmluZyogc3RyaW5nKQogICAgIDogSlNX
cmFwcGVyT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlv
bihnbG9iYWxEYXRhLCBzdHJpbmcpOworfQorCit2b2lkIFN0cmluZ09iamVjdDo6ZmluaXNoQ3Jl
YXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1N0cmluZyogc3RyaW5nKQoreworICAg
IEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIEFTU0VSVChpbmhlcml0cygm
c19pbmZvKSk7CiAgICAgc2V0SW50ZXJuYWxWYWx1ZShnbG9iYWxEYXRhLCBzdHJpbmcpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAppbmRleCA3ZDEz
NWMxZTQxMjJmYWU3ZmFmZjE4ZGIyZTFiYTM3ZDc1Y2Q0NTVmLi4wYjBjMjAwNjQ4YmViZjhhZTY0
YjVjNzc5ZDFhNzU2M2MxOTY1YmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdPYmplY3QuaApAQCAtNjAsNiArNjAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgfQogCiAgICAgcHJvdGVjdGVkOgorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xv
YmFsRGF0YSYsIEpTU3RyaW5nKik7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFBy
b3BlcnR5TmFtZXMgfCBKU1dyYXBwZXJPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogICAgICAgICBT
dHJpbmdPYmplY3QoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiwgSlNTdHJpbmcqKTsKICAgICB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKaW5kZXggMTBhNjg2ZGNjNjk4MTBmNmM0ZjVmN2RhMTc3
ZTVhZjAwZTRhYmQ3YS4uNzY5ZTQ0MDg5Y2JmMDhiN2IxMDY1YTA5MTk3ZmNlYWRjODVlN2FmZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDgtMzAgIE1h
cmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBVbnppcCBp
bml0aWFsaXphdGlvbiBsaXN0cyBhbmQgY29uc3RydWN0b3JzIGluIEpTQ2VsbCBoaWVyYXJjaHkg
KDQvNykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3
MTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29t
cGxldGVkIHRoZSBmb3VydGggbGV2ZWwgb2YgdGhlIHJlZmFjdG9yaW5nIHRvIGFkZCBmaW5pc2hD
cmVhdGlvbigpIAorICAgICAgICBtZXRob2RzIHRvIGFsbCBjbGFzc2VzIHdpdGhpbiB0aGUgSlND
ZWxsIGhpZXJhcmNoeSB3aXRoIG5vbi10cml2aWFsIAorICAgICAgICBjb25zdHJ1Y3RvciBib2Rp
ZXMuCisKKyAgICAgICAgVGhpcyBwcmltYXJpbHkgY29uc2lzdHMgb2YgcHVzaGluZyB0aGUgY2Fs
bHMgdG8gZmluaXNoQ3JlYXRpb24oKSBkb3duIAorICAgICAgICBpbnRvIHRoZSBjb25zdHJ1Y3Rv
cnMgb2YgdGhlIHN1YmNsYXNzZXMgb2YgdGhlIHNlY29uZCBsZXZlbCBvZiB0aGUgaGllcmFyY2h5
IAorICAgICAgICBhcyB3ZWxsIGFzIHB1bGxpbmcgdGhlIGZpbmlzaENyZWF0aW9uKCkgY2FsbHMg
b3V0IGludG8gdGhlIGNsYXNzJ3MgY29ycmVzcG9uZGluZworICAgICAgICBjcmVhdGUoKSBtZXRo
b2QgaWYgaXQgaGFzIG9uZS4gIERvaW5nIGJvdGggc2ltdWx0YW5lb3VzbHkgYWxsb3dzIHVzIHRv
IAorICAgICAgICBtYWludGFpbiB0aGUgaW52YXJpYW50IHRoYXQgdGhlIGZpbmlzaENyZWF0aW9u
KCkgbWV0aG9kIGNoYWluIGlzIGNhbGxlZCBleGFjdGx5IAorICAgICAgICBvbmNlIGR1cmluZyB0
aGUgY3JlYXRpb24gb2YgYW4gb2JqZWN0LCBzaW5jZSBjYWxsaW5nIGl0IGFueSBvdGhlciBudW1i
ZXIgb2YgCisgICAgICAgIHRpbWVzICgwLCAyLCBvciBtb3JlKSB3aWxsIGNhdXNlIGFuIGFzc2Vy
dGlvbiBmYWlsdXJlLgorCisgICAgICAgICogVXNlck9iamVjdEltcC5jcHA6CisgICAgICAgIChV
c2VyT2JqZWN0SW1wOjpVc2VyT2JqZWN0SW1wKToKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1wLmg6
CisgICAgICAgIChVc2VyT2JqZWN0SW1wOjpjcmVhdGUpOgorCiAyMDExLTA4LTI5ICBNYXJrIEhh
aG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgVW56aXAgaW5pdGlh
bGl6YXRpb24gbGlzdHMgYW5kIGNvbnN0cnVjdG9ycyBpbiBKU0NlbGwgaGllcmFyY2h5ICgzLzcp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKaW5kZXggMGQ0ZDQ1YWY3MmY4
YzI3NGQyMDMwZmJlM2I4NmJhZWM5ZTRmZDIxNi4uYWQzNjkzYjNhZDEzMDVlMGE5YzI0NmViNmM5
OTgxMzM2MWUwZjRiZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmpl
Y3RJbXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcApA
QCAtMzgsNyArMzgsNiBAQCBVc2VyT2JqZWN0SW1wOjpVc2VyT2JqZWN0SW1wKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTVQogICAgIDogSlNOb25GaW5h
bE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiAgICAgLCBmSlNVc2VyT2JqZWN0KChKU1Vz
ZXJPYmplY3QqKXVzZXJPYmplY3QtPlJldGFpbigpKQogewotICAgIGZpbmlzaENyZWF0aW9uKGds
b2JhbERhdGEpOwogfQogCiBVc2VyT2JqZWN0SW1wOjp+VXNlck9iamVjdEltcCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oIGIvU291cmNlL0phdmFT
Y3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaAppbmRleCA4ZWU4ZTJhNzA0N2Y4NjlhMjk3MjY1Y2Mx
YzI2YzNmMzZmOTA4YTgwLi4xNTk2MDcwMGNmYWM1YWEwNDQzYTg5YmE4NjM4NGNiN2QxNjc3ZTE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKQEAgLTQwLDcgKzQwLDkgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIFVzZXJPYmplY3RJbXAqIGNyZWF0ZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1VzZXJPYmplY3QqIHVzZXJPYmpl
Y3QpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8VXNlck9iamVjdElt
cD4oZ2xvYmFsRGF0YS5oZWFwKSkgVXNlck9iamVjdEltcChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUs
IHVzZXJPYmplY3QpOworICAgICAgICBVc2VyT2JqZWN0SW1wKiBvYmplY3QgPSBuZXcgKGFsbG9j
YXRlQ2VsbDxVc2VyT2JqZWN0SW1wPihnbG9iYWxEYXRhLmhlYXApKSBVc2VyT2JqZWN0SW1wKGds
b2JhbERhdGEsIHN0cnVjdHVyZSwgdXNlck9iamVjdCk7CisgICAgICAgIG9iamVjdC0+ZmluaXNo
Q3JlYXRpb24oZ2xvYmFsRGF0YSk7CisgICAgICAgIHJldHVybiBvYmplY3Q7CiAgICAgfQogICAg
IAogICAgIHZpcnR1YWwgflVzZXJPYmplY3RJbXAoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKaW5kZXggMDBmYWMwYTdlZTEwZDE3Mzc2N2Rk
M2VjODVmNjhlOTc5NjA4MjVmNy4uNWQwZDQzNmNjOTY4NzNhZDlmYTAzOTVmMzU1Y2VhZWUzMjE1
Mzg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dT
aGVsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVs
bC5jcHAKQEAgLTQzLDExICs0MywxMCBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTRE9N
V2luZG93U2hlbGwpOwogCiBjb25zdCBDbGFzc0luZm8gSlNET01XaW5kb3dTaGVsbDo6c19pbmZv
ID0geyAiSlNET01XaW5kb3dTaGVsbCIsICZCYXNlOjpzX2luZm8sIDAsIDAgfTsKIAotSlNET01X
aW5kb3dTaGVsbDo6SlNET01XaW5kb3dTaGVsbChQYXNzUmVmUHRyPERPTVdpbmRvdz4gd2luZG93
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCkKK0pTRE9NV2lu
ZG93U2hlbGw6OkpTRE9NV2luZG93U2hlbGwoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIERPTVdyYXBw
ZXJXb3JsZCogd29ybGQpCiAgICAgOiBCYXNlKCp3b3JsZC0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1
cmUpCiAgICAgLCBtX3dvcmxkKHdvcmxkKQogewotICAgIGZpbmlzaENyZWF0aW9uKCp3b3JsZC0+
Z2xvYmFsRGF0YSgpLCB3aW5kb3cpOwogfQogCiB2b2lkIEpTRE9NV2luZG93U2hlbGw6OmZpbmlz
aENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUGFzc1JlZlB0cjxET01XaW5kb3c+
IHdpbmRvdykKQEAgLTE4MSw2ICsxODAsMTMgQEAgdm9pZCogSlNET01XaW5kb3dTaGVsbDo6b3Bl
cmF0b3IgbmV3KHNpemVfdCBzaXplKQogICAgIHJldHVybiBoZWFwLmFsbG9jYXRlKHNpemUpOwog
fQogCitKU0RPTVdpbmRvd1NoZWxsKiBKU0RPTVdpbmRvd1NoZWxsOjpjcmVhdGUoUGFzc1JlZlB0
cjxET01XaW5kb3c+IHdpbmRvdywgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRE9NV3JhcHBl
cldvcmxkKiB3b3JsZCkKK3sKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IG5ldyBKU0RP
TVdpbmRvd1NoZWxsKHN0cnVjdHVyZSwgd29ybGQpOworICAgIHNoZWxsLT5maW5pc2hDcmVhdGlv
bigqd29ybGQtPmdsb2JhbERhdGEoKSwgd2luZG93KTsKKyAgICByZXR1cm4gc2hlbGw7IAorfQor
CiAvLyAtLS0tCiAvLyBDb252ZXJzaW9uIG1ldGhvZHMKIC8vIC0tLS0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAppbmRleCA1NDU5NjYxMmM3ZGE1MTIy
YTM3NzU2NWVhNGEwYmUxN2U3MzAxMzA0Li4zMDI4MzRmZmM2Nzk1NDM0ZGJlNDdmNDNlZTkyZTY2
YTY2N2I0Y2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd1NoZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dT
aGVsbC5oCkBAIC01NSw3ICs1NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBE
T01XaW5kb3cqIGltcGwoKSBjb25zdDsKIAotICAgICAgICB2b2lkKiBvcGVyYXRvciBuZXcoc2l6
ZV90KTsKKyAgICAgICAgc3RhdGljIEpTRE9NV2luZG93U2hlbGwqIGNyZWF0ZShQYXNzUmVmUHRy
PERPTVdpbmRvdz4sIEpTQzo6U3RydWN0dXJlKiwgRE9NV3JhcHBlcldvcmxkKik7CiAKICAgICAg
ICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpIAogICAgICAgICB7CkBAIC02
NSw5ICs2NSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIERPTVdyYXBwZXJXb3Js
ZCogd29ybGQoKSB7IHJldHVybiBtX3dvcmxkLmdldCgpOyB9CiAKICAgICBwcm90ZWN0ZWQ6Cisg
ICAgICAgIEpTRE9NV2luZG93U2hlbGwoSlNDOjpTdHJ1Y3R1cmUqLCBET01XcmFwcGVyV29ybGQq
KTsKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OkpTR2xvYmFsRGF0YSYsIFBhc3NS
ZWZQdHI8RE9NV2luZG93Pik7CiAKICAgICBwcml2YXRlOgorICAgICAgICB2b2lkKiBvcGVyYXRv
ciBuZXcoc2l6ZV90KTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc1Zp
c2l0Q2hpbGRyZW4gfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1
Y3R1cmVGbGFnczsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihKU0M6OlNs
b3RWaXNpdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdyYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCmlu
ZGV4IDlhNGFjYTVjNTFiOGNmZWI3NTMwYjJhNmUwZTc5ODQ1MWZkODU4ZTYuLjFiODIxOTcwM2Nm
OTM5MjBkMGI4NzdjNzZkNzc2NWU3YWJmMTBiNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV3JhcHBlci5oCkBAIC01OSw2ICs1OSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAg
Ly8gbmV3IEphdmFTY3JpcHQgb2JqZWN0cyBvbiBkZXRhY2hlZCB3aW5kb3dzIGR1ZSB0byBET01X
aW5kb3c6OmRvY3VtZW50KCkKICAgICAgICAgLy8gbmVlZGluZyB0byByZWFjaCB0aHJvdWdoIHRo
ZSBmcmFtZSB0byBnZXQgdG8gdGhlIERvY3VtZW50Ki4gIFNlZSBidWcgMjc2NDAuCiAgICAgICAg
IC8vIEFTU0VSVChnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAg
ICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmpl
Y3QpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHAKaW5kZXggODcwMjlkMWRiMDEyMzE0MjNiMWU4OGM1YWM1Zjk1MTQwY2Q5
NjE2YS4uZDI1YzcyMmE0OTVjMzVkMWRkYTFmYmE2NTY1MWJlNDc0MmYwMmU0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTEwOCw3
ICsxMDgsNyBAQCBKU0RPTVdpbmRvd1NoZWxsKiBTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVXaW5k
b3dTaGVsbChET01XcmFwcGVyV29ybGQqIHdvcmxkKQogewogICAgIEFTU0VSVCghbV93aW5kb3dT
aGVsbHMuY29udGFpbnMod29ybGQpKTsKICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTRE9N
V2luZG93U2hlbGw6OmNyZWF0ZVN0cnVjdHVyZSgqd29ybGQtPmdsb2JhbERhdGEoKSwganNOdWxs
KCkpOwotICAgIFN0cm9uZzxKU0RPTVdpbmRvd1NoZWxsPiB3aW5kb3dTaGVsbCgqd29ybGQtPmds
b2JhbERhdGEoKSwgbmV3IEpTRE9NV2luZG93U2hlbGwobV9mcmFtZS0+ZG9tV2luZG93KCksIHN0
cnVjdHVyZSwgd29ybGQpKTsKKyAgICBTdHJvbmc8SlNET01XaW5kb3dTaGVsbD4gd2luZG93U2hl
bGwoKndvcmxkLT5nbG9iYWxEYXRhKCksIEpTRE9NV2luZG93U2hlbGw6OmNyZWF0ZShtX2ZyYW1l
LT5kb21XaW5kb3coKSwgc3RydWN0dXJlLCB3b3JsZCkpOwogICAgIFN0cm9uZzxKU0RPTVdpbmRv
d1NoZWxsPiB3aW5kb3dTaGVsbDIod2luZG93U2hlbGwpOwogICAgIG1fd2luZG93U2hlbGxzLmFk
ZCh3b3JsZCwgd2luZG93U2hlbGwpOwogICAgIHdvcmxkLT5kaWRDcmVhdGVXaW5kb3dTaGVsbCh0
aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KaW5kZXggMGMwMWZjN2YyMjAxNmU0MDJjZjU5OWJjMmRiZjEyNjExY2MzNWQ0Yi4u
ZWYzOTBjNWE2Mzk5MjUxZGViN2RkMWEzOTNhMmU2ZWNmYmE4YWYxMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTEwNTcs
NyArMTA1Nyw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgdmlydHVhbCB2b2lkIGRlZmluZUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0KiBnZXR0ZXJGdW5jdGlv
biwgdW5zaWduZWQgYXR0cmlidXRlcyk7XG4iKSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJDdXN0b21Qcm90b3R5cGVEZWZpbmVHZXR0ZXIifTsKIAogICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICJcbnByaXZhdGU6XG4iKTsKLSAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
ICR7Y2xhc3NOYW1lfVByb3RvdHlwZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJl
KSA6IEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgc3RydWN0dXJlKSB7IH1cbiIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJHtj
bGFzc05hbWV9UHJvdG90eXBlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpIDog
SlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKSB7IGZp
bmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCk7IH1cbiIpOwogCiAgICAgIyBz
dHJ1Y3R1cmUgZmxhZ3MKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHJvdGVjdGVkOlxuIik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaCBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCmluZGV4IGQ4MDE5MDEw
Njc1OWUzMTYwZGY1M2U4YjNiMWRmMDc0NjUwYzc2ZWUuLjE3NTNjMGJjN2VlMDk2MTI4M2FjY2Ri
NmY5YzVkN2VhMmZmYzU0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpj
L29iamNfcnVudGltZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVu
dGltZS5oCkBAIC0xMTYsNiArMTE2LDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCitw
cm90ZWN0ZWQ6CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCopOworCiBw
cml2YXRlOgogICAgIE9iamNGYWxsYmFja09iamVjdEltcChKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZSosIE9iamNJbnN0YW5jZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3du
UHJvcGVydHlTbG90IHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCmluZGV4IDc1MGJjN2VlZmRlMWUzOGExMzY3NmNl
YWYwOTIyZGU3MWY4NTk5ZGYuLmRmMGU3MWM3ZmVjYjYyZTE2Zjc1ZGE5MTIwMzFmYTk2YjFhMmE3
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KQEAgLTIw
MSw2ICsyMDEsMTIgQEAgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpPYmpjRmFsbGJhY2tPYmplY3RJ
bXAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWMKICAgICAsIF9pbnN0YW5jZShp
KQogICAgICwgX2l0ZW0ocHJvcGVydHlOYW1lKQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2Jh
bE9iamVjdCk7Cit9CisKK3ZvaWQgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpmaW5pc2hDcmVhdGlv
bihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0
aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogICAgIEFTU0VS
VChpbmhlcml0cygmc19pbmZvKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2Fy
cmF5LmNwcAppbmRleCBiNWY3YTA3OGIyYzAwY2Y4ZGZkYzgwOTBjN2FmODQwMjEyNGQ2NTdiLi5l
MDFhMTVmMzdjYzkxYzQ1OGVkYTE0MWM3NDg2ZDhjMjY5YzZkY2IwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC00MCw2ICs0MCwxMiBAQCBjb25zdCBDbGFzc0lu
Zm8gUnVudGltZUFycmF5OjpzX2luZm8gPSB7ICJSdW50aW1lQXJyYXkiLCAmSlNBcnJheTo6c19p
bmZvLCAwLCAwCiBSdW50aW1lQXJyYXk6OlJ1bnRpbWVBcnJheShFeGVjU3RhdGUqIGV4ZWMsIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBCaW5kaW5nczo6QXJyYXkqIGFycmF5KQogICAgIDogSlNBcnJh
eShleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihl
eGVjLT5nbG9iYWxEYXRhKCksIGFycmF5KTsKK30KKwordm9pZCBSdW50aW1lQXJyYXk6OmZpbmlz
aENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgQmluZGluZ3M6OkFycmF5KiBhcnJh
eSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICBBU1NFUlQo
aW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHNldFN1YmNsYXNzRGF0YShhcnJheSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAppbmRleCBjYjdiYzYzNTc3NmQ4ZWJjOTEwMzk1
MzIwYWVmZGU0MmJjYjkwNmQ3Li44ZDhmNWFlNmJmNjhhNjMzODY1ZDBkMDJiZjY0M2Y5NWU0NGE4
OTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTc0LDYgKzc0LDgg
QEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgorICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
SlNHbG9iYWxEYXRhJiwgQmluZGluZ3M6OkFycmF5Kik7CisKICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVy
cmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNBcnJheTo6U3RydWN0dXJlRmxhZ3M7CiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAppbmRleCBmNGQwYmFk
ZTVlOGJmYWE1OWQzYjkxNzAwMWEzZTQwNmJmNTk1OTc3Li45NjY0MGYwMDhmYWMxYWM0NzE3NjRm
Zjg1ZTNiOGY2NDViOTJiZjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVj
dC5jcHAKQEAgLTQxLDYgKzQxLDEyIEBAIFJ1bnRpbWVPYmplY3Q6OlJ1bnRpbWVPYmplY3QoRXhl
Y1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlCiAgICAgOiBK
U09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiAgICAgLCBt
X2luc3RhbmNlKGluc3RhbmNlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7
Cit9CisKK3ZvaWQgUnVudGltZU9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3Qt
Pmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5m
bykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCmluZGV4IDg2MjJl
MzExZjI2NjA4YzU0NmRlODZlMGNmNGEzZDU1ODUzOTkyYTIuLjk5ZTA2ZTAxYzViYWY3ODA3N2Zi
OWE0YmRkZjkzYTVhNDRkOGMzYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX29iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVj
dC5oCkBAIC03NCw2ICs3NCw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIFJ1bnRpbWVP
YmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBQYXNzUmVmUHRy
PEluc3RhbmNlPik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCopOwog
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93
blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU09iamVjdFdpdGhH
bG9iYWxPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3Bw
CmluZGV4IDMzZWRiZTkyMmQ2Yjg1ZDY4OTcwODU1Yzk3MTVkZGE4MzEwOWI2YzQuLjIyOTEwZjVj
YTQ3Njc2NjVhYTM4ZmM4ZWM0ZGNkY2U5NWZhZmRhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKQEAg
LTU1LDYgKzU1LDEyIEBAIEpTTlBPYmplY3Q6OkpTTlBPYmplY3QoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgTlBSdW50aW1lT2JqZWN0TWFwKiBvYmplY3RNCiAgICAgLCBtX29iamVjdE1h
cChvYmplY3RNYXApCiAgICAgLCBtX25wT2JqZWN0KG5wT2JqZWN0KQogeworICAgIGZpbmlzaENy
ZWF0aW9uKGdsb2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgSlNOUE9iamVjdDo6ZmluaXNoQ3JlYXRp
b24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVh
dGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKICAgICBBU1NF
UlQoaW5oZXJpdHMoJnNfaW5mbykpOwogCiAgICAgLy8gV2Ugc2hvdWxkIG5ldmVyIGhhdmUgYW4g
TlBKU09iamVjdCBpbnNpZGUgYSBKU05QT2JqZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKaW5kZXggMmVhMTIy
ODJiMWIzYWVmZWYxNjlmMjM3MTU3NzY0YTY0YTU3YWQyMi4uNzU4MjJjM2M1OTY3M2Q4Y2RiN2E0
N2JlYmM4NjFkM2JkOGI2OWJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCkBAIC01Nyw2ICs1Nyw5IEBAIHB1
YmxpYzoKIAogICAgIE5QT2JqZWN0KiBucE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbnBPYmpl
Y3Q7IH0KIAorcHJvdGVjdGVkOgorICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpKU0dsb2Jh
bE9iamVjdCopOworCiBwcml2YXRlOgogICAgIEpTTlBPYmplY3QoSlNDOjpKU0dsb2JhbE9iamVj
dCosIE5QUnVudGltZU9iamVjdE1hcCosIE5QT2JqZWN0KiwgSlNDOjpTdHJ1Y3R1cmUqKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105975</attachid>
            <date>2011-09-01 09:04:10 -0700</date>
            <delta_ts>2011-09-01 10:31:04 -0700</delta_ts>
            <desc>Fixing review issues</desc>
            <filename>bug-67174-20110901090409.patch</filename>
            <type>text/plain</type>
            <size>87005</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQyMjMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcAppbmRleCBmYTlkMjE2ZGQxMTI1MDEyN2Vl
Njg1ZmUxZWM4ZDU5ZmYyNjhjOTllLi45NTA0YWQ4MGQ4NTNmM2M2NTVmODQyOGQ3ZDE2YTY1ZmVj
YjgzMDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuY3BwCkBAIC00Myw2ICs0MywxMiBAQCBKU0NhbGxiYWNrQ29uc3RydWN0b3I6
OkpTQ2FsbGJhY2tDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
YwogICAgICwgbV9jbGFzcyhqc0NsYXNzKQogICAgICwgbV9jYWxsYmFjayhjYWxsYmFjaykKIHsK
KyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QsIGpzQ2xhc3MpOworfQorCit2b2lkIEpT
Q2FsbGJhY2tDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDbGFzc1JlZiBqc0NsYXNzKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChp
bmhlcml0cygmc19pbmZvKSk7CiAgICAgaWYgKG1fY2xhc3MpCiAgICAgICAgIEpTQ2xhc3NSZXRh
aW4oanNDbGFzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuaAppbmRleCA0MGFhYmNmMTkyMTMxZDQxNDdiMDc4Mzg5OTkwOTlmOGExZTUx
ZWRhLi45MTE5MWRiNWY5Njc5OWUyMGNhNDZlOTEwMTRlNWVhNGFjNjY4Y2Q3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmgKQEAgLTUy
LDYgKzUyLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgSlNDYWxsYmFja0NvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgSlNDbGFzc1JlZiwgSlNPYmplY3RDYWxs
QXNDb25zdHJ1Y3RvckNhbGxiYWNrKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
T2JqZWN0KiwgSlNDbGFzc1JlZik7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdz
OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuaAppbmRleCBlZTk5MGEwMmZjZmI5OTRjMWQ0ODFlMjc4NTdlY2MzODA4MDBjNmI1Li45YzJm
MzlmYjA3NGJlNjlkMDU4MzExMDVkYjcxZDA1NzU3MTg5YTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTI0LDE2ICsxMjQsMjEgQEAgcHJv
dGVjdGVkOgogICAgIC8vIGZ1bmN0aW9uYWxpdHkgaGVyZS4KICAgICB2b2lkKiBvcGVyYXRvciBu
ZXcoc2l6ZV90LCB2b2lkKiBwdHIpIHsgcmV0dXJuIHB0cjsgfQogCisgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oKTsKKwogcHVibGljOgogICAgIHR5cGVkZWYgUGFyZW50IEJhc2U7CiAKICAgICBzdGF0
aWMgSlNDYWxsYmFja09iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTQ2xhc3NSZWYgY2xhc3NS
ZWYsIHZvaWQqIGRhdGEpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8
SlNDYWxsYmFja09iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIEpTQ2FsbGJhY2tPYmplY3QoZXhlYywg
Z2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGNsYXNzUmVmLCBkYXRhKTsKKyAgICAgICAgSlNDYWxs
YmFja09iamVjdCogY2FsbGJhY2tPYmplY3QgPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0NhbGxiYWNr
T2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgSlNDYWxsYmFja09iamVjdChleGVjLCBnbG9iYWxPYmpl
Y3QsIHN0cnVjdHVyZSwgY2xhc3NSZWYsIGRhdGEpOworICAgICAgICByZXR1cm4gY2FsbGJhY2tP
YmplY3Q7CiAgICAgfQogICAgIHN0YXRpYyBKU0NhbGxiYWNrT2JqZWN0KiBjcmVhdGUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0NsYXNzUmVmIGNsYXNzUmVmLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0NhbGxiYWNr
T2JqZWN0PihnbG9iYWxEYXRhLmhlYXApKSBKU0NhbGxiYWNrT2JqZWN0KGdsb2JhbERhdGEsIGNs
YXNzUmVmLCBzdHJ1Y3R1cmUpOworICAgICAgICBKU0NhbGxiYWNrT2JqZWN0KiBjYWxsYmFja09i
amVjdCA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTQ2FsbGJhY2tPYmplY3Q+KGdsb2JhbERhdGEuaGVh
cCkpIEpTQ2FsbGJhY2tPYmplY3QoZ2xvYmFsRGF0YSwgY2xhc3NSZWYsIHN0cnVjdHVyZSk7Cisg
ICAgICAgIHJldHVybiBjYWxsYmFja09iamVjdDsKICAgICB9CiAKICAgICB2b2lkIHNldFByaXZh
dGUodm9pZCogZGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlND
YWxsYmFja09iamVjdEZ1bmN0aW9ucy5oCmluZGV4IDY5MTBlNTZmZjhjYTQ5OTRiNjMzNmE4N2Fk
ODZlZDBlMTY4YzdjYTYuLmMzMTIzYmRmNjdlOGQzZjcyMDRhNjcxODcyMmMwMzRmYTFhZmI4MDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1
bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVj
dEZ1bmN0aW9ucy5oCkBAIC01NCw4ICs1NCw3IEBAIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6
SlNDYWxsYmFja09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAg
ICAgOiBQYXJlbnQoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiAgICAgLCBtX2NhbGxiYWNrT2Jq
ZWN0RGF0YShhZG9wdFB0cihuZXcgSlNDYWxsYmFja09iamVjdERhdGEoZGF0YSwganNDbGFzcykp
KQogewotICAgIEFTU0VSVChQYXJlbnQ6OmluaGVyaXRzKCZzX2luZm8pKTsKLSAgICBpbml0KGV4
ZWMpOworICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiB9CiAKIC8vIEds
b2JhbCBvYmplY3QgY29uc3RydWN0b3IuCkBAIC02NSw2ICs2NCwyMSBAQCBKU0NhbGxiYWNrT2Jq
ZWN0PFBhcmVudD46OkpTQ2FsbGJhY2tPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0NsYXNzUmVmCiAgICAgOiBQYXJlbnQoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogICAgICwgbV9j
YWxsYmFja09iamVjdERhdGEoYWRvcHRQdHIobmV3IEpTQ2FsbGJhY2tPYmplY3REYXRhKDAsIGpz
Q2xhc3MpKSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbigpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3Mg
UGFyZW50Pgordm9pZCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OmZpbmlzaENyZWF0aW9uKEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNl
OjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0
KTsKKyAgICBBU1NFUlQoUGFyZW50Ojppbmhlcml0cygmc19pbmZvKSk7CisgICAgaW5pdChleGVj
KTsKK30KKworLy8gVGhpcyBpcyBqdXN0IGZvciBHbG9iYWwgb2JqZWN0LCBzbyB3ZSBjYW4gYXNz
dW1lIHRoYXQgQmFzZTo6ZmluaXNoQ3JlYXRpb24gaXMgSlNHbG9iYWxPYmplY3Q6OmNvbnN0cnVj
dG9yQm9keS4KK3RlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Cit2b2lkIEpTQ2FsbGJhY2tPYmplY3Q8
UGFyZW50Pjo6ZmluaXNoQ3JlYXRpb24oKQorewogICAgIEFTU0VSVChQYXJlbnQ6OmluaGVyaXRz
KCZzX2luZm8pKTsKICAgICBBU1NFUlQoUGFyZW50Ojppc0dsb2JhbE9iamVjdCgpKTsKICAgICBp
bml0KHN0YXRpY19jYXN0PEpTR2xvYmFsT2JqZWN0Kj4odGhpcyktPmdsb2JhbEV4ZWMoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuSlNWQUxVRTY0
b25seS5leHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuSlNWQUxVRTY0
b25seS5leHAKaW5kZXggZWFhOWY1MTM5ZjIyZTAzYzgwZWQ3Y2Y0NzkyZTQ4ZGFmOTE2YTYxMS4u
MTM5NTk3ZjljYjA3YzVkNDhiZWQxODk4NGVjNDc0N2Y0YjRmMzQzOCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLkpTVkFMVUU2NG9ubHkuZXhwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5KU1ZBTFVFNjRvbmx5LmV4cApA
QCAtMSArMSwyIEBACi1fX1pOM0pTQzEwSlNGdW5jdGlvbkMxRVBOU185RXhlY1N0YXRlRVBOU18x
NEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRWlSS05TXzEwSWRlbnRpZmllckVQRlB2UzJf
RQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5l
eHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCmluZGV4IDlmNGEz
YmRjYTIxM2IzYjViNTJmNThmZjQ2YjFiMzcwYjBkODVkZTcuLjI3NDVhNDcxZDRkMTgyM2Q0MWQ5
MzJkZTA0NjZmOGM3YWU5OGQ5Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5leHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmV4cApAQCAtMTEwLDEzICsxMTAsMTcgQEAgX19aTjNKU0MxMElkZW50aWZpZXI0ZnJvbUVQ
TlNfOUV4ZWNTdGF0ZUVpCiBfX1pOM0pTQzEwSWRlbnRpZmllcjRmcm9tRVBOU185RXhlY1N0YXRl
RWoKIF9fWk4zSlNDMTBJZGVudGlmaWVyNWVxdWFsRVBLTjNXVEYxMFN0cmluZ0ltcGxFUEtjCiBf
X1pOM0pTQzEwSWRlbnRpZmllcjh0b1VJbnQzMkVSS05TXzdVU3RyaW5nRVJiCitfX1pOM0pTQzEw
SlNGdW5jdGlvbjE0ZmluaXNoQ3JlYXRpb25FUE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxP
YmplY3RFUE5TXzE4RnVuY3Rpb25FeGVjdXRhYmxlRVBOU18xNFNjb3BlQ2hhaW5Ob2RlRQorX19a
TjNKU0MxMEpTRnVuY3Rpb24xNGZpbmlzaENyZWF0aW9uRVBOU185RXhlY1N0YXRlRVBOU18xNEpT
R2xvYmFsT2JqZWN0RWlSS05TXzEwSWRlbnRpZmllckVQTlNfMTRFeGVjdXRhYmxlQmFzZUUKIF9f
Wk4zSlNDMTBKU0Z1bmN0aW9uNG5hbWVFUE5TXzlFeGVjU3RhdGVFCitfX1pOM0pTQzEwSlNGdW5j
dGlvbjZjcmVhdGVFUE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RFUE5TXzlTdHJ1
Y3R1cmVFaVJLTlNfMTBJZGVudGlmaWVyRVBGUHZTMl9FCiBfX1pOM0pTQzEwSlNGdW5jdGlvbjZz
X2luZm9FCitfX1pOM0pTQzEwSlNGdW5jdGlvbkMxRVBOU185RXhlY1N0YXRlRVBOU18xNEpTR2xv
YmFsT2JqZWN0RVBOU185U3RydWN0dXJlRQogX19aTjNKU0MxMHRocm93RXJyb3JFUE5TXzlFeGVj
U3RhdGVFTlNfN0pTVmFsdWVFCiBfX1pOM0pTQzEwdGhyb3dFcnJvckVQTlNfOUV4ZWNTdGF0ZUVQ
TlNfOEpTT2JqZWN0RQogX19aTjNKU0MxMUpTQnl0ZUFycmF5MTNzX2RlZmF1bHRJbmZvRQogX19a
TjNKU0MxMUpTQnl0ZUFycmF5MTVjcmVhdGVTdHJ1Y3R1cmVFUk5TXzEySlNHbG9iYWxEYXRhRU5T
XzdKU1ZhbHVlRVBLTlNfOUNsYXNzSW5mb0UKLV9fWk4zSlNDMTFKU0J5dGVBcnJheTZjcmVhdGVF
UE5TXzlFeGVjU3RhdGVFUE5TXzlTdHJ1Y3R1cmVFUE4zV1RGOUJ5dGVBcnJheUUKK19fWk4zSlND
MTFKU0J5dGVBcnJheUMxRVBOU185RXhlY1N0YXRlRVBOU185U3RydWN0dXJlRVBOM1dURjlCeXRl
QXJyYXlFCiBfX1pOM0pTQzExUGFyc2VyQXJlbmE1cmVzZXRFdgogX19aTjNKU0MxMWNoZWNrU3lu
dGF4RVBOU185RXhlY1N0YXRlRVJLTlNfMTBTb3VyY2VDb2RlRQogX19aTjNKU0MxMWNyZWF0ZUVy
cm9yRVBOU185RXhlY1N0YXRlRVJLTlNfN1VTdHJpbmdFCkBAIC0xMzMsNiArMTM3LDcgQEAgX19a
TjNKU0MxMkpTR2xvYmFsRGF0YTE0ZHVtcFNhbXBsZURhdGFFUE5TXzlFeGVjU3RhdGVFCiBfX1pO
M0pTQzEySlNHbG9iYWxEYXRhMTRyZXNldERhdGVDYWNoZUV2CiBfX1pOM0pTQzEySlNHbG9iYWxE
YXRhMTRzaGFyZWRJbnN0YW5jZUV2CiBfX1pOM0pTQzEySlNHbG9iYWxEYXRhMTVkdW1wUmVnRXhw
VHJhY2VFdgorX19aTjNKU0MxMkpTR2xvYmFsRGF0YTE1Z2V0SG9zdEZ1bmN0aW9uRVBGUHZQTlNf
OUV4ZWNTdGF0ZUVFCiBfX1pOM0pTQzEySlNHbG9iYWxEYXRhMjJjbGVhckJ1aWx0aW5TdHJ1Y3R1
cmVzRXYKICNpZm5kZWYgTkRFQlVHCiBfX1pOM0pTQzEySlNHbG9iYWxEYXRhMjNyZWxlYXNlRXhl
Y3V0YWJsZU1lbW9yeUV2CkBAIC0xOTYsNyArMjAxLDcgQEAgX19aTjNKU0MxN0J5dGVjb2RlR2Vu
ZXJhdG9yMjFzZXREdW1wc0dlbmVyYXRlZENvZGVFYgogX19aTjNKU0MxN1Byb3BlcnR5TmFtZUFy
cmF5M2FkZEVQTjNXVEYxMFN0cmluZ0ltcGxFCiBfX1pOM0pTQzE3Y29uc3RydWN0RnVuY3Rpb25F
UE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RFUktOU183QXJnTGlzdEVSS05TXzEw
SWRlbnRpZmllckVSS05TXzdVU3RyaW5nRWkKIF9fWk4zSlNDMTdjcmVhdGVTeW50YXhFcnJvckVQ
TlNfOUV4ZWNTdGF0ZUVSS05TXzdVU3RyaW5nRQotX19aTjNKU0MxOERlYnVnZ2VyQWN0aXZhdGlv
bkMxRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfOEpTT2JqZWN0RQorX19aTjNKU0MxOERlYnVnZ2Vy
QWN0aXZhdGlvbjZjcmVhdGVFUk5TXzEySlNHbG9iYWxEYXRhRVBOU184SlNPYmplY3RFCiBfX1pO
M0pTQzE4UHJvcGVydHlEZXNjcmlwdG9yMTFzZXRXcml0YWJsZUViCiBfX1pOM0pTQzE4UHJvcGVy
dHlEZXNjcmlwdG9yMTJzZXRVbmRlZmluZWRFdgogX19aTjNKU0MxOFByb3BlcnR5RGVzY3JpcHRv
cjEzc2V0RGVzY3JpcHRvckVOU183SlNWYWx1ZUVqCkBAIC0yMTksOCArMjI0LDkgQEAgX19aTjNK
U0MyM0Fic3RyYWN0U2FtcGxpbmdDb3VudGVyNGR1bXBFdgogX19aTjNKU0MyM29iamVjdFByb3Rv
RnVuY1RvU3RyaW5nRVBOU185RXhlY1N0YXRlRQogX19aTjNKU0MyM3NldFVwU3RhdGljRnVuY3Rp
b25TbG90RVBOU185RXhlY1N0YXRlRVBLTlNfOUhhc2hFbnRyeUVQTlNfOEpTT2JqZWN0RVJLTlNf
MTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDMjREeW5hbWljR2xvYmFs
T2JqZWN0U2NvcGVDMUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzE0SlNHbG9iYWxPYmplY3RFCitf
X1pOM0pTQzI0SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0MTRmaW5pc2hDcmVhdGlvbkVSTlNfMTJK
U0dsb2JhbERhdGFFUE5TXzE0SlNHbG9iYWxPYmplY3RFCitfX1pOM0pTQzI0SlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0QzJFUk5TXzEySlNHbG9iYWxEYXRhRVBOU185U3RydWN0dXJlRQogX19aTjNK
U0MyNEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEMyRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185
U3RydWN0dXJlRQotX19aTjNKU0MyNEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEMyRVJOU18xMkpT
R2xvYmFsRGF0YUVQTlNfMTRKU0dsb2JhbE9iamVjdEVQTlNfOVN0cnVjdHVyZUUKIF9fWk4zSlND
MjRjcmVhdGVTdGFja092ZXJmbG93RXJyb3JFUE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pTQzI1ZXZh
bHVhdGVJbkdsb2JhbENhbGxGcmFtZUVSS05TXzdVU3RyaW5nRVJOU183SlNWYWx1ZUVQTlNfMTRK
U0dsb2JhbE9iamVjdEUKIF9fWk4zSlNDMzVjcmVhdGVJbnRlcnJ1cHRlZEV4ZWN1dGlvbkV4Y2Vw
dGlvbkVQTlNfMTJKU0dsb2JhbERhdGFFCkBAIC0yNjksMTIgKzI3NSwxNSBAQCBfX1pOM0pTQzZK
U0xvY2tDMUVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDNlJlZ0V4cEQxRXYKIF9fWk4zSlNDNlJl
Z0V4cDZjcmVhdGVFUk5TXzEySlNHbG9iYWxEYXRhRVJLTlNfN1VTdHJpbmdFTlNfMTFSZWdFeHBG
bGFnc0UKIF9fWk4zSlNDN0pTQXJyYXkxM3Zpc2l0Q2hpbGRyZW5FUk5TXzExU2xvdFZpc2l0b3JF
CitfX1pOM0pTQzdKU0FycmF5MTRmaW5pc2hDcmVhdGlvbkVSTlNfMTJKU0dsb2JhbERhdGFFCitf
X1pOM0pTQzdKU0FycmF5MTRmaW5pc2hDcmVhdGlvbkVSTlNfMTJKU0dsb2JhbERhdGFFUktOU183
QXJnTGlzdEUKIF9fWk4zSlNDN0pTQXJyYXkxNXNldFN1YmNsYXNzRGF0YUVQdgogX19aTjNKU0M3
SlNBcnJheTE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0
eVNsb3RFCitfX1pOM0pTQzdKU0FycmF5NmNyZWF0ZUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlT
dHJ1Y3R1cmVFUktOU183QXJnTGlzdEUKK19fWk4zSlNDN0pTQXJyYXk2Y3JlYXRlRVJOU18xMkpT
R2xvYmFsRGF0YUVQTlNfOVN0cnVjdHVyZUUKIF9fWk4zSlNDN0pTQXJyYXk2c19pbmZvRQogX19a
TjNKU0M3SlNBcnJheTlzZXRMZW5ndGhFagogX19aTjNKU0M3SlNBcnJheUMxRVJOU18xMkpTR2xv
YmFsRGF0YUVQTlNfOVN0cnVjdHVyZUUKLV9fWk4zSlNDN0pTQXJyYXlDMUVSTlNfMTJKU0dsb2Jh
bERhdGFFUE5TXzlTdHJ1Y3R1cmVFUktOU183QXJnTGlzdEUKIF9fWk4zSlNDN0pTQXJyYXlDMkVS
TlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFCiBfX1pOM0pTQzdKU0FycmF5RDJFdgog
X19aTjNKU0M3SlNWYWx1ZTEzaXNWYWxpZENhbGxlZUV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmRlZiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ov
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCmluZGV4IGQxY2ZmNzg2Mzc3YTBkNDEz
NjJjZDJlZmI3Yjg1ZWMzOTJlMDViYzQuLjllOWVlYTg5OWMyNDJhY2Q2MGQ1YzEwYzVkMDQzOGVj
MTIzZmUxNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZGVmCkBAIC05LDExICs5LDExIEBAIEVYUE9SVFMKICAgICA/PzBEeW5hbWljR2xv
YmFsT2JqZWN0U2NvcGVASlNDQEBRQUVAQUFWSlNHbG9iYWxEYXRhQDFAUEFWSlNHbG9iYWxPYmpl
Y3RAMUBAWiAgCiAgICAgPz8wSW50ZXJuYWxGdW5jdGlvbkBKU0NAQElBRUBQQVZKU0dsb2JhbERh
dGFAMUBQQVZKU0dsb2JhbE9iamVjdEAxQFBBVlN0cnVjdHVyZUAxQEFCVklkZW50aWZpZXJAMUBA
WgogICAgID8/MEpTQXJyYXlASlNDQEBJQUVAQUFWSlNHbG9iYWxEYXRhQDFAUEFWU3RydWN0dXJl
QDFAQFoKLSAgICA/PzBKU0FycmF5QEpTQ0BASUFFQEFBVkpTR2xvYmFsRGF0YUAxQFBBVlN0cnVj
dHVyZUAxQEFCVkFyZ0xpc3RAMUBAWgotICAgID8/MEpTRnVuY3Rpb25ASlNDQEBBQUVAUEFWRXhl
Y1N0YXRlQDFAUEFWSlNHbG9iYWxPYmplY3RAMUBQQVZTdHJ1Y3R1cmVAMUBIQUJWSWRlbnRpZmll
ckAxQFA2SV9KMEBaQFoKKyAgICA/PzBKU0J5dGVBcnJheUBKU0NAQEFBRUBQQVZFeGVjU3RhdGVA
MUBQQVZTdHJ1Y3R1cmVAMUBQQVZCeXRlQXJyYXlAV1RGQEBAWgorICAgID8/MEpTRnVuY3Rpb25A
SlNDQEBBQUVAUEFWRXhlY1N0YXRlQDFAUEFWSlNHbG9iYWxPYmplY3RAMUBQQVZTdHJ1Y3R1cmVA
MUBAWgogICAgID8/MEpTTG9ja0BKU0NAQFFBRUBQQVZFeGVjU3RhdGVAMUBAWgotICAgID8/MEpT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdEBKU0NAQElBRUBBQVZKU0dsb2JhbERhdGFAMUBQQVZKU0ds
b2JhbE9iamVjdEAxQFBBVlN0cnVjdHVyZUAxQEBaCiAgICAgPz8wSlNPYmplY3RXaXRoR2xvYmFs
T2JqZWN0QEpTQ0BASUFFQFBBVkpTR2xvYmFsT2JqZWN0QDFAUEFWU3RydWN0dXJlQDFAQFoKKyAg
ICA/PzBKU09iamVjdFdpdGhHbG9iYWxPYmplY3RASlNDQEBJQUVAQUFWSlNHbG9iYWxEYXRhQDFA
UEFWU3RydWN0dXJlQDFAQFoKICAgICA/PzBNRDVAV1RGQEBRQUVAWFoKICAgICA/PzBNdXRleEBX
VEZAQFFBRUBYWgogICAgID8/MFJlZkNvdW50ZWRMZWFrQ291bnRlckBXVEZAQFFBRUBQQkRAWgpA
QCAtOTUsNyArOTUsOSBAQCBFWFBPUlRTCiAgICAgP2NvbnZlcnRVVEYxNlRvVVRGOEBVbmljb2Rl
QFdURkBAWUE/QVc0Q29udmVyc2lvblJlc3VsdEAxMkBQQVBCX1dQQl9XUEFQQURQQURfTkBaCiAg
ICAgP2NvbnZlcnRVVEY4VG9VVEYxNkBVbmljb2RlQFdURkBAWUE/QVc0Q29udmVyc2lvblJlc3Vs
dEAxMkBQQVBCRFBCRFBBUEFfV1BBX1dfTkBaCiAgICAgP2NyZWF0ZUBCeXRlQXJyYXlAV1RGQEBT
QT9BVj8kUGFzc1JlZlB0ckBWQnl0ZUFycmF5QFdURkBAQDJASUBaCi0gICAgP2NyZWF0ZUBKU0J5
dGVBcnJheUBKU0NAQFNBUEFWMTJAUEFWRXhlY1N0YXRlQDJAUEFWU3RydWN0dXJlQDJAUEFWQnl0
ZUFycmF5QFdURkBAQFoKKyAgICA/Y3JlYXRlQEpTQXJyYXlASlNDQEBTQVBBVjEyQEFBVkpTR2xv
YmFsRGF0YUAyQFBBVlN0cnVjdHVyZUAyQEBaCisgICAgP2NyZWF0ZUBKU0FycmF5QEpTQ0BAU0FQ
QVYxMkBBQVZKU0dsb2JhbERhdGFAMkBQQVZTdHJ1Y3R1cmVAMkBBQlZBcmdMaXN0QDJAQFoKKyAg
ICA/Y3JlYXRlQEpTRnVuY3Rpb25ASlNDQEBTQVBBVjEyQFBBVkV4ZWNTdGF0ZUAyQFBBVkpTR2xv
YmFsT2JqZWN0QDJAUEFWU3RydWN0dXJlQDJASEFCVklkZW50aWZpZXJAMkBQNklfSjBAWkBaCiAg
ICAgP2NyZWF0ZUBKU0dsb2JhbERhdGFASlNDQEBTQT9BVj8kUGFzc1JlZlB0ckBWSlNHbG9iYWxE
YXRhQEpTQ0BAQFdURkBAVzRUaHJlYWRTdGFja1R5cGVAMkBXNEhlYXBTaXplQDJAQFoKICAgICA/
Y3JlYXRlQE9wYXF1ZUpTU3RyaW5nQEBTQT9BVj8kUGFzc1JlZlB0ckBVT3BhcXVlSlNTdHJpbmdA
QEBXVEZAQEFCVlVTdHJpbmdASlNDQEBAWgogICAgID9jcmVhdGVAUmVnRXhwQEpTQ0BAU0FQQVYx
MkBBQVZKU0dsb2JhbERhdGFAMkBBQlZVU3RyaW5nQDJAVzRSZWdFeHBGbGFnc0AyQEBaCkBAIC0x
NjcsNiArMTY5LDEwIEBAIEVYUE9SVFMKICAgICA/ZmFzdFplcm9lZE1hbGxvY0BXVEZAQFlBUEFY
SUBaCiAgICAgP2ZpbGxHZXR0ZXJQcm9wZXJ0eVNsb3RASlNPYmplY3RASlNDQEBRQUVYQUFWUHJv
cGVydHlTbG90QDJAUEFWPyRXcml0ZUJhcnJpZXJCYXNlQFc0VW5rbm93bkBKU0NAQEAyQEBaCiAg
ICAgP2ZpbmFsaXplQFdlYWtIYW5kbGVPd25lckBKU0NAQFVBRVhWPyRIYW5kbGVAVzRVbmtub3du
QEpTQ0BAQDJAUEFYQFoKKyAgICA/ZmluaXNoQ3JlYXRpb25ASlNBcnJheUBKU0NAQElBRVhBQVZK
U0dsb2JhbERhdGFAMkBAWgorICAgID9maW5pc2hDcmVhdGlvbkBKU0FycmF5QEpTQ0BASUFFWEFB
VkpTR2xvYmFsRGF0YUAyQEFCVkFyZ0xpc3RAMkBAWgorICAgID9maW5pc2hDcmVhdGlvbkBKU0Z1
bmN0aW9uQEpTQ0BASUFFWFBBVkV4ZWNTdGF0ZUAyQFBBVkpTR2xvYmFsT2JqZWN0QDJASEFCVklk
ZW50aWZpZXJAMkBQQVZFeGVjdXRhYmxlQmFzZUAyQEBaCisgICAgP2ZpbmlzaENyZWF0aW9uQEpT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdEBKU0NAQElBRVhBQVZKU0dsb2JhbERhdGFAMkBQQVZKU0ds
b2JhbE9iamVjdEAyQEBaCiAgICAgP2ZvY3VzQFByb2ZpbGVASlNDQEBRQUVYUEJWUHJvZmlsZU5v
ZGVAMkBAWgogICAgID9mcm9tQElkZW50aWZpZXJASlNDQEBTQT9BVjEyQFBBVkV4ZWNTdGF0ZUAy
QEhAWgogICAgID9mcm9tQElkZW50aWZpZXJASlNDQEBTQT9BVjEyQFBBVkV4ZWNTdGF0ZUAyQElA
WgpAQCAtMTc2LDYgKzE4Miw3IEBAIEVYUE9SVFMKICAgICA/Z2V0QFN0cnVjdHVyZUBKU0NAQFFB
RUlBQVZKU0dsb2JhbERhdGFAMkBQQVZTdHJpbmdJbXBsQFdURkBAQUFJQUFQQVZKU0NlbGxAMkBA
WgogICAgID9nZXRDYWxsRGF0YUBKU0NlbGxASlNDQEBVQUU/QVc0Q2FsbFR5cGVAMkBBQVRDYWxs
RGF0YUAyQEBaCiAgICAgP2dldENvbnN0cnVjdERhdGFASlNDZWxsQEpTQ0BAVUFFP0FXNENvbnN0
cnVjdFR5cGVAMkBBQVRDb25zdHJ1Y3REYXRhQDJAQFoKKyAgICA/Z2V0SG9zdEZ1bmN0aW9uQEpT
R2xvYmFsRGF0YUBKU0NAQFFBRVBBVk5hdGl2ZUV4ZWN1dGFibGVAMkBQNklfSlBBVkV4ZWNTdGF0
ZUAyQEBaQFoKICAgICA/Z2V0SlNOdW1iZXJASlNDZWxsQEpTQ0BAVUFFP0FWSlNWYWx1ZUAyQFha
CiAgICAgP2dldE9iamVjdEBKU0NlbGxASlNDQEBRQUVQQVZKU09iamVjdEAyQFhaCiAgICAgP2dl
dE93blByb3BlcnR5RGVzY3JpcHRvckBKU0dsb2JhbE9iamVjdEBKU0NAQFVBRV9OUEFWRXhlY1N0
YXRlQDJAQUJWSWRlbnRpZmllckAyQEFBVlByb3BlcnR5RGVzY3JpcHRvckAyQEBaCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3Bw
CmluZGV4IGFlOGE1YWNkNmE4NTcwYWQ3MzdjZTBlMDBjYzlkNWE2OGE5NDA5ZGQuLmE3MTAxZGNi
NmJhYTQwZmY0ZmUwZWZhMzJkMWQ1NWI2OGE5NDE0ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCkBAIC0zMCwxMCAr
MzAsMTYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLURlYnVnZ2VyQWN0aXZhdGlvbjo6RGVidWdn
ZXJBY3RpdmF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNPYmplY3QqIGFjdGl2YXRp
b24pCitEZWJ1Z2dlckFjdGl2YXRpb246OkRlYnVnZ2VyQWN0aXZhdGlvbihKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEpCiAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIGdsb2JhbERh
dGEuZGVidWdnZXJBY3RpdmF0aW9uU3RydWN0dXJlLmdldCgpKQogewotICAgIGZpbmlzaENyZWF0
aW9uKGdsb2JhbERhdGEsIGFjdGl2YXRpb24pOworfQorCitEZWJ1Z2dlckFjdGl2YXRpb24qIERl
YnVnZ2VyQWN0aXZhdGlvbjo6Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNPYmpl
Y3QqIG9iamVjdCkKK3sKKyAgICBEZWJ1Z2dlckFjdGl2YXRpb24qIGFjdGl2YXRpb24gPSBuZXcg
KGFsbG9jYXRlQ2VsbDxEZWJ1Z2dlckFjdGl2YXRpb24+KGdsb2JhbERhdGEuaGVhcCkpIERlYnVn
Z2VyQWN0aXZhdGlvbihnbG9iYWxEYXRhKTsKKyAgICBhY3RpdmF0aW9uLT5maW5pc2hDcmVhdGlv
bihnbG9iYWxEYXRhLCBvYmplY3QpOworICAgIHJldHVybiBhY3RpdmF0aW9uOwogfQogCiB2b2lk
IERlYnVnZ2VyQWN0aXZhdGlvbjo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU09iamVjdCogYWN0aXZhdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAppbmRleCAzNDQ0YmQ4NGU1ZTZjMGE0YzRm
ZDJjYzgwOWY3ZGYyOGM1ZDhkNTMzLi5kODNiMmY3MGZjNGIwYjhhYTU5OWRmNDE0YzVmMDcyYWNk
OTg0ZDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyQWN0aXZhdGlvbi5oCkBAIC0zNCwxMiArMzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBw
dWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwogCi0gICAgICAg
IHN0YXRpYyBEZWJ1Z2dlckFjdGl2YXRpb24qIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTT2JqZWN0KiBvYmplY3QpCi0gICAgICAgIHsKLSAgICAgICAgICAgIERlYnVnZ2VyQWN0
aXZhdGlvbiogYWN0aXZhdGlvbiA9IG5ldyAoYWxsb2NhdGVDZWxsPERlYnVnZ2VyQWN0aXZhdGlv
bj4oZ2xvYmFsRGF0YS5oZWFwKSkgRGVidWdnZXJBY3RpdmF0aW9uKGdsb2JhbERhdGEsIG9iamVj
dCk7Ci0gICAgICAgICAgICByZXR1cm4gYWN0aXZhdGlvbjsKLSAgICAgICAgfQotCisgICAgICAg
IHN0YXRpYyBEZWJ1Z2dlckFjdGl2YXRpb24qIGNyZWF0ZShKU0dsb2JhbERhdGEmLCBKU09iamVj
dCopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYpOwog
ICAgICAgICB2aXJ0dWFsIFVTdHJpbmcgY2xhc3NOYW1lKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKQEAgLTY0LDcgKzU5LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiwgSlNPYmpl
Y3QqIGFjdGl2YXRpb24pOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgRGVidWdnZXJBY3RpdmF0
aW9uKEpTR2xvYmFsRGF0YSYsIEpTT2JqZWN0Kik7CisgICAgICAgIERlYnVnZ2VyQWN0aXZhdGlv
bihKU0dsb2JhbERhdGEmKTsKICAgICAgICAgV3JpdGVCYXJyaWVyPEpTQWN0aXZhdGlvbj4gbV9h
Y3RpdmF0aW9uOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FyZ3VtZW50cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1l
bnRzLmgKaW5kZXggMDlkNTVmMjE2MzU1NTQxZTRiZGRmYjIyMjU4MWI3NmYwOTMxODg3ZS4uN2Qw
YWYzZGU0ZjI4NWZkNGI2NmMwOGExZmJjN2U4MWU1MjRkYzFmMyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKQEAgLTY0LDEyICs2NCwxNCBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgc3RhdGljIEFyZ3VtZW50cyogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiAgICAgICAgIHsKICAgICAgICAgICAgIEFy
Z3VtZW50cyogYXJndW1lbnRzID0gbmV3IChhbGxvY2F0ZUNlbGw8QXJndW1lbnRzPihnbG9iYWxE
YXRhLmhlYXApKSBBcmd1bWVudHMoY2FsbEZyYW1lKTsKKyAgICAgICAgICAgIGFyZ3VtZW50cy0+
ZmluaXNoQ3JlYXRpb24oY2FsbEZyYW1lKTsKICAgICAgICAgICAgIHJldHVybiBhcmd1bWVudHM7
CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBBcmd1bWVudHMqIGNyZWF0ZU5v
UGFyYW1ldGVycyhKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQogICAgICAgICB7CiAgICAgICAgICAgICBBcmd1bWVudHMqIGFyZ3VtZW50cyA9IG5ldyAoYWxs
b2NhdGVDZWxsPEFyZ3VtZW50cz4oZ2xvYmFsRGF0YS5oZWFwKSkgQXJndW1lbnRzKGNhbGxGcmFt
ZSwgTm9QYXJhbWV0ZXJzKTsKKyAgICAgICAgICAgIGFyZ3VtZW50cy0+ZmluaXNoQ3JlYXRpb24o
Y2FsbEZyYW1lLCBOb1BhcmFtZXRlcnMpOwogICAgICAgICAgICAgcmV0dXJuIGFyZ3VtZW50czsK
ICAgICAgICAgfQogCkBAIC0xNjYsMTQgKzE2OCwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgOiBKU05vbkZpbmFsT2JqZWN0KGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCBjYWxsRnJhbWUt
PmxleGljYWxHbG9iYWxPYmplY3QoKS0+YXJndW1lbnRzU3RydWN0dXJlKCkpCiAgICAgICAgICwg
ZChhZG9wdFB0cihuZXcgQXJndW1lbnRzRGF0YSkpCiAgICAgewotICAgICAgICBmaW5pc2hDcmVh
dGlvbihjYWxsRnJhbWUpOwogICAgIH0KIAogICAgIGlubGluZSBBcmd1bWVudHM6OkFyZ3VtZW50
cyhDYWxsRnJhbWUqIGNhbGxGcmFtZSwgTm9QYXJhbWV0ZXJzVHlwZSkKICAgICAgICAgOiBKU05v
bkZpbmFsT2JqZWN0KGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCBjYWxsRnJhbWUtPmxleGljYWxH
bG9iYWxPYmplY3QoKS0+YXJndW1lbnRzU3RydWN0dXJlKCkpCiAgICAgICAgICwgZChhZG9wdFB0
cihuZXcgQXJndW1lbnRzRGF0YSkpCiAgICAgewotICAgICAgICBmaW5pc2hDcmVhdGlvbihjYWxs
RnJhbWUsIE5vUGFyYW1ldGVycyk7CiAgICAgfQogICAgIAogICAgIGlubGluZSB2b2lkIEFyZ3Vt
ZW50czo6ZmluaXNoQ3JlYXRpb24oQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXggNzhjZTAxMmQx
Yjg1Y2Y0YzY0NzA1MjBkM2UwNjM4Y2Y2Yzc1Yjk4Yy4uOTk2NzRiYjIzYjQ5ODE4YjJmM2EzNDg0
YzI2NmUwMTM5ZDg2ZWY0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5UHJvdG90eXBlLmNwcApAQCAtMTE3LDYgKzExNywxMiBAQCBjb25zdCBDbGFzc0luZm8g
QXJyYXlQcm90b3R5cGU6OnNfaW5mbyA9IHsiQXJyYXkiLCAmSlNBcnJheTo6c19pbmZvLCAwLCBF
eGVjU3RhdAogQXJyYXlQcm90b3R5cGU6OkFycmF5UHJvdG90eXBlKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNBcnJheShnbG9iYWxP
YmplY3QtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGds
b2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgQXJyYXlQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
Z2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZv
KSk7CiAgICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIDAs
IGdsb2JhbE9iamVjdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheVByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlQcm90b3R5cGUuaAppbmRleCAxMjRjNjFhYzRkYzc5ODM4NWRlZWE3ODdkZDY0ZDViY2I2ZmJh
MjU4Li45YTYyOGUwYzY5M2NhOWQ3N2U3NzZhODZhOTlkODJhMzA1YjdjN2I4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKQEAgLTQ5LDYgKzQ5
LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKKyAgICAg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCopOworCiAgICAgICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNTbG90Q291bnQgPSBKU0FycmF5OjpBbm9ueW1vdXNT
bG90Q291bnQgKyAxOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQm9vbGVhbk9iamVjdC5jcHAKaW5kZXggZTI0YTMwYTRiYjU0YWU1MDBlZDBlOWQ3MTY1ZmM5
Y2U3YTVkOWE2My4uYjllMzNkYzQ4NDI5OGI2Y2VlNjc0ZTE4ZDU0YTg3ZjYyZGFkZmQ1NyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAKQEAg
LTMwLDYgKzMwLDEyIEBAIGNvbnN0IENsYXNzSW5mbyBCb29sZWFuT2JqZWN0OjpzX2luZm8gPSB7
ICJCb29sZWFuIiwgJkpTV3JhcHBlck9iamVjdDo6c19pbmZvLCAwCiBCb29sZWFuT2JqZWN0OjpC
b29sZWFuT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCiAgICAgOiBKU1dyYXBwZXJPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogeworICAg
IGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOworfQorCit2b2lkIEJvb2xlYW5PYmplY3Q6OmZp
bmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKK3sKKyAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2Jq
ZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmgKaW5k
ZXggNzBlZDEyNjEyY2ZlOTU3MzdhMDEzZTBkN2M3NDYzMWNiOWMwNjdlZS4uODQ2MTBkOWI4MWY1
MGUxZGFiOGQ4MzQxNWRkNDc1Mjg1NDg5N2U1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuaApAQCAtMjgsNiArMjgsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICBjbGFzcyBCb29sZWFuT2JqZWN0IDogcHVibGljIEpTV3JhcHBlck9iamVjdCB7CiAg
ICAgcHJvdGVjdGVkOgogICAgICAgICBCb29sZWFuT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFN0cnVj
dHVyZSopOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYpOwogCiAg
ICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpTV3JhcHBlck9iamVjdCBCYXNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAKaW5kZXggZDhjYTA3
MjQ5MWI4NTgzZGZjODFlMTI5NWEyZDhiMzkyYTY0NDdkZi4uNmRmMzBkNzIwMTg4MTg2ZGUxMjIx
MDNlMGQ4ODBlN2Y4MmZmZjM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlSW5zdGFuY2UuY3BwCkBAIC0zNywxNSArMzcsMjcgQEAgY29uc3QgQ2xhc3NJbmZvIERh
dGVJbnN0YW5jZTo6c19pbmZvID0geyJEYXRlIiwgJkpTV3JhcHBlck9iamVjdDo6c19pbmZvLCAw
LCAwfTsKIERhdGVJbnN0YW5jZTo6RGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU1dyYXBwZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBzdHJ1Y3R1cmUpCiB7Ci0gICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKLSAgICBzZXRJ
bnRlcm5hbFZhbHVlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNOYU4oKSk7CisgICAgZmluaXNoQ3Jl
YXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKIH0KIAogRGF0ZUluc3RhbmNlOjpEYXRlSW5zdGFu
Y2UoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgZG91YmxlIHRpbWUpCiAg
ICAgOiBKU1dyYXBwZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7Cisg
ICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aW1lKTsKK30KKwordm9pZCBE
YXRlSW5zdGFuY2U6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKK3sK
KyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKKyAgICBBU1NFUlQoaW5oZXJp
dHMoJnNfaW5mbykpOworICAgIHNldEludGVybmFsVmFsdWUoZ2xvYmFsRGF0YSwganNOYU4oKSk7
Cit9CisKK3ZvaWQgRGF0ZUluc3RhbmNlOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIGRvdWJsZSB0aW1lKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2Jh
bERhdGEpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgc2V0SW50ZXJuYWxW
YWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIGpzTnVtYmVyKHRpbWVDbGlwKHRpbWUpKSk7CisgICAg
c2V0SW50ZXJuYWxWYWx1ZShnbG9iYWxEYXRhLCBqc051bWJlcih0aW1lQ2xpcCh0aW1lKSkpOwog
fQogCiBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogRGF0ZUluc3RhbmNlOjpjYWxjdWxhdGVHcmVn
b3JpYW5EYXRlVGltZShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oCmluZGV4IGFmMmRmYTA1MGIzMzI1NmIyMzhjOWQz
MGQ2Y2MyZmFlY2JkYTM2MWIuLmQ1MjAxZWUxOTI4ODY5ODc4MTE3YTA2YWNmZmNhYjVmOWIwOGY5
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5j
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oCkBA
IC0zMyw2ICszMyw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByb3RlY3RlZDoKICAgICAgICAg
RGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIGRvdWJsZSk7CiAgICAgICAgIERh
dGVJbnN0YW5jZShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqKTsKKyAgICAgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihKU0dsb2JhbERhdGEmKTsKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0ds
b2JhbERhdGEmLCBkb3VibGUpOwogICAgICAgICAKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVk
ZWYgSlNXcmFwcGVyT2JqZWN0IEJhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9ySW5zdGFuY2UuY3BwCmluZGV4IDNlMDMzN2I4OTRkMzUzN2FlMTJlZjU5NWJhOTU5
MWQ4M2U1YWQyMGYuLjRmNWU2ZTJmNTY4NDgwNjFkOGUxMzlkNWIxNzk1Zjg1NzA5ZGJlN2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCkBA
IC0yOSwyNiArMjksNiBAQCBFcnJvckluc3RhbmNlOjpFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU05vbkZpbmFsT2Jq
ZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKICAgICAsIG1fYXBwZW5kU291cmNlVG9NZXNzYWdl
KGZhbHNlKQogewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIFVTdHJpbmcoIiIsIDAp
KTsKLX0KLQotRXJyb3JJbnN0YW5jZTo6RXJyb3JJbnN0YW5jZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBVU3RyaW5nJiBtZXNzYWdlKQotICAg
IDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCi0gICAgLCBtX2FwcGVu
ZFNvdXJjZVRvTWVzc2FnZShmYWxzZSkKLXsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRh
LCBtZXNzYWdlKTsKLX0KLQotRXJyb3JJbnN0YW5jZSogRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFVTdHJp
bmcmIG1lc3NhZ2UpCi17Ci0gICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEVycm9ySW5zdGFu
Y2U+KGdsb2JhbERhdGEuaGVhcCkpIEVycm9ySW5zdGFuY2UoZ2xvYmFsRGF0YSwgc3RydWN0dXJl
LCBtZXNzYWdlKTsKLX0KLQotRXJyb3JJbnN0YW5jZSogRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKEV4
ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTVmFsdWUgbWVzc2FnZSkKLXsK
LSAgICBpZiAobWVzc2FnZS5pc1VuZGVmaW5lZCgpKQotICAgICAgICByZXR1cm4gbmV3IChhbGxv
Y2F0ZUNlbGw8RXJyb3JJbnN0YW5jZT4oKmV4ZWMtPmhlYXAoKSkpIEVycm9ySW5zdGFuY2UoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpOwotICAgIHJldHVybiBjcmVhdGUoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBzdHJ1Y3R1cmUsIG1lc3NhZ2UudG9TdHJpbmcoZXhlYykpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9ySW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5z
dGFuY2UuaAppbmRleCAwNmE5NTMyMTNjYTViZTViNDUxYTNkYzhhMTFlOTJkYWExMjc2ZjkyLi45
YzZhN2E3NzU5MTI2NjJhOTkyZjRkNTcyMDMzZDBkNmJmYWRjNjdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCkBAIC0zNiw5ICszNiwyMSBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRp
YyBFcnJvckluc3RhbmNlKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiwgY29uc3Qg
VVN0cmluZyYpOwotICAgICAgICBzdGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEV4ZWNTdGF0
ZSosIFN0cnVjdHVyZSosIEpTVmFsdWUgbWVzc2FnZSk7Ci0KKyAgICAgICAgc3RhdGljIEVycm9y
SW5zdGFuY2UqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBjb25zdCBVU3RyaW5nJiBtZXNzYWdlKQorICAgICAgICB7CisgICAgICAgICAgICBF
cnJvckluc3RhbmNlKiBpbnN0YW5jZSA9IG5ldyAoYWxsb2NhdGVDZWxsPEVycm9ySW5zdGFuY2U+
KGdsb2JhbERhdGEuaGVhcCkpIEVycm9ySW5zdGFuY2UoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsK
KyAgICAgICAgICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBtZXNzYWdl
KTsKKyAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTsKKyAgICAgICAgfQorICAgICAgICBzdGF0
aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIEpTVmFsdWUgbWVzc2FnZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG1lc3Nh
Z2UuaXNVbmRlZmluZWQoKSkgeworICAgICAgICAgICAgICAgIEVycm9ySW5zdGFuY2UqIGluc3Rh
bmNlID0gbmV3IChhbGxvY2F0ZUNlbGw8RXJyb3JJbnN0YW5jZT4oKmV4ZWMtPmhlYXAoKSkpIEVy
cm9ySW5zdGFuY2UoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAg
ICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIFVTdHJpbmco
IiIsIDApKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlKGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJl
LCBtZXNzYWdlLnRvU3RyaW5nKGV4ZWMpKTsKKyAgICAgICAgfQogCiAgICAgICAgIGJvb2wgYXBw
ZW5kU291cmNlVG9NZXNzYWdlKCkgeyByZXR1cm4gbV9hcHBlbmRTb3VyY2VUb01lc3NhZ2U7IH0K
ICAgICAgICAgdm9pZCBzZXRBcHBlbmRTb3VyY2VUb01lc3NhZ2UoKSB7IG1fYXBwZW5kU291cmNl
VG9NZXNzYWdlID0gdHJ1ZTsgfQpAQCAtNDgsNyArNjAsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgIHByb3RlY3RlZDoKICAgICAgICAgZXhwbGljaXQgRXJyb3JJbnN0YW5jZShKU0dsb2JhbERh
dGEmLCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAgZXhwbGljaXQgRXJyb3JJbnN0YW5jZShKU0dsb2Jh
bERhdGEmLCBTdHJ1Y3R1cmUqLCBjb25zdCBVU3RyaW5nJik7CiAKICAgICAgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IFVTdHJpbmcmIG1lc3Nh
Z2UpCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9yUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9y
UHJvdG90eXBlLmNwcAppbmRleCAzODYwNjhiYzNlNzhmN2JiZGRiMjRjMzQ3YzlkMWZmZDdjZWRh
ODExLi42OTg2NzUyNGM0Y2U3ZWY1Yzc2M2I2YTUyNzJlNzE2Y2U4NDk1NzljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCkBAIC01Mywx
MSArNTMsMTIgQEAgQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChFcnJvclByb3RvdHlwZSk7CiBF
cnJvclByb3RvdHlwZTo6RXJyb3JQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEVycm9ySW5z
dGFuY2UoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7Ci0gICAgY29uc3RydWN0b3JC
b2R5KGV4ZWMsIGdsb2JhbE9iamVjdCk7CisgICAgZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFs
T2JqZWN0KTsKIH0KIAotdm9pZCBFcnJvclByb3RvdHlwZTo6Y29uc3RydWN0b3JCb2R5KEV4ZWNT
dGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgRXJyb3JQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKIHsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRh
KCksICIiKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHB1dERpcmVjdChl
eGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5uYW1lLCBqc05vbnRyaXZp
YWxTdHJpbmcoZXhlYywgIkVycm9yIiksIERvbnRFbnVtKTsKICAgICBwdXRBbm9ueW1vdXNWYWx1
ZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgMCwgZ2xvYmFsT2JqZWN0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oCmluZGV4IDk4MzU3MmI2
MjIzYTdiZDM4ZmMzZTVhYTE4NTY5YmMwODQ0MGVkNzguLmQ3YjE1MjI1YzgxOGYxMmRkMWI0NjNm
ZTFmNTQ3MDhjZGZjZjQ5YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JQcm90b3R5cGUuaApAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
IHByb3RlY3RlZDoKICAgICAgICAgRXJyb3JQcm90b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAgdm9pZCBjb25zdHJ1Y3RvckJvZHkoRXhlY1N0
YXRlKiwgSlNHbG9iYWxPYmplY3QqKTsKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVj
U3RhdGUqLCBKU0dsb2JhbE9iamVjdCopOwogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEVycm9ySW5z
dGFuY2U6OlN0cnVjdHVyZUZsYWdzOwogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQW5v
bnltb3VzU2xvdENvdW50ID0gRXJyb3JJbnN0YW5jZTo6QW5vbnltb3VzU2xvdENvdW50ICsgMTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBl
cnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5j
cHAKaW5kZXggYjU4ZDg5NTE3ZTM3ZWRiYWIyNzk0MDMwMTExNmZlM2MyMjNjMzQ4Mi4uNGJjNGZh
ZTA2MDRjYjYyMThiZDk0MGVjMmFmMzRhZWRhZGEzZGYxMCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKQEAgLTQ2LDcgKzQ2LDYg
QEAgcHJpdmF0ZToKICAgICBJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSkKICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIGdsb2Jh
bERhdGEuaW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvclN0cnVjdHVyZS5nZXQoKSkKICAgICB7Ci0g
ICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIH0KIAogcHVibGljOgpAQCAt
NTQsNyArNTMsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSW50ZXJydXB0ZWRFeGVjdXRpb25F
cnJvciogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yPihnbG9iYWxE
YXRhLmhlYXApKSBJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yKGdsb2JhbERhdGEpOworICAgICAg
ICBJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yKiBlcnJvciA9IG5ldyAoYWxsb2NhdGVDZWxsPElu
dGVycnVwdGVkRXhlY3V0aW9uRXJyb3I+KGdsb2JhbERhdGEuaGVhcCkpIEludGVycnVwdGVkRXhl
Y3V0aW9uRXJyb3IoZ2xvYmFsRGF0YSk7CisgICAgICAgIGVycm9yLT5maW5pc2hDcmVhdGlvbihn
bG9iYWxEYXRhKTsKKyAgICAgICAgcmV0dXJuIGVycm9yOwogICAgIH0KIAogICAgIHZpcnR1YWwg
Q29tcGxUeXBlIGV4Y2VwdGlvblR5cGUoKSBjb25zdCB7IHJldHVybiBJbnRlcnJ1cHRlZDsgfQpA
QCAtNzIsNyArNzMsNiBAQCBwcml2YXRlOgogICAgIFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcihK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCiAgICAgICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9i
YWxEYXRhLCBnbG9iYWxEYXRhLnRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvclN0cnVjdHVyZS5nZXQo
KSkKICAgICB7Ci0gICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIH0KIAog
cHVibGljOgpAQCAtODAsNyArODAsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgVGVybWluYXRl
ZEV4ZWN1dGlvbkVycm9yKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJv
cj4oZ2xvYmFsRGF0YS5oZWFwKSkgVGVybWluYXRlZEV4ZWN1dGlvbkVycm9yKGdsb2JhbERhdGEp
OworICAgICAgICBUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3IqIGVycm9yID0gbmV3IChhbGxvY2F0
ZUNlbGw8VGVybWluYXRlZEV4ZWN1dGlvbkVycm9yPihnbG9iYWxEYXRhLmhlYXApKSBUZXJtaW5h
dGVkRXhlY3V0aW9uRXJyb3IoZ2xvYmFsRGF0YSk7CisgICAgICAgIGVycm9yLT5maW5pc2hDcmVh
dGlvbihnbG9iYWxEYXRhKTsKKyAgICAgICAgcmV0dXJuIGVycm9yOwogICAgIH0KIAogICAgIHZp
cnR1YWwgQ29tcGxUeXBlIGV4Y2VwdGlvblR5cGUoKSBjb25zdCB7IHJldHVybiBUZXJtaW5hdGVk
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCmluZGV4
IDM4OTdlOTM2OGIyZjkwNzlhYTViOTJmMmZkNDAyMTdjZTYwZTAwZTIuLjU2MTc1MjIzMDk2YTJm
MjYyMzVjZTdiMDcxNGU5NjYzZGVjOTgxNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuY3BwCkBAIC0xMjcsNyArMTI3LDYgQEAgY29uc3QgQ2xhc3NJbmZv
IEV2YWxFeGVjdXRhYmxlOjpzX2luZm8gPSB7ICJFdmFsRXhlY3V0YWJsZSIsICZTY3JpcHRFeGVj
dXRhYmxlOjoKIEV2YWxFeGVjdXRhYmxlOjpFdmFsRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBpblN0cmljdENvbnRleHQpCiAgICAgOiBT
Y3JpcHRFeGVjdXRhYmxlKGV4ZWMtPmdsb2JhbERhdGEoKS5ldmFsRXhlY3V0YWJsZVN0cnVjdHVy
ZS5nZXQoKSwgZXhlYywgc291cmNlLCBpblN0cmljdENvbnRleHQpCiB7Ci0gICAgZmluaXNoQ3Jl
YXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKIH0KIAogRXZhbEV4ZWN1dGFibGU6On5FdmFsRXhl
Y3V0YWJsZSgpCkBAIC0xMzksNyArMTM4LDYgQEAgY29uc3QgQ2xhc3NJbmZvIFByb2dyYW1FeGVj
dXRhYmxlOjpzX2luZm8gPSB7ICJQcm9ncmFtRXhlY3V0YWJsZSIsICZTY3JpcHRFeGVjdXQKIFBy
b2dyYW1FeGVjdXRhYmxlOjpQcm9ncmFtRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IFNvdXJjZUNvZGUmIHNvdXJjZSkKICAgICA6IFNjcmlwdEV4ZWN1dGFibGUoZXhlYy0+Z2xvYmFs
RGF0YSgpLnByb2dyYW1FeGVjdXRhYmxlU3RydWN0dXJlLmdldCgpLCBleGVjLCBzb3VyY2UsIGZh
bHNlKQogewotICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CiB9CiAKIFBy
b2dyYW1FeGVjdXRhYmxlOjp+UHJvZ3JhbUV4ZWN1dGFibGUoKQpAQCAtMTQ4LDcgKzE0Niw3IEBA
IFByb2dyYW1FeGVjdXRhYmxlOjp+UHJvZ3JhbUV4ZWN1dGFibGUoKQogCiBjb25zdCBDbGFzc0lu
Zm8gRnVuY3Rpb25FeGVjdXRhYmxlOjpzX2luZm8gPSB7ICJGdW5jdGlvbkV4ZWN1dGFibGUiLCAm
U2NyaXB0RXhlY3V0YWJsZTo6c19pbmZvLCAwLCAwIH07CiAKLUZ1bmN0aW9uRXhlY3V0YWJsZTo6
RnVuY3Rpb25FeGVjdXRhYmxlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRp
ZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBib29sIGZvcmNlVXNlc0FyZ3Vt
ZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzLCBib29sIGluU3RyaWN0Q29udGV4
dCwgaW50IGZpcnN0TGluZSwgaW50IGxhc3RMaW5lKQorRnVuY3Rpb25FeGVjdXRhYmxlOjpGdW5j
dGlvbkV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVy
JiBuYW1lLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRz
LCBGdW5jdGlvblBhcmFtZXRlcnMqIHBhcmFtZXRlcnMsIGJvb2wgaW5TdHJpY3RDb250ZXh0KQog
ICAgIDogU2NyaXB0RXhlY3V0YWJsZShnbG9iYWxEYXRhLmZ1bmN0aW9uRXhlY3V0YWJsZVN0cnVj
dHVyZS5nZXQoKSwgZ2xvYmFsRGF0YSwgc291cmNlLCBpblN0cmljdENvbnRleHQpCiAgICAgLCBt
X251bUNhcHR1cmVkVmFyaWFibGVzKDApCiAgICAgLCBtX2ZvcmNlVXNlc0FyZ3VtZW50cyhmb3Jj
ZVVzZXNBcmd1bWVudHMpCkBAIC0xNTYsMTAgKzE1NCw5IEBAIEZ1bmN0aW9uRXhlY3V0YWJsZTo6
RnVuY3Rpb25FeGVjdXRhYmxlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRp
ZmllCiAgICAgLCBtX25hbWUobmFtZSkKICAgICAsIG1fc3ltYm9sVGFibGUoMCkKIHsKLSAgICBm
aW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBuYW1lLCBmaXJzdExpbmUsIGxhc3RMaW5lKTsKIH0K
IAotRnVuY3Rpb25FeGVjdXRhYmxlOjpGdW5jdGlvbkV4ZWN1dGFibGUoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJvb2wg
Zm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqIHBhcmFtZXRlcnMsIGJvb2wg
aW5TdHJpY3RDb250ZXh0LCBpbnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpCitGdW5jdGlvbkV4
ZWN1dGFibGU6OkZ1bmN0aW9uRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBmb3JjZVVzZXNBcmd1
bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyogcGFyYW1ldGVycywgYm9vbCBpblN0cmljdENvbnRl
eHQpCiAgICAgOiBTY3JpcHRFeGVjdXRhYmxlKGV4ZWMtPmdsb2JhbERhdGEoKS5mdW5jdGlvbkV4
ZWN1dGFibGVTdHJ1Y3R1cmUuZ2V0KCksIGV4ZWMsIHNvdXJjZSwgaW5TdHJpY3RDb250ZXh0KQog
ICAgICwgbV9udW1DYXB0dXJlZFZhcmlhYmxlcygwKQogICAgICwgbV9mb3JjZVVzZXNBcmd1bWVu
dHMoZm9yY2VVc2VzQXJndW1lbnRzKQpAQCAtMTY3LDcgKzE2NCw2IEBAIEZ1bmN0aW9uRXhlY3V0
YWJsZTo6RnVuY3Rpb25FeGVjdXRhYmxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgbmFtZSwKICAgICAsIG1fbmFtZShuYW1lKQogICAgICwgbV9zeW1ib2xUYWJsZSgwKQogewot
ICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFtZSwgZmlyc3RMaW5lLCBs
YXN0TGluZSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXhlY3V0YWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJs
ZS5oCmluZGV4IDVmYWRiYjgxMjQxYTBjZTNlMTM4MzE4NTg4YWY0MjExNjdmYTFiNjkuLjYzOWJi
ZTQ3MDBhZjMzNDM0MjQxZDE1NTA4YWRkN2Q0MWE3MmExN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKQEAgLTE3NiwxNiArMTc2LDIxIEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBzdGF0aWMgTmF0aXZlRXhlY3V0YWJsZSogY3JlYXRlKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNhbGxUaHVuaywgTmF0aXZl
RnVuY3Rpb24gZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb25zdHJ1Y3RUaHVuaywg
TmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IpCiAgICAgICAgIHsKICAgICAgICAgICAgIE5hdGl2
ZUV4ZWN1dGFibGUqIGV4ZWN1dGFibGU7Ci0gICAgICAgICAgICBpZiAoIWNhbGxUaHVuaykKLSAg
ICAgICAgICAgICAgICBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8TmF0aXZlRXhlY3V0
YWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkgTmF0aXZlRXhlY3V0YWJsZShnbG9iYWxEYXRhLCBKSVRD
b2RlKCksIGZ1bmN0aW9uLCBKSVRDb2RlKCksIGNvbnN0cnVjdG9yKTsKLSAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8TmF0aXZl
RXhlY3V0YWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkgTmF0aXZlRXhlY3V0YWJsZShnbG9iYWxEYXRh
LCBKSVRDb2RlOjpIb3N0RnVuY3Rpb24oY2FsbFRodW5rKSwgZnVuY3Rpb24sIEpJVENvZGU6Okhv
c3RGdW5jdGlvbihjb25zdHJ1Y3RUaHVuayksIGNvbnN0cnVjdG9yKTsKKyAgICAgICAgICAgIGlm
ICghY2FsbFRodW5rKSB7CisgICAgICAgICAgICAgICAgZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2Nh
dGVDZWxsPE5hdGl2ZUV4ZWN1dGFibGU+KGdsb2JhbERhdGEuaGVhcCkpIE5hdGl2ZUV4ZWN1dGFi
bGUoZ2xvYmFsRGF0YSwgZnVuY3Rpb24sIGNvbnN0cnVjdG9yKTsKKyAgICAgICAgICAgICAgICBl
eGVjdXRhYmxlLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBKSVRDb2RlKCksIEpJVENvZGUo
KSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBu
ZXcgKGFsbG9jYXRlQ2VsbDxOYXRpdmVFeGVjdXRhYmxlPihnbG9iYWxEYXRhLmhlYXApKSBOYXRp
dmVFeGVjdXRhYmxlKGdsb2JhbERhdGEsIGZ1bmN0aW9uLCBjb25zdHJ1Y3Rvcik7CisgICAgICAg
ICAgICAgICAgZXhlY3V0YWJsZS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgSklUQ29kZTo6
SG9zdEZ1bmN0aW9uKGNhbGxUaHVuayksIEpJVENvZGU6Okhvc3RGdW5jdGlvbihjb25zdHJ1Y3RU
aHVuaykpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CiAg
ICAgICAgIH0KICNlbHNlCiAgICAgICAgIHN0YXRpYyBOYXRpdmVFeGVjdXRhYmxlKiBjcmVhdGUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgTmF0aXZl
RnVuY3Rpb24gY29uc3RydWN0b3IpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcg
KGFsbG9jYXRlQ2VsbDxOYXRpdmVFeGVjdXRhYmxlPihnbG9iYWxEYXRhLmhlYXApKSBOYXRpdmVF
eGVjdXRhYmxlKGdsb2JhbERhdGEsIGZ1bmN0aW9uLCBjb25zdHJ1Y3Rvcik7CisgICAgICAgICAg
ICBOYXRpdmVFeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8TmF0aXZl
RXhlY3V0YWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkgTmF0aXZlRXhlY3V0YWJsZShnbG9iYWxEYXRh
LCBmdW5jdGlvbiwgY29uc3RydWN0b3IpOworICAgICAgICAgICAgZXhlY3V0YWJsZS0+ZmluaXNo
Q3JlYXRpb24oZ2xvYmFsRGF0YSk7CisgICAgICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAg
ICAgICAgfQogI2VuZGlmCiAKQEAgLTIxMSwxMiArMjE2LDExIEBAIG5hbWVzcGFjZSBKU0Mgewog
IAogICAgIHByaXZhdGU6CiAjaWYgRU5BQkxFKEpJVCkKLSAgICAgICAgTmF0aXZlRXhlY3V0YWJs
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpJVENvZGUgY2FsbFRodW5rLCBOYXRpdmVGdW5j
dGlvbiBmdW5jdGlvbiwgSklUQ29kZSBjb25zdHJ1Y3RUaHVuaywgTmF0aXZlRnVuY3Rpb24gY29u
c3RydWN0b3IpCisgICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3Ip
CiAgICAgICAgICAgICA6IEV4ZWN1dGFibGVCYXNlKGdsb2JhbERhdGEsIGdsb2JhbERhdGEubmF0
aXZlRXhlY3V0YWJsZVN0cnVjdHVyZS5nZXQoKSwgTlVNX1BBUkFNRVRFUlNfSVNfSE9TVCkKICAg
ICAgICAgICAgICwgbV9mdW5jdGlvbihmdW5jdGlvbikKICAgICAgICAgICAgICwgbV9jb25zdHJ1
Y3Rvcihjb25zdHJ1Y3RvcikKICAgICAgICAgewotICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24o
Z2xvYmFsRGF0YSwgY2FsbFRodW5rLCBjb25zdHJ1Y3RUaHVuayk7CiAgICAgICAgIH0KICNlbHNl
CiAgICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBOYXRp
dmVGdW5jdGlvbiBmdW5jdGlvbiwgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IpCkBAIC0yMjQs
NyArMjI4LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAsIG1fZnVuY3Rpb24oZnVu
Y3Rpb24pCiAgICAgICAgICAgICAsIG1fY29uc3RydWN0b3IoY29uc3RydWN0b3IpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgICAgICB9CiAj
ZW5kaWYKIApAQCAtMzE3LDYgKzMyMCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0
aWMgRXZhbEV4ZWN1dGFibGUqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNv
ZGUmIHNvdXJjZSwgYm9vbCBpc0luU3RyaWN0Q29udGV4dCkgCiAgICAgICAgIHsKICAgICAgICAg
ICAgIEV2YWxFeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8RXZhbEV4
ZWN1dGFibGU+KCpleGVjLT5oZWFwKCkpKSBFdmFsRXhlY3V0YWJsZShleGVjLCBzb3VyY2UsIGlz
SW5TdHJpY3RDb250ZXh0KTsKKyAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9u
KGV4ZWMtPmdsb2JhbERhdGEoKSk7CiAgICAgICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAg
ICAgICAgfQogCkBAIC0zNTQsNiArMzU4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0
YXRpYyBQcm9ncmFtRXhlY3V0YWJsZSogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291
cmNlQ29kZSYgc291cmNlKQogICAgICAgICB7CiAgICAgICAgICAgICBQcm9ncmFtRXhlY3V0YWJs
ZSogZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2NhdGVDZWxsPFByb2dyYW1FeGVjdXRhYmxlPigqZXhl
Yy0+aGVhcCgpKSkgUHJvZ3JhbUV4ZWN1dGFibGUoZXhlYywgc291cmNlKTsKKyAgICAgICAgICAg
IGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CiAgICAgICAg
ICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAgICAgICAgfQogCkBAIC00MTIsMTMgKzQxNywxNSBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgRnVuY3Rpb25FeGVjdXRhYmxlKiBj
cmVhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25zdCBTb3Vy
Y2VDb2RlJiBzb3VyY2UsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRl
cnMqIHBhcmFtZXRlcnMsIGJvb2wgaXNJblN0cmljdENvbnRleHQsIGludCBmaXJzdExpbmUsIGlu
dCBsYXN0TGluZSkKICAgICAgICAgewotICAgICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBl
eGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8RnVuY3Rpb25FeGVjdXRhYmxlPigqZXhlYy0+
aGVhcCgpKSkgRnVuY3Rpb25FeGVjdXRhYmxlKGV4ZWMsIG5hbWUsIHNvdXJjZSwgZm9yY2VVc2Vz
QXJndW1lbnRzLCBwYXJhbWV0ZXJzLCBpc0luU3RyaWN0Q29udGV4dCwgZmlyc3RMaW5lLCBsYXN0
TGluZSk7CisgICAgICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcg
KGFsbG9jYXRlQ2VsbDxGdW5jdGlvbkV4ZWN1dGFibGU+KCpleGVjLT5oZWFwKCkpKSBGdW5jdGlv
bkV4ZWN1dGFibGUoZXhlYywgbmFtZSwgc291cmNlLCBmb3JjZVVzZXNBcmd1bWVudHMsIHBhcmFt
ZXRlcnMsIGlzSW5TdHJpY3RDb250ZXh0KTsKKyAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlz
aENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFtZSwgZmlyc3RMaW5lLCBsYXN0TGluZSk7
CiAgICAgICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0
YXRpYyBGdW5jdGlvbkV4ZWN1dGFibGUqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBm
b3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyogcGFyYW1ldGVycywgYm9vbCBp
c0luU3RyaWN0Q29udGV4dCwgaW50IGZpcnN0TGluZSwgaW50IGxhc3RMaW5lKQogICAgICAgICB7
Ci0gICAgICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9j
YXRlQ2VsbDxGdW5jdGlvbkV4ZWN1dGFibGU+KGdsb2JhbERhdGEuaGVhcCkpIEZ1bmN0aW9uRXhl
Y3V0YWJsZShnbG9iYWxEYXRhLCBuYW1lLCBzb3VyY2UsIGZvcmNlVXNlc0FyZ3VtZW50cywgcGFy
YW1ldGVycywgaXNJblN0cmljdENvbnRleHQsIGZpcnN0TGluZSwgbGFzdExpbmUpOworICAgICAg
ICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8
RnVuY3Rpb25FeGVjdXRhYmxlPihnbG9iYWxEYXRhLmhlYXApKSBGdW5jdGlvbkV4ZWN1dGFibGUo
Z2xvYmFsRGF0YSwgbmFtZSwgc291cmNlLCBmb3JjZVVzZXNBcmd1bWVudHMsIHBhcmFtZXRlcnMs
IGlzSW5TdHJpY3RDb250ZXh0KTsKKyAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0
aW9uKGdsb2JhbERhdGEsIG5hbWUsIGZpcnN0TGluZSwgbGFzdExpbmUpOwogICAgICAgICAgICAg
cmV0dXJuIGV4ZWN1dGFibGU7CiAgICAgICAgIH0KIApAQCAtNTM5LDggKzU0Niw4IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBGdW5jdGlvbkV4
ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291
cmNlQ29kZSYsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqLCBi
b29sLCBpbnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpOwotICAgICAgICBGdW5jdGlvbkV4ZWN1
dGFibGUoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29k
ZSYsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqLCBib29sLCBp
bnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpOworICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUo
SlNHbG9iYWxEYXRhJiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29kZSYs
IGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqLCBib29sKTsKKyAg
ICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIG5h
bWUsIGNvbnN0IFNvdXJjZUNvZGUmLCBib29sIGZvcmNlVXNlc0FyZ3VtZW50cywgRnVuY3Rpb25Q
YXJhbWV0ZXJzKiwgYm9vbCk7CiAKICAgICAgICAgSlNPYmplY3QqIGNvbXBpbGVGb3JDYWxsSW50
ZXJuYWwoRXhlY1N0YXRlKiwgU2NvcGVDaGFpbk5vZGUqLCBFeGVjU3RhdGUqIGNhbGxlZUFyZ3NF
eGVjKTsKICAgICAgICAgSlNPYmplY3QqIGNvbXBpbGVGb3JDb25zdHJ1Y3RJbnRlcm5hbChFeGVj
U3RhdGUqLCBTY29wZUNoYWluTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAppbmRleCBiY2ExNzQ3MTMyZDRjOTczMTdkNTdj
ZDgwZTQ5MWQ0ODYyOGFjZTkwLi4wN2MwZjdmNWJmNjVhM2U3NTZiNTFjMjQwMzdjYWNjMzNjNDJl
NjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1
bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1
bmN0aW9uLmNwcApAQCAtNDQsNyArNDQsMTQgQEAgSW50ZXJuYWxGdW5jdGlvbjo6SW50ZXJuYWxG
dW5jdGlvbihWUHRyU3RlYWxpbmdIYWNrVHlwZSkKIEludGVybmFsRnVuY3Rpb246OkludGVybmFs
RnVuY3Rpb24oSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKICAg
ICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKIHsK
LSAgICBjb25zdHJ1Y3RvckJvZHkoKmdsb2JhbERhdGEsIG5hbWUpOworICAgIGZpbmlzaENyZWF0
aW9uKCpnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIG5hbWUpOworfQorCit2b2lkIEludGVybmFs
RnVuY3Rpb246OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKK3sKKyAgICBC
YXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QpOworICAgIEFTU0VS
VChpbmhlcml0cygmc19pbmZvKSk7CisgICAgcHV0RGlyZWN0KGdsb2JhbERhdGEsIGdsb2JhbERh
dGEucHJvcGVydHlOYW1lcy0+bmFtZSwganNTdHJpbmcoJmdsb2JhbERhdGEsIG5hbWUuaXNOdWxs
KCkgPyAiIiA6IG5hbWUudXN0cmluZygpKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVu
dW0pOwogfQogCiBjb25zdCBVU3RyaW5nJiBJbnRlcm5hbEZ1bmN0aW9uOjpuYW1lKEV4ZWNTdGF0
ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVy
bmFsRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVu
Y3Rpb24uaAppbmRleCAxNDM2ZjMyZDZlN2E3ZGUyOGY1NGY5MTA5MDNiZDFmNzgxMDcwZTY1Li42
MDY3YmU4ZGJmZGRiMzdjYTQ2MDc5ODFhNzMwOGE1ODM4MDY4NWNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCkBAIC01NCwxMSArNTQs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBJbnRlcm5hbEZ1bmN0aW9uKEpTR2xvYmFs
RGF0YSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgY29uc3QgSWRlbnRpZmllciYpOwog
Ci0gICAgICAgIHZvaWQgY29uc3RydWN0b3JCb2R5KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSkKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGlu
aGVyaXRzKCZzX2luZm8pKTsKLSAgICAgICAgICAgIHB1dERpcmVjdChnbG9iYWxEYXRhLCBnbG9i
YWxEYXRhLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzU3RyaW5nKCZnbG9iYWxEYXRhLCBuYW1lLmlz
TnVsbCgpID8gIiIgOiBuYW1lLnVzdHJpbmcoKSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERv
bnRFbnVtKTsKLSAgICAgICAgfQorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
RGF0YSYsIEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSk7CiAKICAgICBw
cml2YXRlOgogICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJikg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0
aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAK
aW5kZXggNTAyODkwMmM5OTJkMTRhMTI1NGE3M2EwZGRjNjljOTlmN2ZhMGI2Mi4uNWM5OWQ3YTY1
NDM4ZDFjZTc5ZGM3Y2I1MDVhODU3N2EzZjY5N2JlYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCkBAIC00Niw2ICs0NiwxMiBAQCBKU0FjdGl2
YXRpb246OkpTQWN0aXZhdGlvbihDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRnVuY3Rpb25FeGVjdXRh
YmxlKiBmdW5jdGlvbkV4ZQogICAgICwgbV9yZXF1aXJlc0R5bmFtaWNDaGVja3MoZnVuY3Rpb25F
eGVjdXRhYmxlLT51c2VzRXZhbCgpKQogICAgICwgbV9hcmd1bWVudHNSZWdpc3RlcihmdW5jdGlv
bkV4ZWN1dGFibGUtPmdlbmVyYXRlZEJ5dGVjb2RlKCkuYXJndW1lbnRzUmVnaXN0ZXIoKSkKIHsK
KyAgICBmaW5pc2hDcmVhdGlvbihjYWxsRnJhbWUpOworfQorCit2b2lkIEpTQWN0aXZhdGlvbjo6
ZmluaXNoQ3JlYXRpb24oQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7CisgICAgQmFzZTo6ZmluaXNo
Q3JlYXRpb24oY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0cygm
c19pbmZvKSk7CiAKICAgICAvLyBXZSBoYXZlIHRvIG1hbnVhbGx5IHJlZiBhbmQgZGVyZWYgdGhl
IHN5bWJvbCB0YWJsZSBhcyBKU1ZhcmlhYmxlT2JqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCmluZGV4IGYxNTkxYWFhMTgwZWFlMTNmMzVmNTkyMDY0
ODQyMDliYjNmOGUwYWQuLmRhMmU0NjU1ZTA2OTRmN2M1OTNkM2FmMTcxZDYwMGZkMDcwNjYyNWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCkBAIC03
Nyw2ICs3Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKSB7
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyB9
CiAKICAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oQ2FsbEZyYW1l
Kik7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IElzRW52
aXJvbm1lbnRSZWNvcmQgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNW
aXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEpTVmFyaWFibGVPYmpl
Y3Q6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheS5jcHAKaW5kZXggMTg1ZDdhZWI2YmZjNDUyOTE2YmJmZWJiMTcxMDRk
YjA3Njc1ZDkzMi4uNGIwY2FhMjIxNjgyZjZjNjhhNjA1ZThhZjllNTQwNjY1OGMwMzJjYSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKQEAgLTEzNCwxOSArMTM0
LDYgQEAgSlNBcnJheTo6SlNBcnJheShWUHRyU3RlYWxpbmdIYWNrVHlwZSkKIEpTQXJyYXk6OkpT
QXJyYXkoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAg
ICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogewotICAgIGZpbmlz
aENyZWF0aW9uKGdsb2JhbERhdGEpOwotfQotCi1KU0FycmF5OjpKU0FycmF5KEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVuc2lnbmVkIGluaXRpYWxMZW5n
dGgsIEFycmF5Q3JlYXRpb25Nb2RlIGNyZWF0aW9uTW9kZSkKLSAgICA6IEpTTm9uRmluYWxPYmpl
Y3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQotewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERh
dGEsIGluaXRpYWxMZW5ndGgsIGNyZWF0aW9uTW9kZSk7Ci19Ci0KLUpTQXJyYXk6OkpTQXJyYXko
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgQXJn
TGlzdCYgbGlzdCkKLSAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJl
KQotewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGxpc3QpOwogfQogCiB2b2lkIEpT
QXJyYXk6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAppbmRleCBlOGUxZmE5MmQ1ZmQ0MDE5MzFlNzgy
MzVkMzI2NTQxMzlkNjZkZmU2Li5iYTJlMTdjZWFjOTk4ZjAzZDdjYWIwNTliMzk5ZDg0OWMxMzUy
OTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCkBAIC02Miw4ICs2
Miw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBleHBsaWNp
dCBKU0FycmF5KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSopOwotICAgICAgICBKU0FycmF5KEpT
R2xvYmFsRGF0YSYsIFN0cnVjdHVyZSosIHVuc2lnbmVkIGluaXRpYWxMZW5ndGgsIEFycmF5Q3Jl
YXRpb25Nb2RlKTsKLSAgICAgICAgSlNBcnJheShKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqLCBj
b25zdCBBcmdMaXN0JiBpbml0aWFsVmFsdWVzKTsKIAogICAgICAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEpTR2xvYmFsRGF0YSYpOwogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
RGF0YSYsIHVuc2lnbmVkIGluaXRpYWxMZW5ndGgsIEFycmF5Q3JlYXRpb25Nb2RlKTsKQEAgLTc3
LDE5ICs3NSwyNSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgSlNBcnJheSog
Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0FycmF5Pihn
bG9iYWxEYXRhLmhlYXApKSBKU0FycmF5KGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7CisgICAgICAg
ICAgICBKU0FycmF5KiBhcnJheSA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTQXJyYXk+KGdsb2JhbERh
dGEuaGVhcCkpIEpTQXJyYXkoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIGFy
cmF5LT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKKyAgICAgICAgICAgIHJldHVybiBhcnJh
eTsKICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICBzdGF0aWMgSlNBcnJheSogY3JlYXRl
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVuc2lnbmVk
IGluaXRpYWxMZW5ndGgsIEFycmF5Q3JlYXRpb25Nb2RlIGNyZWF0ZU1vZGUpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0FycmF5PihnbG9iYWxEYXRh
LmhlYXApKSBKU0FycmF5KGdsb2JhbERhdGEsIHN0cnVjdHVyZSwgaW5pdGlhbExlbmd0aCwgY3Jl
YXRlTW9kZSk7CisgICAgICAgICAgICBKU0FycmF5KiBhcnJheSA9IG5ldyAoYWxsb2NhdGVDZWxs
PEpTQXJyYXk+KGdsb2JhbERhdGEuaGVhcCkpIEpTQXJyYXkoZ2xvYmFsRGF0YSwgc3RydWN0dXJl
KTsKKyAgICAgICAgICAgIGFycmF5LT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBpbml0aWFs
TGVuZ3RoLCBjcmVhdGVNb2RlKTsKKyAgICAgICAgICAgIHJldHVybiBhcnJheTsKICAgICAgICAg
fQotICAgICAgICAKKwogICAgICAgICBzdGF0aWMgSlNBcnJheSogY3JlYXRlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IEFyZ0xpc3QmIGluaXRp
YWxWYWx1ZXMpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2Vs
bDxKU0FycmF5PihnbG9iYWxEYXRhLmhlYXApKSBKU0FycmF5KGdsb2JhbERhdGEsIHN0cnVjdHVy
ZSwgaW5pdGlhbFZhbHVlcyk7CisgICAgICAgICAgICBKU0FycmF5KiBhcnJheSA9IG5ldyAoYWxs
b2NhdGVDZWxsPEpTQXJyYXk+KGdsb2JhbERhdGEuaGVhcCkpIEpTQXJyYXkoZ2xvYmFsRGF0YSwg
c3RydWN0dXJlKTsKKyAgICAgICAgICAgIGFycmF5LT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRh
LCBpbml0aWFsVmFsdWVzKTsKKyAgICAgICAgICAgIHJldHVybiBhcnJheTsKICAgICAgICAgfQot
ICAgICAgICAKKwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlEZXNjcmlwdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0J5dGVBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5
dGVBcnJheS5jcHAKaW5kZXggYmJlNzYzMmEyZTIxYTM5OTdkNDczNWVmNjZjZDFkM2Y3NjcxYTA3
OS4uNGVlNjU0YzBmMzI5MTMzZTE0OWFkOWNlZGY1MmNlOTJjZTFkNWExOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcApAQCAtMzksMTQgKzM5LDgg
QEAgSlNCeXRlQXJyYXk6OkpTQnl0ZUFycmF5KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEJ5dGVBcnJheSogc3RvcmEKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiAgICAgLCBtX3N0b3JhZ2Uoc3RvcmFnZSkKIHsKLSAg
ICBmaW5pc2hDcmVhdGlvbihleGVjKTsKIH0KICAgICAgICAgCi1KU0J5dGVBcnJheSogSlNCeXRl
QXJyYXk6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBCeXRl
QXJyYXkqIHN0b3JhZ2UpCi17Ci0gICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEpTQnl0ZUFy
cmF5PigqZXhlYy0+aGVhcCgpKSkgSlNCeXRlQXJyYXkoZXhlYywgc3RydWN0dXJlLCBzdG9yYWdl
KTsKLX0KLQogI2lmICFBU1NFUlRfRElTQUJMRUQKIEpTQnl0ZUFycmF5Ojp+SlNCeXRlQXJyYXko
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJy
YXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKaW5kZXgg
MjhlYmQ3ZDBmNThlY2I0NGFhMmIxNmU3MDQ2ZDQ4ZDkzMjRhZTExZC4uYjIxZDM3MTI1NDFmN2I5
NGVlM2E5M2Q0N2EzZWQyOWJlNjM2N2EzOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0J5dGVBcnJheS5oCkBAIC03OSw3ICs3OSwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgSlNCeXRlQXJyYXkoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgQnl0ZUFycmF5KiBzdG9y
YWdlKTsKICAgICAgICAgCiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgSlNCeXRlQXJyYXkq
IGNyZWF0ZShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCBCeXRlQXJyYXkqKTsKKyAgICAgICAgc3Rh
dGljIEpTQnl0ZUFycmF5KiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgQnl0ZUFycmF5KiBzdG9yYWdlKQorICAgICAgICB7CisgICAgICAgICAgICBKU0J5dGVB
cnJheSogYXJyYXkgPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0J5dGVBcnJheT4oKmV4ZWMtPmhlYXAo
KSkpIEpTQnl0ZUFycmF5KGV4ZWMsIHN0cnVjdHVyZSwgc3RvcmFnZSk7CisgICAgICAgICAgICBh
cnJheS0+ZmluaXNoQ3JlYXRpb24oZXhlYyk7CisgICAgICAgICAgICByZXR1cm4gYXJyYXk7Cisg
ICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNH
bG9iYWxEYXRhJiwgSlNWYWx1ZSBwcm90b3R5cGUsIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiA9ICZz
X2RlZmF1bHRJbmZvKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0
aW9uLmNwcAppbmRleCA0OTlhZWI2ZDI3NDhjMjk0MDg5MGJjMmJiYzdkZDhkYTg2NGViZWVkLi5k
YWY0Y2E5NTgyOTdmMzE4N2M3YTZjY2NjZjQzOTYwNTgwYzhlY2RkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtNjEsMjEgKzYxLDExIEBAIEpT
RnVuY3Rpb246OkpTRnVuY3Rpb24oVlB0clN0ZWFsaW5nSGFja1R5cGUpCiB7CiB9CiAKLUpTRnVu
Y3Rpb246OkpTRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmll
ciYgbmFtZSwgTmF0aXZlRXhlY3V0YWJsZSogdGh1bmspCitKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9u
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogICAgICwg
bV9leGVjdXRhYmxlKCkKICAgICAsIG1fc2NvcGVDaGFpbihleGVjLT5nbG9iYWxEYXRhKCksIHRo
aXMsIGdsb2JhbE9iamVjdC0+Z2xvYmFsU2NvcGVDaGFpbigpKQogewotICAgIGNvbnN0cnVjdG9y
Qm9keShleGVjLCBsZW5ndGgsIG5hbWUsIHRodW5rKTsKLX0KLQotSlNGdW5jdGlvbjo6SlNGdW5j
dGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBOYXRp
dmVGdW5jdGlvbiBmdW5jKQotICAgIDogQmFzZShnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKLSAg
ICAsIG1fZXhlY3V0YWJsZSgpCi0gICAgLCBtX3Njb3BlQ2hhaW4oZXhlYy0+Z2xvYmFsRGF0YSgp
LCB0aGlzLCBnbG9iYWxPYmplY3QtPmdsb2JhbFNjb3BlQ2hhaW4oKSkKLXsKLSAgICAvLyBDYW4n
dCBkbyB0aGlzIGR1cmluZyBpbml0aWFsaXphdGlvbiBiZWNhdXNlIGdldEhvc3RGdW5jdGlvbiBt
aWdodCBkbyBhIEdDIGFsbG9jYXRpb24uCi0gICAgY29uc3RydWN0b3JCb2R5KGV4ZWMsIGxlbmd0
aCwgbmFtZSwgIGV4ZWMtPmdsb2JhbERhdGEoKS5nZXRIb3N0RnVuY3Rpb24oZnVuYykpOwogfQog
CiBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgRnVuY3Rpb25FeGVjdXRh
YmxlKiBleGVjdXRhYmxlLCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbk5vZGUpCkBAIC04Mywx
OSArNzMsMjUgQEAgSlNGdW5jdGlvbjo6SlNGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEZ1bmN0
aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgU2NvcGVDaGEKICAgICAsIG1fZXhlY3V0YWJsZShl
eGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIGV4ZWN1dGFibGUpCiAgICAgLCBtX3Njb3BlQ2hhaW4o
ZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBzY29wZUNoYWluTm9kZSkKIHsKLSAgICBBU1NFUlQo
aW5oZXJpdHMoJnNfaW5mbykpOwotICAgIHNldFN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCks
IHNjb3BlQ2hhaW5Ob2RlLT5nbG9iYWxPYmplY3QtPm5hbWVkRnVuY3Rpb25TdHJ1Y3R1cmUoKSk7
Ci0gICAgcHV0RGlyZWN0T2Zmc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgc2NvcGVDaGFpbk5vZGUt
Pmdsb2JhbE9iamVjdC0+ZnVuY3Rpb25OYW1lT2Zmc2V0KCksIGV4ZWN1dGFibGUtPm5hbWVWYWx1
ZSgpKTsKIH0KIAotaW5saW5lIHZvaWQgSlNGdW5jdGlvbjo6Y29uc3RydWN0b3JCb2R5KEV4ZWNT
dGF0ZSogZXhlYywgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgRXhlY3V0YWJs
ZUJhc2UqIGV4ZWN1dGFibGUpCit2b2lkIEpTRnVuY3Rpb246OmZpbmlzaENyZWF0aW9uKEV4ZWNT
dGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50IGxlbmd0aCwgY29u
c3QgSWRlbnRpZmllciYgbmFtZSwgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUpCiB7CisgICAg
QmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9i
amVjdCk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAgICBtX2V4ZWN1dGFibGUu
c2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgZXhlY3V0YWJsZSk7CiAgICAgcHV0RGlyZWN0
KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+Z2xvYmFsRGF0YSgpLnByb3BlcnR5TmFtZXMtPm5h
bWUsIGpzU3RyaW5nKGV4ZWMsIG5hbWUuaXNOdWxsKCkgPyAiIiA6IG5hbWUudXN0cmluZygpKSwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdChleGVjLT5n
bG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKGxlbmd0
aCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKIH0KIAordm9pZCBKU0Z1bmN0
aW9uOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgU2NvcGVDaGFpbk5vZGUq
IHNjb3BlQ2hhaW5Ob2RlKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVj
dC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOworICAgIEFTU0VSVChpbmhlcml0cygmc19p
bmZvKSk7CisgICAgc2V0U3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgc2NvcGVDaGFpbk5v
ZGUtPmdsb2JhbE9iamVjdC0+bmFtZWRGdW5jdGlvblN0cnVjdHVyZSgpKTsKKyAgICBwdXREaXJl
Y3RPZmZzZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzY29wZUNoYWluTm9kZS0+Z2xvYmFsT2JqZWN0
LT5mdW5jdGlvbk5hbWVPZmZzZXQoKSwgZXhlY3V0YWJsZS0+bmFtZVZhbHVlKCkpOworfQorCiBK
U0Z1bmN0aW9uOjp+SlNGdW5jdGlvbigpCiB7CiAgICAgQVNTRVJUKHZwdHIoKSA9PSBKU0dsb2Jh
bERhdGE6OmpzRnVuY3Rpb25WUHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uaAppbmRleCA4YjczYjBiZTJmMmEyOTk3ZDkwOTA2MDEyOTczMGQwZGY1MGEwZGQ3
Li41NTkzYjhhYWJiNzAwZThkOTUxODg5NTZlN2Y2YjJhMzcyZTBjZDI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCkBAIC00NiwyNCArNDYsMzMgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBERkc6OkpJVENvZGVHZW5lcmF0b3I7
CiAgICAgICAgIGZyaWVuZCBjbGFzcyBKU0dsb2JhbERhdGE7CiAKLSAgICAgICAgSlNGdW5jdGlv
bihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGludCBsZW5ndGgsIGNv
bnN0IElkZW50aWZpZXImLCBOYXRpdmVGdW5jdGlvbik7Ci0gICAgICAgIEpTRnVuY3Rpb24oRXhl
Y1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnQgbGVuZ3RoLCBjb25zdCBJ
ZGVudGlmaWVyJiwgTmF0aXZlRXhlY3V0YWJsZSopOworICAgICAgICBKU0Z1bmN0aW9uKEV4ZWNT
dGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CiAgICAgICAgIEpTRnVuY3Rpb24o
RXhlY1N0YXRlKiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgU2NvcGVDaGFpbk5vZGUqKTsKICAgICAg
ICAgCiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dCBCYXNlOwogCi0gICAgICAgIHN0YXRpYyBKU0Z1bmN0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
aW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIE5hdGl2ZUZ1bmN0aW9uIG5hdGl2
ZUZ1bmMpCisgICAgICAgIHN0YXRpYyBKU0Z1bmN0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVj
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50
IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgTmF0aXZlRnVuY3Rpb24gbmF0aXZlRnVu
Y3Rpb24pCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxK
U0Z1bmN0aW9uPigqZXhlYy0+aGVhcCgpKSkgSlNGdW5jdGlvbihleGVjLCBnbG9iYWxPYmplY3Qs
IHN0cnVjdHVyZSwgbGVuZ3RoLCBpZGVudCwgbmF0aXZlRnVuYyk7CisgICAgICAgICAgICBFeGVj
dXRhYmxlQmFzZSogZXhlY3V0YWJsZSA9IChFeGVjdXRhYmxlQmFzZSopZXhlYy0+Z2xvYmFsRGF0
YSgpLmdldEhvc3RGdW5jdGlvbihuYXRpdmVGdW5jdGlvbik7CisgICAgICAgICAgICBKU0Z1bmN0
aW9uKiBmdW5jdGlvbiA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTRnVuY3Rpb24+KCpleGVjLT5oZWFw
KCkpKSBKU0Z1bmN0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKKyAgICAgICAg
ICAgIC8vIENhbid0IGRvIHRoaXMgZHVyaW5nIGluaXRpYWxpemF0aW9uIGJlY2F1c2UgZ2V0SG9z
dEZ1bmN0aW9uIG1pZ2h0IGRvIGEgR0MgYWxsb2NhdGlvbi4KKyAgICAgICAgICAgIGZ1bmN0aW9u
LT5maW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIGxlbmd0aCwgbmFtZSwgZXhlY3V0
YWJsZSk7CisgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb247CiAgICAgICAgIH0KLSAgICAgICAg
c3RhdGljIEpTRnVuY3Rpb24qIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQgbGVuZ3RoLCBjb25zdCBJ
ZGVudGlmaWVyJiBpZGVudCwgTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlYykKKworICAgICAg
ICBzdGF0aWMgSlNGdW5jdGlvbiogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludCBsZW5ndGgsIGNvbnN0
IElkZW50aWZpZXImIG5hbWUsIE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0Z1bmN0aW9u
PigqZXhlYy0+aGVhcCgpKSkgSlNGdW5jdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVy
ZSwgbGVuZ3RoLCBpZGVudCwgbmF0aXZlRXhlYyk7CisgICAgICAgICAgICBKU0Z1bmN0aW9uKiBm
dW5jdGlvbiA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTRnVuY3Rpb24+KCpleGVjLT5oZWFwKCkpKSBK
U0Z1bmN0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIGZ1
bmN0aW9uLT5maW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIGxlbmd0aCwgbmFtZSwg
KEV4ZWN1dGFibGVCYXNlKiluYXRpdmVFeGVjdXRhYmxlKTsKKyAgICAgICAgICAgIHJldHVybiBm
dW5jdGlvbjsKICAgICAgICAgfQotICAgICAgICBzdGF0aWMgSlNGdW5jdGlvbiogY3JlYXRlKEV4
ZWNTdGF0ZSogZXhlYywgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jRXhlYywgU2NvcGVDaGFpbk5v
ZGUqIHNjb3BlQ2hhaW4pCisKKyAgICAgICAgc3RhdGljIEpTRnVuY3Rpb24qIGNyZWF0ZShFeGVj
U3RhdGUqIGV4ZWMsIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgU2NvcGVDaGFpbk5v
ZGUqIHNjb3BlQ2hhaW4pCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9j
YXRlQ2VsbDxKU0Z1bmN0aW9uPigqZXhlYy0+aGVhcCgpKSkgSlNGdW5jdGlvbihleGVjLCBmdW5j
RXhlYywgc2NvcGVDaGFpbik7CisgICAgICAgICAgICBKU0Z1bmN0aW9uKiBmdW5jdGlvbiA9IG5l
dyAoYWxsb2NhdGVDZWxsPEpTRnVuY3Rpb24+KCpleGVjLT5oZWFwKCkpKSBKU0Z1bmN0aW9uKGV4
ZWMsIGV4ZWN1dGFibGUsIHNjb3BlQ2hhaW4pOworICAgICAgICAgICAgZnVuY3Rpb24tPmZpbmlz
aENyZWF0aW9uKGV4ZWMsIHNjb3BlQ2hhaW4tPmdsb2JhbE9iamVjdC5nZXQoKSwgZXhlY3V0YWJs
ZSwgc2NvcGVDaGFpbik7CisgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb247CiAgICAgICAgIH0K
ICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgfkpTRnVuY3Rpb24oKTsKQEAgLTEyMyw3ICsxMzIs
OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIGNvbnN0IHN0YXRp
YyB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlk
ZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCi0gICAgICAg
IHZvaWQgY29uc3RydWN0b3JCb2R5KEV4ZWNTdGF0ZSosIGludCBsZW5ndGgsIGNvbnN0IElkZW50
aWZpZXImIG5hbWUsIEV4ZWN1dGFibGVCYXNlKik7CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlm
aWVyJiBuYW1lLCBFeGVjdXRhYmxlQmFzZSopOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9u
KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgU2NvcGVD
aGFpbk5vZGUqKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGV4cGxpY2l0IEpTRnVuY3Rpb24o
VlB0clN0ZWFsaW5nSGFja1R5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggYzIzMGQ3MDJiNTNmZDE3ZTVlNWRiZTIxNDI5YjAxOGY5
MTEwMmQxYy4uODVjNDI5NjYzMWFlM2U2M2Q5MzgwMzVlYTcwODAwNGJmY2VlMDczMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xNTks
NyArMTU5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAsIG1fd2Vha1JhbmRvbShz
dGF0aWNfY2FzdDx1bnNpZ25lZD4ocmFuZG9tTnVtYmVyKCkgKiAoc3RkOjpudW1lcmljX2xpbWl0
czx1bnNpZ25lZD46Om1heCgpICsgMS4wKSkpCiAgICAgICAgICAgICAsIG1fZXZhbEVuYWJsZWQo
dHJ1ZSkKICAgICAgICAgewotICAgICAgICAgICAgY29uc3RydWN0b3JCb2R5KHRoaXMpOworICAg
ICAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgdGhpcyk7CiAgICAgICAgIH0KIAog
ICAgICAgICBKU0dsb2JhbE9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBKU09iamVjdCogdGhpc1ZhbHVlKQpAQCAtMTY5LDExICsxNjksMTIgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAsIG1fd2Vha1JhbmRvbShzdGF0aWNfY2FzdDx1
bnNpZ25lZD4ocmFuZG9tTnVtYmVyKCkgKiAoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46
Om1heCgpICsgMS4wKSkpCiAgICAgICAgICAgICAsIG1fZXZhbEVuYWJsZWQodHJ1ZSkKICAgICAg
ICAgewotICAgICAgICAgICAgY29uc3RydWN0b3JCb2R5KHRoaXNWYWx1ZSk7CisgICAgICAgICAg
ICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCB0aGlzVmFsdWUpOwogICAgICAgICB9CiAKLSAg
ICAgICAgdm9pZCBjb25zdHJ1Y3RvckJvZHkoSlNPYmplY3QqIHRoaXNWYWx1ZSkKKyAgICAgICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTT2JqZWN0KiB0
aGlzVmFsdWUpCiAgICAgICAgIHsKKyAgICAgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGds
b2JhbERhdGEpOwogICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoSlNHbG9iYWxPYmplY3Q6OkFu
b255bW91c1Nsb3RDb3VudCA9PSAxLCBKU0dsb2JhbE9iamVjdF9oYXNfb25seV9hX3NpbmdsZV9z
bG90KTsKICAgICAgICAgICAgIHB1dFRoaXNUb0Fub255bW91c1ZhbHVlKDApOwogICAgICAgICAg
ICAgaW5pdCh0aGlzVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNOb3RBbk9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNO
b3RBbk9iamVjdC5oCmluZGV4IDY3ZmRhMDUwYTYyODhkNzBhOTQyOThjZTAyYTcyNmQ4MjhlMjMy
MWQuLjEzMWJhYTdhZjMyMTI3M2M3ZGJlMDIwMTZjM2Y3ZjQwM2M1OTM0ZDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKQEAgLTQxLDcgKzQxLDYg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTTm90QW5PYmplY3QoRXhlY1N0YXRlKiBleGVj
KQogICAgICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhl
Yy0+Z2xvYmFsRGF0YSgpLm5vdEFuT2JqZWN0U3RydWN0dXJlLmdldCgpKQogICAgICAgICB7Ci0g
ICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOwogICAgICAgICB9
CiAgICAgICAgIAogICAgIHB1YmxpYzoKQEAgLTQ5LDcgKzQ4LDkgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKICAgICAgICAgc3RhdGljIEpTTm90QW5PYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU05vdEFu
T2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgSlNOb3RBbk9iamVjdChleGVjKTsKKyAgICAgICAgICAg
IEpTTm90QW5PYmplY3QqIG9iamVjdCA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTTm90QW5PYmplY3Q+
KCpleGVjLT5oZWFwKCkpKSBKU05vdEFuT2JqZWN0KGV4ZWMpOworICAgICAgICAgICAgb2JqZWN0
LT5maW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOworICAgICAgICAgICAgcmV0dXJu
IG9iamVjdDsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRleCAwNWJkZTI4
MTlhMDZmOTE0OTQ4MjA5YmU0M2QzMzY4YzkwNGUwZjI4Li4xNzMxNTJiMjkxOTNkZjIwMjQ1ODEy
Mzc2NzY4ZmJkODlkZTczNjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09OT2JqZWN0LmNwcApAQCAtNTYsNiArNTYsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiBKU09OT2Jq
ZWN0OjpKU09OT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSog
c3RydWN0dXJlKQogICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwg
c3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7Cit9CisKK3Zv
aWQgSlNPTk9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEo
KSwgZ2xvYmFsT2JqZWN0KTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKaW5kZXggNzdiZjQzNjk5
MTFiNmVjNDBiMzBhY2Q4MzQyNzNlZGMzOTkzNWVhYS4uNDgwZTc0YmRiODM0OTM2YmQyOWY3MmU2
YWNkZTI0NjE3ZGU2YTVmMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPTk9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05P
YmplY3QuaApAQCAtNDksNiArNDksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGlj
IGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKICAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNP
YmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuY3Bw
CmluZGV4IDg4NTUzMGYxMGY3OTkwMWRmZjY0ODQzYTc0MzQzMDQ4OGY1ZjdhNGYuLmFlNzAzODA4
YjBmYjQ1NGY1NWY1NDAzZjA2MTk5YjEzNzNlMGIyYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcApA
QCAtMzMsMTMgKzMzLDExIEBAIG5hbWVzcGFjZSBKU0MgewogSlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0OjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbE9i
amVjdC0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xv
YmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CiB9CiAKLUpTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdDo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCitKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNO
b25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiB7Ci0gICAgZmluaXNoQ3JlYXRp
b24oZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0KTsKIH0KIAogdm9pZCBKU09iamVjdFdpdGhHbG9i
YWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKQEAgLTUwLDcgKzQ4LDcgQEAgdm9pZCBKU09iamVjdFdp
dGhHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNHbG9iYWwKICAgICBpZiAoIWdsb2JhbE9iamVjdCkKICAgICAgICAgY2xlYXJBbm9ueW1vdXNW
YWx1ZShHbG9iYWxPYmplY3RTbG90KTsKICAgICBlbHNlCi0gICAgICAgIHB1dEFub255bW91c1Zh
bHVlKGdsb2JhbERhdGEsIEdsb2JhbE9iamVjdFNsb3QsIGdsb2JhbE9iamVjdCk7CisgICAgICAg
IHB1dEFub255bW91c1ZhbHVlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBHbG9iYWxPYmpl
Y3RTbG90LCBnbG9iYWxPYmplY3QpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0LmgKaW5kZXggMTMwZTA3ZDY5MDUyZmQyMWZiMmE3MjZmMTIyODE3YzhhNzZmYmM4OC4uMzc5
ODQ4YjY1NDM2NDU0OTFiNzJhNDVhYTFjYTU3YzU0MWIyZTI2NyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgK
QEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgSlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7Ci0gICAgSlNPYmplY3RX
aXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYsIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
Kik7CisgICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVy
ZSopOwogCiAgICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KFZQdHJTdGVhbGluZ0hhY2tUeXBl
KQogICAgICAgICA6IEpTTm9uRmluYWxPYmplY3QoVlB0clN0ZWFsaW5nSGFjaykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaAppbmRl
eCBiMTE5M2ZkYmRlZmVmYWUyMWZmNWY0Y2M0MzFkMzQyNDljZTZhOGFjLi4yOWE0Y2FlOTE0N2E1
NzczMmI4YmZhODExODI3ODQ5MTM5M2JlMWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCkBAIC0zNCw5ICszNCw5IEBAIG5h
bWVzcGFjZSBKU0N7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpTVmFyaWFibGVPYmpl
Y3QgQmFzZTsKIAotICAgICAgICBzdGF0aWMgSlNTdGF0aWNTY29wZU9iamVjdCogY3JlYXRlKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIEpTVmFsdWUgdmFsdWUsIHVu
c2lnbmVkIGF0dHJpYnV0ZXMpCisgICAgICAgIHN0YXRpYyBKU1N0YXRpY1Njb3BlT2JqZWN0KiBj
cmVhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBKU1Zh
bHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQogICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SlNTdGF0aWNTY29wZU9iamVjdD4oKmV4ZWMtPmhlYXAo
KSkpIEpTU3RhdGljU2NvcGVPYmplY3QoZXhlYywgaWRlbnQsIHZhbHVlLCBhdHRyaWJ1dGVzKTsK
KyAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU1N0YXRpY1Njb3BlT2JqZWN0
PigqZXhlYy0+aGVhcCgpKSkgSlNTdGF0aWNTY29wZU9iamVjdChleGVjLCBpZGVudGlmaWVyLCB2
YWx1ZSwgYXR0cmlidXRlcyk7CiAgICAgICAgIH0KIAogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlz
aXRDaGlsZHJlbihTbG90VmlzaXRvciYpOwpAQCAtNTAsMTQgKzUwLDE5IEBAIG5hbWVzcGFjZSBK
U0N7CiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IH0KIAogICAgIHByb3RlY3RlZDoKKyAgICAg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IGlkZW50aWZpZXIsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCisgICAgICAg
IHsKKyAgICAgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7
CisgICAgICAgICAgICBtX3JlZ2lzdGVyU3RvcmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhp
cywgdmFsdWUpOworICAgICAgICAgICAgc3ltYm9sVGFibGUoKS5hZGQoaWRlbnRpZmllci5pbXBs
KCksIFN5bWJvbFRhYmxlRW50cnkoLTEsIGF0dHJpYnV0ZXMpKTsKKyAgICAgICAgfQogICAgICAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBJc0Vudmlyb25tZW50UmVj
b3JkIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJl
biB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU1ZhcmlhYmxlT2JqZWN0OjpTdHJ1Y3R1
cmVGbGFnczsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEpTU3RhdGljU2NvcGVPYmplY3QoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgSlNWYWx1ZSB2YWx1ZSwgdW5z
aWduZWQgYXR0cmlidXRlcykKKyAgICAgICAgSlNTdGF0aWNTY29wZU9iamVjdChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEpTVmFsdWUgdmFsdWUsIHVuc2ln
bmVkIGF0dHJpYnV0ZXMpCiAgICAgICAgICAgICA6IEpTVmFyaWFibGVPYmplY3QoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBleGVjLT5nbG9iYWxEYXRhKCkuc3RhdGljU2NvcGVTdHJ1Y3R1cmUuZ2V0KCks
ICZtX3N5bWJvbFRhYmxlLCByZWludGVycHJldF9jYXN0PFJlZ2lzdGVyKj4oJm1fcmVnaXN0ZXJT
dG9yZSArIDEpKQogICAgICAgICB7Ci0gICAgICAgICAgICBtX3JlZ2lzdGVyU3RvcmUuc2V0KGV4
ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgdmFsdWUpOwotICAgICAgICAgICAgc3ltYm9sVGFibGUo
KS5hZGQoaWRlbnQuaW1wbCgpLCBTeW1ib2xUYWJsZUVudHJ5KC0xLCBhdHRyaWJ1dGVzKSk7Cisg
ICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSwgYXR0cmli
dXRlcyk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIFN5bWJvbFRhYmxlIG1fc3ltYm9s
VGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Zhcmlh
YmxlT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2Jq
ZWN0LmgKaW5kZXggZjcxZWQzMDk5NDliMzEyMzRhZGFmYzg4ZThhNjRhNTg2OTUyOTIwMC4uM2Yx
MTg0YjlkZDg4NDY2MzMwNDExODlhZmM1YjdjZTEwMTFkOGJmNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaApAQCAtNzQsNyArNzQsNiBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgICwgbV9zeW1ib2xUYWJsZShzeW1ib2xUYWJs
ZSkKICAgICAgICAgICAgICwgbV9yZWdpc3RlcnMocmVpbnRlcnByZXRfY2FzdDxXcml0ZUJhcnJp
ZXI8VW5rbm93bj4qPihyZWdpc3RlcnMpKQogICAgICAgICB7Ci0gICAgICAgICAgICBmaW5pc2hD
cmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaAppbmRleCAzYjQzODMxMjQzOGRiYzczZTA4NjA3
YWUzYjZmMGZmNDllMWFlZGJhLi4zZTU4OWYyNzE0M2UyNGQ3MDlkYjE2MGVmOGVhMTViN2U2MDY2
ZThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJP
YmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmpl
Y3QuaApAQCAtNTMsNyArNTMsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBpbmxpbmUgSlNXcmFw
cGVyT2JqZWN0OjpKU1dyYXBwZXJPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEs
IHN0cnVjdHVyZSkKICAgICB7Ci0gICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwog
ICAgIH0KIAogICAgIGlubGluZSBKU1ZhbHVlIEpTV3JhcHBlck9iamVjdDo6aW50ZXJuYWxWYWx1
ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRo
T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3Bw
CmluZGV4IGU0YzRiNWJlYzhkZDFmOWI4NGU0ZWY3YjE2YTkyZjU5MGI1NzcyMTkuLjVlYzU2YTM2
ZTczNzU1OWEzMGRmYjEyMDhhMGMxM2NlYmE5ODdiNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCkBAIC04Nyw2ICs4NywxMiBAQCBjb25zdCBDbGFz
c0luZm8gTWF0aE9iamVjdDo6c19pbmZvID0geyAiTWF0aCIsICZKU09iamVjdFdpdGhHbG9iYWxP
YmplY3Q6OnNfaW5mbwogTWF0aE9iamVjdDo6TWF0aE9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDog
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogeworICAg
IGZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgTWF0aE9iamVj
dDo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFs
RGF0YSgpLCBnbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAK
ICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIElkZW50
aWZpZXIoZXhlYywgIkUiKSwganNOdW1iZXIoZXhwKDEuMCkpLCBEb250RGVsZXRlIHwgRG9udEVu
dW0gfCBSZWFkT25seSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9NYXRoT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0
LmgKaW5kZXggOWNmYThkMDI3ZGUzY2Y4NmQyZDMyNjA3MDdmZTk3YWRlMjZhNTFmNC4uN2ZiZWQ5
MGJmYmQyY2IxMTVhZDg1MjRmZTQzZWQ3YTRmNjBhZTI4YSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaApAQCAtNDcsNiArNDcsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgorICAgICAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0Kik7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpT
T2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcAppbmRleCAxMzk0NWM3NTBlMjViNTY1NWUxNWFm
YjZmNzA2YTE2ZDE3NDQ0NWMwLi4yMjY3NmQwZmZhOGNjNzQ2YWQxNmQ2ZTQyOGYzYmM4Y2Q3MGQ3
NjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5j
cHAKQEAgLTM0LDYgKzM0LDEyIEBAIGNvbnN0IENsYXNzSW5mbyBOdW1iZXJPYmplY3Q6OnNfaW5m
byA9IHsgIk51bWJlciIsICZKU1dyYXBwZXJPYmplY3Q6OnNfaW5mbywgMCwKIE51bWJlck9iamVj
dDo6TnVtYmVyT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUpCiAgICAgOiBKU1dyYXBwZXJPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogewor
ICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOworfQorCit2b2lkIE51bWJlck9iamVjdDo6
ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQoreworICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9i
amVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmgKaW5k
ZXggN2FjODFkNjM4YTUxMWVmODY1YzIwZjg1MzEzMGI5MGI2MWNhYWUwYi4uOTAxZjVlYjRiMGYz
YjU0MTdmZGM5OWQyMjVlZWEyZjcxMzQ1MjFmYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVtYmVyT2JqZWN0LmgKQEAgLTI4LDYgKzI4LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgY2xhc3MgTnVtYmVyT2JqZWN0IDogcHVibGljIEpTV3JhcHBlck9iamVjdCB7CiAgICAg
cHJvdGVjdGVkOgogICAgICAgICBOdW1iZXJPYmplY3QoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJl
Kik7CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJik7CiAKICAgICBw
dWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSlNXcmFwcGVyT2JqZWN0IEJhc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAppbmRleCAwODdj
ZDI2MGNmNTVkM2YxNWIzMzY1MjUzNmE1NmJiNzc0MDE3OTlkLi41MDg5YTVmZmRiZjc3M2QwZmY3
ZTg2OTkyMTM1ZDU1NWFhMjk1NzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKQEAgLTYzLDExICs2MywxMCBAQCBjb25zdCBDbGFz
c0luZm8gT2JqZWN0UHJvdG90eXBlOjpzX2luZm8gPSB7ICJPYmplY3QiLCAmSlNOb25GaW5hbE9i
amVjdDo6c19pbmZvLAogCiBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKE9iamVjdFByb3RvdHlw
ZSk7CiAKLU9iamVjdFByb3RvdHlwZTo6T2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHVjdHVyZSkKK09iamVj
dFByb3RvdHlwZTo6T2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBz
dHVjdHVyZSkKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHVj
dHVyZSkKICAgICAsIG1faGFzTm9Qcm9wZXJ0aWVzV2l0aFVJbnQzMk5hbWVzKHRydWUpCiB7Ci0g
ICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogfQog
CiB2b2lkIE9iamVjdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAppbmRleCAwYTJjOGZkNDhlZTdkNDlk
ZWFiZjkxYmVlMDU4NjBiMmZlOTNkYTMxLi41ODRhYzMwZGZjYTI0NzYwODcwMGRjMDZlN2ZhYWRk
NDExZGZmODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmpl
Y3RQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQ
cm90b3R5cGUuaApAQCAtMzEsNyArMzEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBz
dGF0aWMgT2JqZWN0UHJvdG90eXBlKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPE9iamVjdFByb3RvdHlwZT4oKmV4ZWMt
PmhlYXAoKSkpIE9iamVjdFByb3RvdHlwZShleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7
CisgICAgICAgICAgICBPYmplY3RQcm90b3R5cGUqIHByb3RvdHlwZSA9IG5ldyAoYWxsb2NhdGVD
ZWxsPE9iamVjdFByb3RvdHlwZT4oKmV4ZWMtPmhlYXAoKSkpIE9iamVjdFByb3RvdHlwZShleGVj
LCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgcHJvdG90eXBlLT5maW5pc2hDcmVhdGlvbihleGVj
LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CisgICAgICAgICAgICByZXR1cm4gcHJvdG90
eXBlOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87
CkBAIC00OCw3ICs1MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKEpTR2xvYmFsRGF0YSYsIEpTR2xvYmFsT2JqZWN0Kik7CiAKICAgICBwcml2YXRlOgot
ICAgICAgICBPYmplY3RQcm90b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmUqKTsKKyAgICAgICAgT2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSop
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90
Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwg
dW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAppbmRleCA0Nzc5YjI1
NmUwNGY1ZGMzYzI1YTZiNmMxNDk0MGMzNjM2ODRlNGQzLi5jOGExMzNiNDI1Njg3MzE1ZmY2ZTgy
MWMwYmEyN2E1N2ExNWEzM2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0xMDksOCArMTA5LDE0IEBAIFJlZ0V4cENv
bnN0cnVjdG9yOjpSZWdFeHBDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplCiB9CiAKIFJlZ0V4cE1hdGNoZXNBcnJheTo6UmVnRXhwTWF0Y2hlc0Fy
cmF5KEV4ZWNTdGF0ZSogZXhlYywgUmVnRXhwQ29uc3RydWN0b3JQcml2YXRlKiBkYXRhKQotICAg
IDogSlNBcnJheShleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KS0+cmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0dXJlKCksIGRhdGEtPmxhc3ROdW1TdWJQYXR0ZXJu
cyArIDEsIENyZWF0ZUluaXRpYWxpemVkKQorICAgIDogSlNBcnJheShleGVjLT5nbG9iYWxEYXRh
KCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0
dXJlKCkpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBkYXRhKTsK
K30KKwordm9pZCBSZWdFeHBNYXRjaGVzQXJyYXk6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgUmVnRXhwQ29uc3RydWN0b3JQcml2YXRlKiBkYXRhKQoreworICAgIEJh
c2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGRhdGEtPmxhc3ROdW1TdWJQYXR0ZXJucyAr
IDEsIENyZWF0ZUluaXRpYWxpemVkKTsKICAgICBSZWdFeHBDb25zdHJ1Y3RvclByaXZhdGUqIGQg
PSBuZXcgUmVnRXhwQ29uc3RydWN0b3JQcml2YXRlOwogICAgIGQtPmlucHV0ID0gZGF0YS0+bGFz
dElucHV0OwogICAgIGQtPmxhc3RJbnB1dCA9IGRhdGEtPmxhc3RJbnB1dDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKaW5kZXggZWQy
MWJjODllNWUyN2QzNjFlNjUzMzllNGQ0M2Q2YTE2ZWFhNGRmMi4uODdkNTljNzE0ZWI1NGRmMjgx
NzNkZmVkZWJkZWQ1NDZmNjUxYzNhYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKQEAgLTM3LDYgKzM3LDkgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIH0KICAgICAgICAgdmlydHVhbCB+UmVnRXhwTWF0Y2hlc0FycmF5KCk7
CiAKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxE
YXRhJiwgUmVnRXhwQ29uc3RydWN0b3JQcml2YXRlKiBkYXRhKTsKKwogICAgIHByaXZhdGU6CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKICAgICAg
ICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAK
aW5kZXggMmMxMjY1NTkyZTg2ODUzNDQ5MjhlYzRkZTExZGZmMTkwMDQxNDI5Ny4uODQxZDkzOTQx
MTdhYjA5MTE3MzhkMGM0ODVlM2ZlNTBiNWExZGQxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCkBAIC02Niw2ICs2NiwxMiBAQCBSZWdFeHBP
YmplY3Q6OlJlZ0V4cE9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgUgogICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9i
amVjdCwgc3RydWN0dXJlKQogICAgICwgZChhZG9wdFB0cihuZXcgUmVnRXhwT2JqZWN0RGF0YShn
bG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgdGhpcywgcmVnRXhwKSkpCiB7CisgICAgZmluaXNo
Q3JlYXRpb24oZ2xvYmFsT2JqZWN0KTsKK30KKwordm9pZCBSZWdFeHBPYmplY3Q6OmZpbmlzaENy
ZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNo
Q3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CiAgICAg
QVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBPYmplY3QuaAppbmRleCA3M2YyMTU0OTI2NzAwNzliNTkzOTJhMjhlNWM2
MTNmM2NkZjBiZTEzLi5iY2U0NTVhZjgxMmY5MWJhYmIyMjYwNzBhZDIwZTllMDQ2ZjI0MTEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaApAQCAtNzQs
NiArNzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgUmVn
RXhwT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgUmVnRXhwKik7CisgICAgICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92
ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6U3Ry
dWN0dXJlRmxhZ3M7CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwCmluZGV4IDk2ZDk0ZDg0ZWFi
YjUyNjA1OTY5N2ZlMzM2ZGFhYjc4MjEzNTRiNTQuLmU2NjZkZWUxNTc5MmI3ZmJlODk3ZTYwZDJj
NTAzZDYyM2I3NmZkODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5jcHAKQEAgLTMxLDcgKzMxLDYgQEAgbmFtZXNwYWNl
IEpTQyB7CiBTdHJpY3RFdmFsQWN0aXZhdGlvbjo6U3RyaWN0RXZhbEFjdGl2YXRpb24oRXhlY1N0
YXRlKiBleGVjKQogICAgIDogSlNOb25GaW5hbE9iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4
ZWMtPmdsb2JhbERhdGEoKS5zdHJpY3RFdmFsQWN0aXZhdGlvblN0cnVjdHVyZS5nZXQoKSkKIHsK
LSAgICBmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOwogfQogCiBib29sIFN0cmlj
dEV2YWxBY3RpdmF0aW9uOjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2
YWxBY3RpdmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFs
QWN0aXZhdGlvbi5oCmluZGV4IDc2OTgxZmRiNDI4OTEzYzY3MDY0MWY4MGI3YmRiMTFiNWYxYWY4
MTQuLjhhYTIyMzRjODdjNTE1OWJlNTlkNjIwYzJhZDgxYTQwZTM5NjhmYjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uaApA
QCAtMzYsNyArMzYsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RyaWN0RXZhbEFjdGl2YXRp
b24qIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChh
bGxvY2F0ZUNlbGw8U3RyaWN0RXZhbEFjdGl2YXRpb24+KCpleGVjLT5oZWFwKCkpKSBTdHJpY3RF
dmFsQWN0aXZhdGlvbihleGVjKTsKKyAgICAgICAgU3RyaWN0RXZhbEFjdGl2YXRpb24qIGFjdGl2
YXRpb24gPSBuZXcgKGFsbG9jYXRlQ2VsbDxTdHJpY3RFdmFsQWN0aXZhdGlvbj4oKmV4ZWMtPmhl
YXAoKSkpIFN0cmljdEV2YWxBY3RpdmF0aW9uKGV4ZWMpOworICAgICAgICBhY3RpdmF0aW9uLT5m
aW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOworICAgICAgICByZXR1cm4gYWN0aXZh
dGlvbjsKICAgICB9CiAKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ09iamVjdC5jcHAKaW5kZXggMWQwYzdhYmY5OGQwODdjMGI1MTdiNTIwMjQ2ZTJhOGVm
ZWIzMDc2Ni4uYjhmYWQ5ZTQ5NzM3N2FjYTc0NTcwMTNjZGEzNzAzYjhmMjcwNTkzMyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCkBAIC0zMiw2
ICszMiwxMiBAQCBjb25zdCBDbGFzc0luZm8gU3RyaW5nT2JqZWN0OjpzX2luZm8gPSB7ICJTdHJp
bmciLCAmSlNXcmFwcGVyT2JqZWN0OjpzX2luZm8sIDAsCiBTdHJpbmdPYmplY3Q6OlN0cmluZ09i
amVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1N0
cmluZyogc3RyaW5nKQogICAgIDogSlNXcmFwcGVyT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVy
ZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBzdHJpbmcpOworfQorCit2b2lk
IFN0cmluZ09iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U1N0cmluZyogc3RyaW5nKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEp
OwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgc2V0SW50ZXJuYWxWYWx1ZShn
bG9iYWxEYXRhLCBzdHJpbmcpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdPYmplY3QuaAppbmRleCA3ZDEzNWMxZTQxMjJmYWU3ZmFmZjE4ZGIyZTFiYTM3ZDc1Y2Q0
NTVmLi4wYjBjMjAwNjQ4YmViZjhhZTY0YjVjNzc5ZDFhNzU2M2MxOTY1YmVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaApAQCAtNjAsNiArNjAsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgorICAgICAgICB2
b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIEpTU3RyaW5nKik7CiAgICAgICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU1dyYXBwZXJPYmplY3Q6OlN0
cnVjdHVyZUZsYWdzOwogICAgICAgICBTdHJpbmdPYmplY3QoSlNHbG9iYWxEYXRhJiwgU3RydWN0
dXJlKiwgSlNTdHJpbmcqKTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRH
bHVlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKaW5kZXggMTBh
Njg2ZGNjNjk4MTBmNmM0ZjVmN2RhMTc3ZTVhZjAwZTRhYmQ3YS4uNzY5ZTQ0MDg5Y2JmMDhiN2Ix
MDY1YTA5MTk3ZmNlYWRjODVlN2FmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjcgQEAKKzIwMTEtMDgtMzAgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxl
LmNvbT4KKworICAgICAgICBVbnppcCBpbml0aWFsaXphdGlvbiBsaXN0cyBhbmQgY29uc3RydWN0
b3JzIGluIEpTQ2VsbCBoaWVyYXJjaHkgKDQvNykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ29tcGxldGVkIHRoZSBmb3VydGggbGV2ZWwgb2YgdGhlIHJl
ZmFjdG9yaW5nIHRvIGFkZCBmaW5pc2hDcmVhdGlvbigpIAorICAgICAgICBtZXRob2RzIHRvIGFs
bCBjbGFzc2VzIHdpdGhpbiB0aGUgSlNDZWxsIGhpZXJhcmNoeSB3aXRoIG5vbi10cml2aWFsIAor
ICAgICAgICBjb25zdHJ1Y3RvciBib2RpZXMuCisKKyAgICAgICAgVGhpcyBwcmltYXJpbHkgY29u
c2lzdHMgb2YgcHVzaGluZyB0aGUgY2FsbHMgdG8gZmluaXNoQ3JlYXRpb24oKSBkb3duIAorICAg
ICAgICBpbnRvIHRoZSBjb25zdHJ1Y3RvcnMgb2YgdGhlIHN1YmNsYXNzZXMgb2YgdGhlIHNlY29u
ZCBsZXZlbCBvZiB0aGUgaGllcmFyY2h5IAorICAgICAgICBhcyB3ZWxsIGFzIHB1bGxpbmcgdGhl
IGZpbmlzaENyZWF0aW9uKCkgY2FsbHMgb3V0IGludG8gdGhlIGNsYXNzJ3MgY29ycmVzcG9uZGlu
ZworICAgICAgICBjcmVhdGUoKSBtZXRob2QgaWYgaXQgaGFzIG9uZS4gIERvaW5nIGJvdGggc2lt
dWx0YW5lb3VzbHkgYWxsb3dzIHVzIHRvIAorICAgICAgICBtYWludGFpbiB0aGUgaW52YXJpYW50
IHRoYXQgdGhlIGZpbmlzaENyZWF0aW9uKCkgbWV0aG9kIGNoYWluIGlzIGNhbGxlZCBleGFjdGx5
IAorICAgICAgICBvbmNlIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgYW4gb2JqZWN0LCBzaW5jZSBj
YWxsaW5nIGl0IGFueSBvdGhlciBudW1iZXIgb2YgCisgICAgICAgIHRpbWVzICgwLCAyLCBvciBt
b3JlKSB3aWxsIGNhdXNlIGFuIGFzc2VydGlvbiBmYWlsdXJlLgorCisgICAgICAgICogVXNlck9i
amVjdEltcC5jcHA6CisgICAgICAgIChVc2VyT2JqZWN0SW1wOjpVc2VyT2JqZWN0SW1wKToKKyAg
ICAgICAgKiBVc2VyT2JqZWN0SW1wLmg6CisgICAgICAgIChVc2VyT2JqZWN0SW1wOjpjcmVhdGUp
OgorCiAyMDExLTA4LTI5ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgVW56aXAgaW5pdGlhbGl6YXRpb24gbGlzdHMgYW5kIGNvbnN0cnVjdG9ycyBp
biBKU0NlbGwgaGllcmFyY2h5ICgzLzcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvVXNlck9iamVjdEltcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdElt
cC5jcHAKaW5kZXggMGQ0ZDQ1YWY3MmY4YzI3NGQyMDMwZmJlM2I4NmJhZWM5ZTRmZDIxNi4uYWQz
NjkzYjNhZDEzMDVlMGE5YzI0NmViNmM5OTgxMzM2MWUwZjRiZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcApAQCAtMzgsNyArMzgsNiBAQCBVc2VyT2JqZWN0SW1wOjpV
c2VyT2JqZWN0SW1wKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIEpTVQogICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiAg
ICAgLCBmSlNVc2VyT2JqZWN0KChKU1VzZXJPYmplY3QqKXVzZXJPYmplY3QtPlJldGFpbigpKQog
ewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogfQogCiBVc2VyT2JqZWN0SW1wOjp+
VXNlck9iamVjdEltcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9i
amVjdEltcC5oIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaAppbmRleCA4
ZWU4ZTJhNzA0N2Y4NjlhMjk3MjY1Y2MxYzI2YzNmMzZmOTA4YTgwLi4xNTk2MDcwMGNmYWM1YWEw
NDQzYTg5YmE4NjM4NGNiN2QxNjc3ZTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvVXNlck9iamVjdEltcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0
SW1wLmgKQEAgLTQwLDcgKzQwLDkgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFVzZXJPYmplY3RJ
bXAqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBKU1VzZXJPYmplY3QqIHVzZXJPYmplY3QpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChh
bGxvY2F0ZUNlbGw8VXNlck9iamVjdEltcD4oZ2xvYmFsRGF0YS5oZWFwKSkgVXNlck9iamVjdElt
cChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUsIHVzZXJPYmplY3QpOworICAgICAgICBVc2VyT2JqZWN0
SW1wKiBvYmplY3QgPSBuZXcgKGFsbG9jYXRlQ2VsbDxVc2VyT2JqZWN0SW1wPihnbG9iYWxEYXRh
LmhlYXApKSBVc2VyT2JqZWN0SW1wKGdsb2JhbERhdGEsIHN0cnVjdHVyZSwgdXNlck9iamVjdCk7
CisgICAgICAgIG9iamVjdC0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CisgICAgICAgIHJl
dHVybiBvYmplY3Q7CiAgICAgfQogICAgIAogICAgIHZpcnR1YWwgflVzZXJPYmplY3RJbXAoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKaW5k
ZXggMDBmYWMwYTdlZTEwZDE3Mzc2N2RkM2VjODVmNjhlOTc5NjA4MjVmNy4uNWQwZDQzNmNjOTY4
NzNhZDlmYTAzOTVmMzU1Y2VhZWUzMjE1Mzg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKQEAgLTQzLDExICs0MywxMCBAQCBBU1NFUlRf
Q0xBU1NfRklUU19JTl9DRUxMKEpTRE9NV2luZG93U2hlbGwpOwogCiBjb25zdCBDbGFzc0luZm8g
SlNET01XaW5kb3dTaGVsbDo6c19pbmZvID0geyAiSlNET01XaW5kb3dTaGVsbCIsICZCYXNlOjpz
X2luZm8sIDAsIDAgfTsKIAotSlNET01XaW5kb3dTaGVsbDo6SlNET01XaW5kb3dTaGVsbChQYXNz
UmVmUHRyPERPTVdpbmRvdz4gd2luZG93LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRE9NV3JhcHBl
cldvcmxkKiB3b3JsZCkKK0pTRE9NV2luZG93U2hlbGw6OkpTRE9NV2luZG93U2hlbGwoU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIERPTVdyYXBwZXJXb3JsZCogd29ybGQpCiAgICAgOiBCYXNlKCp3b3Js
ZC0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiAgICAgLCBtX3dvcmxkKHdvcmxkKQogewotICAg
IGZpbmlzaENyZWF0aW9uKCp3b3JsZC0+Z2xvYmFsRGF0YSgpLCB3aW5kb3cpOwogfQogCiB2b2lk
IEpTRE9NV2luZG93U2hlbGw6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgUGFzc1JlZlB0cjxET01XaW5kb3c+IHdpbmRvdykKQEAgLTE4MSw2ICsxODAsMTMgQEAgdm9p
ZCogSlNET01XaW5kb3dTaGVsbDo6b3BlcmF0b3IgbmV3KHNpemVfdCBzaXplKQogICAgIHJldHVy
biBoZWFwLmFsbG9jYXRlKHNpemUpOwogfQogCitKU0RPTVdpbmRvd1NoZWxsKiBKU0RPTVdpbmRv
d1NoZWxsOjpjcmVhdGUoUGFzc1JlZlB0cjxET01XaW5kb3c+IHdpbmRvdywgSlNDOjpTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCkKK3sKKyAgICBKU0RPTVdpbmRv
d1NoZWxsKiBzaGVsbCA9IG5ldyBKU0RPTVdpbmRvd1NoZWxsKHN0cnVjdHVyZSwgd29ybGQpOwor
ICAgIHNoZWxsLT5maW5pc2hDcmVhdGlvbigqd29ybGQtPmdsb2JhbERhdGEoKSwgd2luZG93KTsK
KyAgICByZXR1cm4gc2hlbGw7IAorfQorCiAvLyAtLS0tCiAvLyBDb252ZXJzaW9uIG1ldGhvZHMK
IC8vIC0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93U2hlbGwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwu
aAppbmRleCA1NDU5NjYxMmM3ZGE1MTIyYTM3NzU2NWVhNGEwYmUxN2U3MzAxMzA0Li4zMDI4MzRm
ZmM2Nzk1NDM0ZGJlNDdmNDNlZTkyZTY2YTY2N2I0Y2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCkBAIC01NSw3ICs1NSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgICAgICBET01XaW5kb3cqIGltcGwoKSBjb25zdDsKIAotICAgICAg
ICB2b2lkKiBvcGVyYXRvciBuZXcoc2l6ZV90KTsKKyAgICAgICAgc3RhdGljIEpTRE9NV2luZG93
U2hlbGwqIGNyZWF0ZShQYXNzUmVmUHRyPERPTVdpbmRvdz4sIEpTQzo6U3RydWN0dXJlKiwgRE9N
V3JhcHBlcldvcmxkKik7CiAKICAgICAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90
b3R5cGUpIAogICAgICAgICB7CkBAIC02NSw5ICs2NSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIERPTVdyYXBwZXJXb3JsZCogd29ybGQoKSB7IHJldHVybiBtX3dvcmxkLmdldCgp
OyB9CiAKICAgICBwcm90ZWN0ZWQ6CisgICAgICAgIEpTRE9NV2luZG93U2hlbGwoSlNDOjpTdHJ1
Y3R1cmUqLCBET01XcmFwcGVyV29ybGQqKTsKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihK
U0M6OkpTR2xvYmFsRGF0YSYsIFBhc3NSZWZQdHI8RE9NV2luZG93Pik7CiAKICAgICBwcml2YXRl
OgorICAgICAgICB2b2lkKiBvcGVyYXRvciBuZXcoc2l6ZV90KTsKICAgICAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0
eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBKU0M6Ok92ZXJyaWRlc0dldFBy
b3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgICAgICB2aXJ0dWFsIHZv
aWQgdmlzaXRDaGlsZHJlbihKU0M6OlNsb3RWaXNpdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV3JhcHBlci5oCmluZGV4IDlhNGFjYTVjNTFiOGNmZWI3NTMwYjJhNmUwZTc5
ODQ1MWZkODU4ZTYuLjFiODIxOTcwM2NmOTM5MjBkMGI4NzdjNzZkNzc2NWU3YWJmMTBiNmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCkBAIC01OSw2ICs1OSw3
IEBAIHByb3RlY3RlZDoKICAgICAgICAgLy8gbmV3IEphdmFTY3JpcHQgb2JqZWN0cyBvbiBkZXRh
Y2hlZCB3aW5kb3dzIGR1ZSB0byBET01XaW5kb3c6OmRvY3VtZW50KCkKICAgICAgICAgLy8gbmVl
ZGluZyB0byByZWFjaCB0aHJvdWdoIHRoZSBmcmFtZSB0byBnZXQgdG8gdGhlIERvY3VtZW50Ki4g
IFNlZSBidWcgMjc2NDAuCiAgICAgICAgIC8vIEFTU0VSVChnbG9iYWxPYmplY3QtPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+
Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggODcwMjlkMWRiMDEy
MzE0MjNiMWU4OGM1YWM1Zjk1MTQwY2Q5NjE2YS4uZDI1YzcyMmE0OTVjMzVkMWRkYTFmYmE2NTY1
MWJlNDc0MmYwMmU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCBKU0RPTVdpbmRvd1NoZWxsKiBTY3Jp
cHRDb250cm9sbGVyOjpjcmVhdGVXaW5kb3dTaGVsbChET01XcmFwcGVyV29ybGQqIHdvcmxkKQog
ewogICAgIEFTU0VSVCghbV93aW5kb3dTaGVsbHMuY29udGFpbnMod29ybGQpKTsKICAgICBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSA9IEpTRE9NV2luZG93U2hlbGw6OmNyZWF0ZVN0cnVjdHVyZSgqd29y
bGQtPmdsb2JhbERhdGEoKSwganNOdWxsKCkpOwotICAgIFN0cm9uZzxKU0RPTVdpbmRvd1NoZWxs
PiB3aW5kb3dTaGVsbCgqd29ybGQtPmdsb2JhbERhdGEoKSwgbmV3IEpTRE9NV2luZG93U2hlbGwo
bV9mcmFtZS0+ZG9tV2luZG93KCksIHN0cnVjdHVyZSwgd29ybGQpKTsKKyAgICBTdHJvbmc8SlNE
T01XaW5kb3dTaGVsbD4gd2luZG93U2hlbGwoKndvcmxkLT5nbG9iYWxEYXRhKCksIEpTRE9NV2lu
ZG93U2hlbGw6OmNyZWF0ZShtX2ZyYW1lLT5kb21XaW5kb3coKSwgc3RydWN0dXJlLCB3b3JsZCkp
OwogICAgIFN0cm9uZzxKU0RPTVdpbmRvd1NoZWxsPiB3aW5kb3dTaGVsbDIod2luZG93U2hlbGwp
OwogICAgIG1fd2luZG93U2hlbGxzLmFkZCh3b3JsZCwgd2luZG93U2hlbGwpOwogICAgIHdvcmxk
LT5kaWRDcmVhdGVXaW5kb3dTaGVsbCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMGMwMWZjN2YyMjAxNmU0MDJj
ZjU5OWJjMmRiZjEyNjExY2MzNWQ0Yi4uZWYzOTBjNWE2Mzk5MjUxZGViN2RkMWEzOTNhMmU2ZWNm
YmE4YWYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KQEAgLTEwNTcsNyArMTA1Nyw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgog
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIGRlZmluZUdldHRlcihK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6
OkpTT2JqZWN0KiBnZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcyk7XG4iKSBpZiAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Qcm90b3R5cGVEZWZpbmVHZXR0
ZXIifTsKIAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJcbnByaXZhdGU6XG4iKTsKLSAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfVByb3RvdHlwZShKU0M6OkpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0M6OlN0cnVjdHVyZSogc3RydWN0dXJlKSA6IEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0
KGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKSB7IH1cbiIpOworICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9UHJvdG90eXBlKEpTQzo6SlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpIDogSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xv
YmFsRGF0YSwgc3RydWN0dXJlKSB7IGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCk7IH1cbiIpOwogCiAgICAgIyBzdHJ1Y3R1cmUgZmxhZ3MKICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAicHJvdGVjdGVkOlxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvb2JqYy9vYmpjX3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNf
cnVudGltZS5oCmluZGV4IGQ4MDE5MDEwNjc1OWUzMTYwZGY1M2U4YjNiMWRmMDc0NjUwYzc2ZWUu
LjE3NTNjMGJjN2VlMDk2MTI4M2FjY2RiNmY5YzVkN2VhMmZmYzU0MjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCkBAIC0xMTYsNiArMTE2LDkgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBl
LCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3Vu
dCwgJnNfaW5mbyk7CiAgICAgfQogCitwcm90ZWN0ZWQ6CisgICAgdm9pZCBmaW5pc2hDcmVhdGlv
bihKU0dsb2JhbE9iamVjdCopOworCiBwcml2YXRlOgogICAgIE9iamNGYWxsYmFja09iamVjdElt
cChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIE9iamNJbnN0YW5jZSosIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNPYmplY3Q6OlN0cnVjdHVy
ZUZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50
aW1lLm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCmluZGV4
IDc1MGJjN2VlZmRlMWUzOGExMzY3NmNlYWYwOTIyZGU3MWY4NTk5ZGYuLmRmMGU3MWM3ZmVjYjYy
ZTE2Zjc1ZGE5MTIwMzFmYTk2YjFhMmE3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9vYmpjL29iamNfcnVudGltZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2Jq
Yy9vYmpjX3J1bnRpbWUubW0KQEAgLTIwMSw2ICsyMDEsMTIgQEAgT2JqY0ZhbGxiYWNrT2JqZWN0
SW1wOjpPYmpjRmFsbGJhY2tPYmplY3RJbXAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWMKICAgICAsIF9pbnN0YW5jZShpKQogICAgICwgX2l0ZW0ocHJvcGVydHlOYW1lKQogewor
ICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgT2JqY0ZhbGxiYWNr
T2JqZWN0SW1wOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQor
eworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBn
bG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAppbmRleCBiNWY3YTA3OGIyYzAwY2Y4ZGZk
YzgwOTBjN2FmODQwMjEyNGQ2NTdiLi5lMDFhMTVmMzdjYzkxYzQ1OGVkYTE0MWM3NDg2ZDhjMjY5
YzZkY2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC00MCw2
ICs0MCwxMiBAQCBjb25zdCBDbGFzc0luZm8gUnVudGltZUFycmF5OjpzX2luZm8gPSB7ICJSdW50
aW1lQXJyYXkiLCAmSlNBcnJheTo6c19pbmZvLCAwLCAwCiBSdW50aW1lQXJyYXk6OlJ1bnRpbWVB
cnJheShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBCaW5kaW5nczo6QXJy
YXkqIGFycmF5KQogICAgIDogSlNBcnJheShleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkK
IHsKKyAgICBmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIGFycmF5KTsKK30KKwor
dm9pZCBSdW50aW1lQXJyYXk6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgQmluZGluZ3M6OkFycmF5KiBhcnJheSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihn
bG9iYWxEYXRhKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHNldFN1YmNs
YXNzRGF0YShhcnJheSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9hcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAppbmRl
eCBjYjdiYzYzNTc3NmQ4ZWJjOTEwMzk1MzIwYWVmZGU0MmJjYjkwNmQ3Li44ZDhmNWFlNmJmNjhh
NjMzODY1ZDBkMDJiZjY0M2Y5NWU0NGE4OTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9hcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X2FycmF5LmgKQEAgLTc0LDYgKzc0LDggQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVkOgor
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiwgQmluZGluZ3M6OkFycmF5Kik7
CisKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNBcnJheTo6
U3RydWN0dXJlRmxhZ3M7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9vYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
b2JqZWN0LmNwcAppbmRleCBmNGQwYmFkZTVlOGJmYWE1OWQzYjkxNzAwMWEzZTQwNmJmNTk1OTc3
Li45NjY0MGYwMDhmYWMxYWM0NzE3NjRmZjg1ZTNiOGY2NDViOTJiZjJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKQEAgLTQxLDYgKzQxLDEyIEBAIFJ1bnRpbWVP
YmplY3Q6OlJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlCiAgICAgOiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsT2Jq
ZWN0LCBzdHJ1Y3R1cmUpCiAgICAgLCBtX2luc3RhbmNlKGluc3RhbmNlKQogeworICAgIGZpbmlz
aENyZWF0aW9uKGdsb2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgUnVudGltZU9iamVjdDo6ZmluaXNo
Q3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKICAg
ICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX29iamVjdC5oCmluZGV4IDg2MjJlMzExZjI2NjA4YzU0NmRlODZlMGNmNGEzZDU1ODUzOTky
YTIuLjk5ZTA2ZTAxYzViYWY3ODA3N2ZiOWE0YmRkZjkzYTVhNDRkOGMzYmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCkBAIC03NCw2ICs3NCw3IEBAIHB1YmxpYzoKIAog
cHJvdGVjdGVkOgogICAgIFJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3Qq
LCBTdHJ1Y3R1cmUqLCBQYXNzUmVmUHRyPEluc3RhbmNlPik7CisgICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFByb3Bl
cnR5TmFtZXMgfCBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBPYmplY3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCmluZGV4IDMzZWRiZTkyMmQ2Yjg1ZDY4OTcwODU1Yzk3
MTVkZGE4MzEwOWI2YzQuLjIyOTEwZjVjYTQ3Njc2NjVhYTM4ZmM4ZWM0ZGNkY2U5NWZhZmRhZjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvSlNOUE9iamVjdC5jcHAKQEAgLTU1LDYgKzU1LDEyIEBAIEpTTlBPYmplY3Q6OkpTTlBP
YmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTlBSdW50aW1lT2JqZWN0TWFwKiBv
YmplY3RNCiAgICAgLCBtX29iamVjdE1hcChvYmplY3RNYXApCiAgICAgLCBtX25wT2JqZWN0KG5w
T2JqZWN0KQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7Cit9CisKK3ZvaWQg
SlNOUE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
K3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwg
Z2xvYmFsT2JqZWN0KTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogCiAgICAgLy8g
V2Ugc2hvdWxkIG5ldmVyIGhhdmUgYW4gTlBKU09iamVjdCBpbnNpZGUgYSBKU05QT2JqZWN0Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pT
TlBPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QT2JqZWN0LmgKaW5kZXggMmVhMTIyODJiMWIzYWVmZWYxNjlmMjM3MTU3NzY0YTY0YTU3YWQy
Mi4uNzU4MjJjM2M1OTY3M2Q4Y2RiN2E0N2JlYmM4NjFkM2JkOGI2OWJkYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVj
dC5oCkBAIC01Nyw2ICs1Nyw5IEBAIHB1YmxpYzoKIAogICAgIE5QT2JqZWN0KiBucE9iamVjdCgp
IGNvbnN0IHsgcmV0dXJuIG1fbnBPYmplY3Q7IH0KIAorcHJvdGVjdGVkOgorICAgIHZvaWQgZmlu
aXNoQ3JlYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCopOworCiBwcml2YXRlOgogICAgIEpTTlBP
YmplY3QoSlNDOjpKU0dsb2JhbE9iamVjdCosIE5QUnVudGltZU9iamVjdE1hcCosIE5QT2JqZWN0
KiwgSlNDOjpTdHJ1Y3R1cmUqKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105990</attachid>
            <date>2011-09-01 10:31:08 -0700</date>
            <delta_ts>2011-09-01 12:33:57 -0700</delta_ts>
            <desc>Resetting test bindings results</desc>
            <filename>bug-67174-20110901103107.patch</filename>
            <type>text/plain</type>
            <size>90851</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQyMjMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcAppbmRleCBmYTlkMjE2ZGQxMTI1MDEyN2Vl
Njg1ZmUxZWM4ZDU5ZmYyNjhjOTllLi45NTA0YWQ4MGQ4NTNmM2M2NTVmODQyOGQ3ZDE2YTY1ZmVj
YjgzMDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuY3BwCkBAIC00Myw2ICs0MywxMiBAQCBKU0NhbGxiYWNrQ29uc3RydWN0b3I6
OkpTQ2FsbGJhY2tDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
YwogICAgICwgbV9jbGFzcyhqc0NsYXNzKQogICAgICwgbV9jYWxsYmFjayhjYWxsYmFjaykKIHsK
KyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QsIGpzQ2xhc3MpOworfQorCit2b2lkIEpT
Q2FsbGJhY2tDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDbGFzc1JlZiBqc0NsYXNzKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChp
bmhlcml0cygmc19pbmZvKSk7CiAgICAgaWYgKG1fY2xhc3MpCiAgICAgICAgIEpTQ2xhc3NSZXRh
aW4oanNDbGFzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuaAppbmRleCA0MGFhYmNmMTkyMTMxZDQxNDdiMDc4Mzg5OTkwOTlmOGExZTUx
ZWRhLi45MTE5MWRiNWY5Njc5OWUyMGNhNDZlOTEwMTRlNWVhNGFjNjY4Y2Q3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmgKQEAgLTUy
LDYgKzUyLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgSlNDYWxsYmFja0NvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgSlNDbGFzc1JlZiwgSlNPYmplY3RDYWxs
QXNDb25zdHJ1Y3RvckNhbGxiYWNrKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
T2JqZWN0KiwgSlNDbGFzc1JlZik7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdz
OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuaAppbmRleCBlZTk5MGEwMmZjZmI5OTRjMWQ0ODFlMjc4NTdlY2MzODA4MDBjNmI1Li45YzJm
MzlmYjA3NGJlNjlkMDU4MzExMDVkYjcxZDA1NzU3MTg5YTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTI0LDE2ICsxMjQsMjEgQEAgcHJv
dGVjdGVkOgogICAgIC8vIGZ1bmN0aW9uYWxpdHkgaGVyZS4KICAgICB2b2lkKiBvcGVyYXRvciBu
ZXcoc2l6ZV90LCB2b2lkKiBwdHIpIHsgcmV0dXJuIHB0cjsgfQogCisgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oKTsKKwogcHVibGljOgogICAgIHR5cGVkZWYgUGFyZW50IEJhc2U7CiAKICAgICBzdGF0
aWMgSlNDYWxsYmFja09iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTQ2xhc3NSZWYgY2xhc3NS
ZWYsIHZvaWQqIGRhdGEpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8
SlNDYWxsYmFja09iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIEpTQ2FsbGJhY2tPYmplY3QoZXhlYywg
Z2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGNsYXNzUmVmLCBkYXRhKTsKKyAgICAgICAgSlNDYWxs
YmFja09iamVjdCogY2FsbGJhY2tPYmplY3QgPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0NhbGxiYWNr
T2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgSlNDYWxsYmFja09iamVjdChleGVjLCBnbG9iYWxPYmpl
Y3QsIHN0cnVjdHVyZSwgY2xhc3NSZWYsIGRhdGEpOworICAgICAgICByZXR1cm4gY2FsbGJhY2tP
YmplY3Q7CiAgICAgfQogICAgIHN0YXRpYyBKU0NhbGxiYWNrT2JqZWN0KiBjcmVhdGUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0NsYXNzUmVmIGNsYXNzUmVmLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0NhbGxiYWNr
T2JqZWN0PihnbG9iYWxEYXRhLmhlYXApKSBKU0NhbGxiYWNrT2JqZWN0KGdsb2JhbERhdGEsIGNs
YXNzUmVmLCBzdHJ1Y3R1cmUpOworICAgICAgICBKU0NhbGxiYWNrT2JqZWN0KiBjYWxsYmFja09i
amVjdCA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTQ2FsbGJhY2tPYmplY3Q+KGdsb2JhbERhdGEuaGVh
cCkpIEpTQ2FsbGJhY2tPYmplY3QoZ2xvYmFsRGF0YSwgY2xhc3NSZWYsIHN0cnVjdHVyZSk7Cisg
ICAgICAgIHJldHVybiBjYWxsYmFja09iamVjdDsKICAgICB9CiAKICAgICB2b2lkIHNldFByaXZh
dGUodm9pZCogZGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlND
YWxsYmFja09iamVjdEZ1bmN0aW9ucy5oCmluZGV4IDY5MTBlNTZmZjhjYTQ5OTRiNjMzNmE4N2Fk
ODZlZDBlMTY4YzdjYTYuLmMzMTIzYmRmNjdlOGQzZjcyMDRhNjcxODcyMmMwMzRmYTFhZmI4MDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1
bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVj
dEZ1bmN0aW9ucy5oCkBAIC01NCw4ICs1NCw3IEBAIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6
SlNDYWxsYmFja09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAg
ICAgOiBQYXJlbnQoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiAgICAgLCBtX2NhbGxiYWNrT2Jq
ZWN0RGF0YShhZG9wdFB0cihuZXcgSlNDYWxsYmFja09iamVjdERhdGEoZGF0YSwganNDbGFzcykp
KQogewotICAgIEFTU0VSVChQYXJlbnQ6OmluaGVyaXRzKCZzX2luZm8pKTsKLSAgICBpbml0KGV4
ZWMpOworICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiB9CiAKIC8vIEds
b2JhbCBvYmplY3QgY29uc3RydWN0b3IuCkBAIC02NSw2ICs2NCwyMSBAQCBKU0NhbGxiYWNrT2Jq
ZWN0PFBhcmVudD46OkpTQ2FsbGJhY2tPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0NsYXNzUmVmCiAgICAgOiBQYXJlbnQoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogICAgICwgbV9j
YWxsYmFja09iamVjdERhdGEoYWRvcHRQdHIobmV3IEpTQ2FsbGJhY2tPYmplY3REYXRhKDAsIGpz
Q2xhc3MpKSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbigpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3Mg
UGFyZW50Pgordm9pZCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OmZpbmlzaENyZWF0aW9uKEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNl
OjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0
KTsKKyAgICBBU1NFUlQoUGFyZW50Ojppbmhlcml0cygmc19pbmZvKSk7CisgICAgaW5pdChleGVj
KTsKK30KKworLy8gVGhpcyBpcyBqdXN0IGZvciBHbG9iYWwgb2JqZWN0LCBzbyB3ZSBjYW4gYXNz
dW1lIHRoYXQgQmFzZTo6ZmluaXNoQ3JlYXRpb24gaXMgSlNHbG9iYWxPYmplY3Q6OmNvbnN0cnVj
dG9yQm9keS4KK3RlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Cit2b2lkIEpTQ2FsbGJhY2tPYmplY3Q8
UGFyZW50Pjo6ZmluaXNoQ3JlYXRpb24oKQorewogICAgIEFTU0VSVChQYXJlbnQ6OmluaGVyaXRz
KCZzX2luZm8pKTsKICAgICBBU1NFUlQoUGFyZW50Ojppc0dsb2JhbE9iamVjdCgpKTsKICAgICBp
bml0KHN0YXRpY19jYXN0PEpTR2xvYmFsT2JqZWN0Kj4odGhpcyktPmdsb2JhbEV4ZWMoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuSlNWQUxVRTY0
b25seS5leHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuSlNWQUxVRTY0
b25seS5leHAKaW5kZXggZWFhOWY1MTM5ZjIyZTAzYzgwZWQ3Y2Y0NzkyZTQ4ZGFmOTE2YTYxMS4u
MTM5NTk3ZjljYjA3YzVkNDhiZWQxODk4NGVjNDc0N2Y0YjRmMzQzOCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLkpTVkFMVUU2NG9ubHkuZXhwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5KU1ZBTFVFNjRvbmx5LmV4cApA
QCAtMSArMSwyIEBACi1fX1pOM0pTQzEwSlNGdW5jdGlvbkMxRVBOU185RXhlY1N0YXRlRVBOU18x
NEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRWlSS05TXzEwSWRlbnRpZmllckVQRlB2UzJf
RQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5l
eHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCmluZGV4IDlmNGEz
YmRjYTIxM2IzYjViNTJmNThmZjQ2YjFiMzcwYjBkODVkZTcuLjI3NDVhNDcxZDRkMTgyM2Q0MWQ5
MzJkZTA0NjZmOGM3YWU5OGQ5Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5leHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmV4cApAQCAtMTEwLDEzICsxMTAsMTcgQEAgX19aTjNKU0MxMElkZW50aWZpZXI0ZnJvbUVQ
TlNfOUV4ZWNTdGF0ZUVpCiBfX1pOM0pTQzEwSWRlbnRpZmllcjRmcm9tRVBOU185RXhlY1N0YXRl
RWoKIF9fWk4zSlNDMTBJZGVudGlmaWVyNWVxdWFsRVBLTjNXVEYxMFN0cmluZ0ltcGxFUEtjCiBf
X1pOM0pTQzEwSWRlbnRpZmllcjh0b1VJbnQzMkVSS05TXzdVU3RyaW5nRVJiCitfX1pOM0pTQzEw
SlNGdW5jdGlvbjE0ZmluaXNoQ3JlYXRpb25FUE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxP
YmplY3RFUE5TXzE4RnVuY3Rpb25FeGVjdXRhYmxlRVBOU18xNFNjb3BlQ2hhaW5Ob2RlRQorX19a
TjNKU0MxMEpTRnVuY3Rpb24xNGZpbmlzaENyZWF0aW9uRVBOU185RXhlY1N0YXRlRVBOU18xNEpT
R2xvYmFsT2JqZWN0RWlSS05TXzEwSWRlbnRpZmllckVQTlNfMTRFeGVjdXRhYmxlQmFzZUUKIF9f
Wk4zSlNDMTBKU0Z1bmN0aW9uNG5hbWVFUE5TXzlFeGVjU3RhdGVFCitfX1pOM0pTQzEwSlNGdW5j
dGlvbjZjcmVhdGVFUE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RFUE5TXzlTdHJ1
Y3R1cmVFaVJLTlNfMTBJZGVudGlmaWVyRVBGUHZTMl9FCiBfX1pOM0pTQzEwSlNGdW5jdGlvbjZz
X2luZm9FCitfX1pOM0pTQzEwSlNGdW5jdGlvbkMxRVBOU185RXhlY1N0YXRlRVBOU18xNEpTR2xv
YmFsT2JqZWN0RVBOU185U3RydWN0dXJlRQogX19aTjNKU0MxMHRocm93RXJyb3JFUE5TXzlFeGVj
U3RhdGVFTlNfN0pTVmFsdWVFCiBfX1pOM0pTQzEwdGhyb3dFcnJvckVQTlNfOUV4ZWNTdGF0ZUVQ
TlNfOEpTT2JqZWN0RQogX19aTjNKU0MxMUpTQnl0ZUFycmF5MTNzX2RlZmF1bHRJbmZvRQogX19a
TjNKU0MxMUpTQnl0ZUFycmF5MTVjcmVhdGVTdHJ1Y3R1cmVFUk5TXzEySlNHbG9iYWxEYXRhRU5T
XzdKU1ZhbHVlRVBLTlNfOUNsYXNzSW5mb0UKLV9fWk4zSlNDMTFKU0J5dGVBcnJheTZjcmVhdGVF
UE5TXzlFeGVjU3RhdGVFUE5TXzlTdHJ1Y3R1cmVFUE4zV1RGOUJ5dGVBcnJheUUKK19fWk4zSlND
MTFKU0J5dGVBcnJheUMxRVBOU185RXhlY1N0YXRlRVBOU185U3RydWN0dXJlRVBOM1dURjlCeXRl
QXJyYXlFCiBfX1pOM0pTQzExUGFyc2VyQXJlbmE1cmVzZXRFdgogX19aTjNKU0MxMWNoZWNrU3lu
dGF4RVBOU185RXhlY1N0YXRlRVJLTlNfMTBTb3VyY2VDb2RlRQogX19aTjNKU0MxMWNyZWF0ZUVy
cm9yRVBOU185RXhlY1N0YXRlRVJLTlNfN1VTdHJpbmdFCkBAIC0xMzMsNiArMTM3LDcgQEAgX19a
TjNKU0MxMkpTR2xvYmFsRGF0YTE0ZHVtcFNhbXBsZURhdGFFUE5TXzlFeGVjU3RhdGVFCiBfX1pO
M0pTQzEySlNHbG9iYWxEYXRhMTRyZXNldERhdGVDYWNoZUV2CiBfX1pOM0pTQzEySlNHbG9iYWxE
YXRhMTRzaGFyZWRJbnN0YW5jZUV2CiBfX1pOM0pTQzEySlNHbG9iYWxEYXRhMTVkdW1wUmVnRXhw
VHJhY2VFdgorX19aTjNKU0MxMkpTR2xvYmFsRGF0YTE1Z2V0SG9zdEZ1bmN0aW9uRVBGUHZQTlNf
OUV4ZWNTdGF0ZUVFCiBfX1pOM0pTQzEySlNHbG9iYWxEYXRhMjJjbGVhckJ1aWx0aW5TdHJ1Y3R1
cmVzRXYKICNpZm5kZWYgTkRFQlVHCiBfX1pOM0pTQzEySlNHbG9iYWxEYXRhMjNyZWxlYXNlRXhl
Y3V0YWJsZU1lbW9yeUV2CkBAIC0xOTYsNyArMjAxLDcgQEAgX19aTjNKU0MxN0J5dGVjb2RlR2Vu
ZXJhdG9yMjFzZXREdW1wc0dlbmVyYXRlZENvZGVFYgogX19aTjNKU0MxN1Byb3BlcnR5TmFtZUFy
cmF5M2FkZEVQTjNXVEYxMFN0cmluZ0ltcGxFCiBfX1pOM0pTQzE3Y29uc3RydWN0RnVuY3Rpb25F
UE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RFUktOU183QXJnTGlzdEVSS05TXzEw
SWRlbnRpZmllckVSS05TXzdVU3RyaW5nRWkKIF9fWk4zSlNDMTdjcmVhdGVTeW50YXhFcnJvckVQ
TlNfOUV4ZWNTdGF0ZUVSS05TXzdVU3RyaW5nRQotX19aTjNKU0MxOERlYnVnZ2VyQWN0aXZhdGlv
bkMxRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfOEpTT2JqZWN0RQorX19aTjNKU0MxOERlYnVnZ2Vy
QWN0aXZhdGlvbjZjcmVhdGVFUk5TXzEySlNHbG9iYWxEYXRhRVBOU184SlNPYmplY3RFCiBfX1pO
M0pTQzE4UHJvcGVydHlEZXNjcmlwdG9yMTFzZXRXcml0YWJsZUViCiBfX1pOM0pTQzE4UHJvcGVy
dHlEZXNjcmlwdG9yMTJzZXRVbmRlZmluZWRFdgogX19aTjNKU0MxOFByb3BlcnR5RGVzY3JpcHRv
cjEzc2V0RGVzY3JpcHRvckVOU183SlNWYWx1ZUVqCkBAIC0yMTksOCArMjI0LDkgQEAgX19aTjNK
U0MyM0Fic3RyYWN0U2FtcGxpbmdDb3VudGVyNGR1bXBFdgogX19aTjNKU0MyM29iamVjdFByb3Rv
RnVuY1RvU3RyaW5nRVBOU185RXhlY1N0YXRlRQogX19aTjNKU0MyM3NldFVwU3RhdGljRnVuY3Rp
b25TbG90RVBOU185RXhlY1N0YXRlRVBLTlNfOUhhc2hFbnRyeUVQTlNfOEpTT2JqZWN0RVJLTlNf
MTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDMjREeW5hbWljR2xvYmFs
T2JqZWN0U2NvcGVDMUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzE0SlNHbG9iYWxPYmplY3RFCitf
X1pOM0pTQzI0SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0MTRmaW5pc2hDcmVhdGlvbkVSTlNfMTJK
U0dsb2JhbERhdGFFUE5TXzE0SlNHbG9iYWxPYmplY3RFCitfX1pOM0pTQzI0SlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0QzJFUk5TXzEySlNHbG9iYWxEYXRhRVBOU185U3RydWN0dXJlRQogX19aTjNK
U0MyNEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEMyRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185
U3RydWN0dXJlRQotX19aTjNKU0MyNEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEMyRVJOU18xMkpT
R2xvYmFsRGF0YUVQTlNfMTRKU0dsb2JhbE9iamVjdEVQTlNfOVN0cnVjdHVyZUUKIF9fWk4zSlND
MjRjcmVhdGVTdGFja092ZXJmbG93RXJyb3JFUE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pTQzI1ZXZh
bHVhdGVJbkdsb2JhbENhbGxGcmFtZUVSS05TXzdVU3RyaW5nRVJOU183SlNWYWx1ZUVQTlNfMTRK
U0dsb2JhbE9iamVjdEUKIF9fWk4zSlNDMzVjcmVhdGVJbnRlcnJ1cHRlZEV4ZWN1dGlvbkV4Y2Vw
dGlvbkVQTlNfMTJKU0dsb2JhbERhdGFFCkBAIC0yNjksMTIgKzI3NSwxNSBAQCBfX1pOM0pTQzZK
U0xvY2tDMUVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDNlJlZ0V4cEQxRXYKIF9fWk4zSlNDNlJl
Z0V4cDZjcmVhdGVFUk5TXzEySlNHbG9iYWxEYXRhRVJLTlNfN1VTdHJpbmdFTlNfMTFSZWdFeHBG
bGFnc0UKIF9fWk4zSlNDN0pTQXJyYXkxM3Zpc2l0Q2hpbGRyZW5FUk5TXzExU2xvdFZpc2l0b3JF
CitfX1pOM0pTQzdKU0FycmF5MTRmaW5pc2hDcmVhdGlvbkVSTlNfMTJKU0dsb2JhbERhdGFFCitf
X1pOM0pTQzdKU0FycmF5MTRmaW5pc2hDcmVhdGlvbkVSTlNfMTJKU0dsb2JhbERhdGFFUktOU183
QXJnTGlzdEUKIF9fWk4zSlNDN0pTQXJyYXkxNXNldFN1YmNsYXNzRGF0YUVQdgogX19aTjNKU0M3
SlNBcnJheTE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0
eVNsb3RFCitfX1pOM0pTQzdKU0FycmF5NmNyZWF0ZUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlT
dHJ1Y3R1cmVFUktOU183QXJnTGlzdEUKK19fWk4zSlNDN0pTQXJyYXk2Y3JlYXRlRVJOU18xMkpT
R2xvYmFsRGF0YUVQTlNfOVN0cnVjdHVyZUUKIF9fWk4zSlNDN0pTQXJyYXk2c19pbmZvRQogX19a
TjNKU0M3SlNBcnJheTlzZXRMZW5ndGhFagogX19aTjNKU0M3SlNBcnJheUMxRVJOU18xMkpTR2xv
YmFsRGF0YUVQTlNfOVN0cnVjdHVyZUUKLV9fWk4zSlNDN0pTQXJyYXlDMUVSTlNfMTJKU0dsb2Jh
bERhdGFFUE5TXzlTdHJ1Y3R1cmVFUktOU183QXJnTGlzdEUKIF9fWk4zSlNDN0pTQXJyYXlDMkVS
TlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFCiBfX1pOM0pTQzdKU0FycmF5RDJFdgog
X19aTjNKU0M3SlNWYWx1ZTEzaXNWYWxpZENhbGxlZUV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmRlZiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ov
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCmluZGV4IGQxY2ZmNzg2Mzc3YTBkNDEz
NjJjZDJlZmI3Yjg1ZWMzOTJlMDViYzQuLjllOWVlYTg5OWMyNDJhY2Q2MGQ1YzEwYzVkMDQzOGVj
MTIzZmUxNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZGVmCkBAIC05LDExICs5LDExIEBAIEVYUE9SVFMKICAgICA/PzBEeW5hbWljR2xv
YmFsT2JqZWN0U2NvcGVASlNDQEBRQUVAQUFWSlNHbG9iYWxEYXRhQDFAUEFWSlNHbG9iYWxPYmpl
Y3RAMUBAWiAgCiAgICAgPz8wSW50ZXJuYWxGdW5jdGlvbkBKU0NAQElBRUBQQVZKU0dsb2JhbERh
dGFAMUBQQVZKU0dsb2JhbE9iamVjdEAxQFBBVlN0cnVjdHVyZUAxQEFCVklkZW50aWZpZXJAMUBA
WgogICAgID8/MEpTQXJyYXlASlNDQEBJQUVAQUFWSlNHbG9iYWxEYXRhQDFAUEFWU3RydWN0dXJl
QDFAQFoKLSAgICA/PzBKU0FycmF5QEpTQ0BASUFFQEFBVkpTR2xvYmFsRGF0YUAxQFBBVlN0cnVj
dHVyZUAxQEFCVkFyZ0xpc3RAMUBAWgotICAgID8/MEpTRnVuY3Rpb25ASlNDQEBBQUVAUEFWRXhl
Y1N0YXRlQDFAUEFWSlNHbG9iYWxPYmplY3RAMUBQQVZTdHJ1Y3R1cmVAMUBIQUJWSWRlbnRpZmll
ckAxQFA2SV9KMEBaQFoKKyAgICA/PzBKU0J5dGVBcnJheUBKU0NAQEFBRUBQQVZFeGVjU3RhdGVA
MUBQQVZTdHJ1Y3R1cmVAMUBQQVZCeXRlQXJyYXlAV1RGQEBAWgorICAgID8/MEpTRnVuY3Rpb25A
SlNDQEBBQUVAUEFWRXhlY1N0YXRlQDFAUEFWSlNHbG9iYWxPYmplY3RAMUBQQVZTdHJ1Y3R1cmVA
MUBAWgogICAgID8/MEpTTG9ja0BKU0NAQFFBRUBQQVZFeGVjU3RhdGVAMUBAWgotICAgID8/MEpT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdEBKU0NAQElBRUBBQVZKU0dsb2JhbERhdGFAMUBQQVZKU0ds
b2JhbE9iamVjdEAxQFBBVlN0cnVjdHVyZUAxQEBaCiAgICAgPz8wSlNPYmplY3RXaXRoR2xvYmFs
T2JqZWN0QEpTQ0BASUFFQFBBVkpTR2xvYmFsT2JqZWN0QDFAUEFWU3RydWN0dXJlQDFAQFoKKyAg
ICA/PzBKU09iamVjdFdpdGhHbG9iYWxPYmplY3RASlNDQEBJQUVAQUFWSlNHbG9iYWxEYXRhQDFA
UEFWU3RydWN0dXJlQDFAQFoKICAgICA/PzBNRDVAV1RGQEBRQUVAWFoKICAgICA/PzBNdXRleEBX
VEZAQFFBRUBYWgogICAgID8/MFJlZkNvdW50ZWRMZWFrQ291bnRlckBXVEZAQFFBRUBQQkRAWgpA
QCAtOTUsNyArOTUsOSBAQCBFWFBPUlRTCiAgICAgP2NvbnZlcnRVVEYxNlRvVVRGOEBVbmljb2Rl
QFdURkBAWUE/QVc0Q29udmVyc2lvblJlc3VsdEAxMkBQQVBCX1dQQl9XUEFQQURQQURfTkBaCiAg
ICAgP2NvbnZlcnRVVEY4VG9VVEYxNkBVbmljb2RlQFdURkBAWUE/QVc0Q29udmVyc2lvblJlc3Vs
dEAxMkBQQVBCRFBCRFBBUEFfV1BBX1dfTkBaCiAgICAgP2NyZWF0ZUBCeXRlQXJyYXlAV1RGQEBT
QT9BVj8kUGFzc1JlZlB0ckBWQnl0ZUFycmF5QFdURkBAQDJASUBaCi0gICAgP2NyZWF0ZUBKU0J5
dGVBcnJheUBKU0NAQFNBUEFWMTJAUEFWRXhlY1N0YXRlQDJAUEFWU3RydWN0dXJlQDJAUEFWQnl0
ZUFycmF5QFdURkBAQFoKKyAgICA/Y3JlYXRlQEpTQXJyYXlASlNDQEBTQVBBVjEyQEFBVkpTR2xv
YmFsRGF0YUAyQFBBVlN0cnVjdHVyZUAyQEBaCisgICAgP2NyZWF0ZUBKU0FycmF5QEpTQ0BAU0FQ
QVYxMkBBQVZKU0dsb2JhbERhdGFAMkBQQVZTdHJ1Y3R1cmVAMkBBQlZBcmdMaXN0QDJAQFoKKyAg
ICA/Y3JlYXRlQEpTRnVuY3Rpb25ASlNDQEBTQVBBVjEyQFBBVkV4ZWNTdGF0ZUAyQFBBVkpTR2xv
YmFsT2JqZWN0QDJAUEFWU3RydWN0dXJlQDJASEFCVklkZW50aWZpZXJAMkBQNklfSjBAWkBaCiAg
ICAgP2NyZWF0ZUBKU0dsb2JhbERhdGFASlNDQEBTQT9BVj8kUGFzc1JlZlB0ckBWSlNHbG9iYWxE
YXRhQEpTQ0BAQFdURkBAVzRUaHJlYWRTdGFja1R5cGVAMkBXNEhlYXBTaXplQDJAQFoKICAgICA/
Y3JlYXRlQE9wYXF1ZUpTU3RyaW5nQEBTQT9BVj8kUGFzc1JlZlB0ckBVT3BhcXVlSlNTdHJpbmdA
QEBXVEZAQEFCVlVTdHJpbmdASlNDQEBAWgogICAgID9jcmVhdGVAUmVnRXhwQEpTQ0BAU0FQQVYx
MkBBQVZKU0dsb2JhbERhdGFAMkBBQlZVU3RyaW5nQDJAVzRSZWdFeHBGbGFnc0AyQEBaCkBAIC0x
NjcsNiArMTY5LDEwIEBAIEVYUE9SVFMKICAgICA/ZmFzdFplcm9lZE1hbGxvY0BXVEZAQFlBUEFY
SUBaCiAgICAgP2ZpbGxHZXR0ZXJQcm9wZXJ0eVNsb3RASlNPYmplY3RASlNDQEBRQUVYQUFWUHJv
cGVydHlTbG90QDJAUEFWPyRXcml0ZUJhcnJpZXJCYXNlQFc0VW5rbm93bkBKU0NAQEAyQEBaCiAg
ICAgP2ZpbmFsaXplQFdlYWtIYW5kbGVPd25lckBKU0NAQFVBRVhWPyRIYW5kbGVAVzRVbmtub3du
QEpTQ0BAQDJAUEFYQFoKKyAgICA/ZmluaXNoQ3JlYXRpb25ASlNBcnJheUBKU0NAQElBRVhBQVZK
U0dsb2JhbERhdGFAMkBAWgorICAgID9maW5pc2hDcmVhdGlvbkBKU0FycmF5QEpTQ0BASUFFWEFB
VkpTR2xvYmFsRGF0YUAyQEFCVkFyZ0xpc3RAMkBAWgorICAgID9maW5pc2hDcmVhdGlvbkBKU0Z1
bmN0aW9uQEpTQ0BASUFFWFBBVkV4ZWNTdGF0ZUAyQFBBVkpTR2xvYmFsT2JqZWN0QDJASEFCVklk
ZW50aWZpZXJAMkBQQVZFeGVjdXRhYmxlQmFzZUAyQEBaCisgICAgP2ZpbmlzaENyZWF0aW9uQEpT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdEBKU0NAQElBRVhBQVZKU0dsb2JhbERhdGFAMkBQQVZKU0ds
b2JhbE9iamVjdEAyQEBaCiAgICAgP2ZvY3VzQFByb2ZpbGVASlNDQEBRQUVYUEJWUHJvZmlsZU5v
ZGVAMkBAWgogICAgID9mcm9tQElkZW50aWZpZXJASlNDQEBTQT9BVjEyQFBBVkV4ZWNTdGF0ZUAy
QEhAWgogICAgID9mcm9tQElkZW50aWZpZXJASlNDQEBTQT9BVjEyQFBBVkV4ZWNTdGF0ZUAyQElA
WgpAQCAtMTc2LDYgKzE4Miw3IEBAIEVYUE9SVFMKICAgICA/Z2V0QFN0cnVjdHVyZUBKU0NAQFFB
RUlBQVZKU0dsb2JhbERhdGFAMkBQQVZTdHJpbmdJbXBsQFdURkBAQUFJQUFQQVZKU0NlbGxAMkBA
WgogICAgID9nZXRDYWxsRGF0YUBKU0NlbGxASlNDQEBVQUU/QVc0Q2FsbFR5cGVAMkBBQVRDYWxs
RGF0YUAyQEBaCiAgICAgP2dldENvbnN0cnVjdERhdGFASlNDZWxsQEpTQ0BAVUFFP0FXNENvbnN0
cnVjdFR5cGVAMkBBQVRDb25zdHJ1Y3REYXRhQDJAQFoKKyAgICA/Z2V0SG9zdEZ1bmN0aW9uQEpT
R2xvYmFsRGF0YUBKU0NAQFFBRVBBVk5hdGl2ZUV4ZWN1dGFibGVAMkBQNklfSlBBVkV4ZWNTdGF0
ZUAyQEBaQFoKICAgICA/Z2V0SlNOdW1iZXJASlNDZWxsQEpTQ0BAVUFFP0FWSlNWYWx1ZUAyQFha
CiAgICAgP2dldE9iamVjdEBKU0NlbGxASlNDQEBRQUVQQVZKU09iamVjdEAyQFhaCiAgICAgP2dl
dE93blByb3BlcnR5RGVzY3JpcHRvckBKU0dsb2JhbE9iamVjdEBKU0NAQFVBRV9OUEFWRXhlY1N0
YXRlQDJAQUJWSWRlbnRpZmllckAyQEFBVlByb3BlcnR5RGVzY3JpcHRvckAyQEBaCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3Bw
CmluZGV4IGFlOGE1YWNkNmE4NTcwYWQ3MzdjZTBlMDBjYzlkNWE2OGE5NDA5ZGQuLmE3MTAxZGNi
NmJhYTQwZmY0ZmUwZWZhMzJkMWQ1NWI2OGE5NDE0ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCkBAIC0zMCwxMCAr
MzAsMTYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLURlYnVnZ2VyQWN0aXZhdGlvbjo6RGVidWdn
ZXJBY3RpdmF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNPYmplY3QqIGFjdGl2YXRp
b24pCitEZWJ1Z2dlckFjdGl2YXRpb246OkRlYnVnZ2VyQWN0aXZhdGlvbihKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEpCiAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIGdsb2JhbERh
dGEuZGVidWdnZXJBY3RpdmF0aW9uU3RydWN0dXJlLmdldCgpKQogewotICAgIGZpbmlzaENyZWF0
aW9uKGdsb2JhbERhdGEsIGFjdGl2YXRpb24pOworfQorCitEZWJ1Z2dlckFjdGl2YXRpb24qIERl
YnVnZ2VyQWN0aXZhdGlvbjo6Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNPYmpl
Y3QqIG9iamVjdCkKK3sKKyAgICBEZWJ1Z2dlckFjdGl2YXRpb24qIGFjdGl2YXRpb24gPSBuZXcg
KGFsbG9jYXRlQ2VsbDxEZWJ1Z2dlckFjdGl2YXRpb24+KGdsb2JhbERhdGEuaGVhcCkpIERlYnVn
Z2VyQWN0aXZhdGlvbihnbG9iYWxEYXRhKTsKKyAgICBhY3RpdmF0aW9uLT5maW5pc2hDcmVhdGlv
bihnbG9iYWxEYXRhLCBvYmplY3QpOworICAgIHJldHVybiBhY3RpdmF0aW9uOwogfQogCiB2b2lk
IERlYnVnZ2VyQWN0aXZhdGlvbjo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU09iamVjdCogYWN0aXZhdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAppbmRleCAzNDQ0YmQ4NGU1ZTZjMGE0YzRm
ZDJjYzgwOWY3ZGYyOGM1ZDhkNTMzLi5kODNiMmY3MGZjNGIwYjhhYTU5OWRmNDE0YzVmMDcyYWNk
OTg0ZDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyQWN0aXZhdGlvbi5oCkBAIC0zNCwxMiArMzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBw
dWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwogCi0gICAgICAg
IHN0YXRpYyBEZWJ1Z2dlckFjdGl2YXRpb24qIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTT2JqZWN0KiBvYmplY3QpCi0gICAgICAgIHsKLSAgICAgICAgICAgIERlYnVnZ2VyQWN0
aXZhdGlvbiogYWN0aXZhdGlvbiA9IG5ldyAoYWxsb2NhdGVDZWxsPERlYnVnZ2VyQWN0aXZhdGlv
bj4oZ2xvYmFsRGF0YS5oZWFwKSkgRGVidWdnZXJBY3RpdmF0aW9uKGdsb2JhbERhdGEsIG9iamVj
dCk7Ci0gICAgICAgICAgICByZXR1cm4gYWN0aXZhdGlvbjsKLSAgICAgICAgfQotCisgICAgICAg
IHN0YXRpYyBEZWJ1Z2dlckFjdGl2YXRpb24qIGNyZWF0ZShKU0dsb2JhbERhdGEmLCBKU09iamVj
dCopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYpOwog
ICAgICAgICB2aXJ0dWFsIFVTdHJpbmcgY2xhc3NOYW1lKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKQEAgLTY0LDcgKzU5LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiwgSlNPYmpl
Y3QqIGFjdGl2YXRpb24pOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgRGVidWdnZXJBY3RpdmF0
aW9uKEpTR2xvYmFsRGF0YSYsIEpTT2JqZWN0Kik7CisgICAgICAgIERlYnVnZ2VyQWN0aXZhdGlv
bihKU0dsb2JhbERhdGEmKTsKICAgICAgICAgV3JpdGVCYXJyaWVyPEpTQWN0aXZhdGlvbj4gbV9h
Y3RpdmF0aW9uOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FyZ3VtZW50cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1l
bnRzLmgKaW5kZXggMDlkNTVmMjE2MzU1NTQxZTRiZGRmYjIyMjU4MWI3NmYwOTMxODg3ZS4uN2Qw
YWYzZGU0ZjI4NWZkNGI2NmMwOGExZmJjN2U4MWU1MjRkYzFmMyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKQEAgLTY0LDEyICs2NCwxNCBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgc3RhdGljIEFyZ3VtZW50cyogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiAgICAgICAgIHsKICAgICAgICAgICAgIEFy
Z3VtZW50cyogYXJndW1lbnRzID0gbmV3IChhbGxvY2F0ZUNlbGw8QXJndW1lbnRzPihnbG9iYWxE
YXRhLmhlYXApKSBBcmd1bWVudHMoY2FsbEZyYW1lKTsKKyAgICAgICAgICAgIGFyZ3VtZW50cy0+
ZmluaXNoQ3JlYXRpb24oY2FsbEZyYW1lKTsKICAgICAgICAgICAgIHJldHVybiBhcmd1bWVudHM7
CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBBcmd1bWVudHMqIGNyZWF0ZU5v
UGFyYW1ldGVycyhKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQogICAgICAgICB7CiAgICAgICAgICAgICBBcmd1bWVudHMqIGFyZ3VtZW50cyA9IG5ldyAoYWxs
b2NhdGVDZWxsPEFyZ3VtZW50cz4oZ2xvYmFsRGF0YS5oZWFwKSkgQXJndW1lbnRzKGNhbGxGcmFt
ZSwgTm9QYXJhbWV0ZXJzKTsKKyAgICAgICAgICAgIGFyZ3VtZW50cy0+ZmluaXNoQ3JlYXRpb24o
Y2FsbEZyYW1lLCBOb1BhcmFtZXRlcnMpOwogICAgICAgICAgICAgcmV0dXJuIGFyZ3VtZW50czsK
ICAgICAgICAgfQogCkBAIC0xNjYsMTQgKzE2OCwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgOiBKU05vbkZpbmFsT2JqZWN0KGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCBjYWxsRnJhbWUt
PmxleGljYWxHbG9iYWxPYmplY3QoKS0+YXJndW1lbnRzU3RydWN0dXJlKCkpCiAgICAgICAgICwg
ZChhZG9wdFB0cihuZXcgQXJndW1lbnRzRGF0YSkpCiAgICAgewotICAgICAgICBmaW5pc2hDcmVh
dGlvbihjYWxsRnJhbWUpOwogICAgIH0KIAogICAgIGlubGluZSBBcmd1bWVudHM6OkFyZ3VtZW50
cyhDYWxsRnJhbWUqIGNhbGxGcmFtZSwgTm9QYXJhbWV0ZXJzVHlwZSkKICAgICAgICAgOiBKU05v
bkZpbmFsT2JqZWN0KGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCBjYWxsRnJhbWUtPmxleGljYWxH
bG9iYWxPYmplY3QoKS0+YXJndW1lbnRzU3RydWN0dXJlKCkpCiAgICAgICAgICwgZChhZG9wdFB0
cihuZXcgQXJndW1lbnRzRGF0YSkpCiAgICAgewotICAgICAgICBmaW5pc2hDcmVhdGlvbihjYWxs
RnJhbWUsIE5vUGFyYW1ldGVycyk7CiAgICAgfQogICAgIAogICAgIGlubGluZSB2b2lkIEFyZ3Vt
ZW50czo6ZmluaXNoQ3JlYXRpb24oQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXggNzhjZTAxMmQx
Yjg1Y2Y0YzY0NzA1MjBkM2UwNjM4Y2Y2Yzc1Yjk4Yy4uOTk2NzRiYjIzYjQ5ODE4YjJmM2EzNDg0
YzI2NmUwMTM5ZDg2ZWY0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5UHJvdG90eXBlLmNwcApAQCAtMTE3LDYgKzExNywxMiBAQCBjb25zdCBDbGFzc0luZm8g
QXJyYXlQcm90b3R5cGU6OnNfaW5mbyA9IHsiQXJyYXkiLCAmSlNBcnJheTo6c19pbmZvLCAwLCBF
eGVjU3RhdAogQXJyYXlQcm90b3R5cGU6OkFycmF5UHJvdG90eXBlKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNBcnJheShnbG9iYWxP
YmplY3QtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGds
b2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgQXJyYXlQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
Z2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZv
KSk7CiAgICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIDAs
IGdsb2JhbE9iamVjdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheVByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlQcm90b3R5cGUuaAppbmRleCAxMjRjNjFhYzRkYzc5ODM4NWRlZWE3ODdkZDY0ZDViY2I2ZmJh
MjU4Li45YTYyOGUwYzY5M2NhOWQ3N2U3NzZhODZhOTlkODJhMzA1YjdjN2I4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKQEAgLTQ5LDYgKzQ5
LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKKyAgICAg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCopOworCiAgICAgICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNTbG90Q291bnQgPSBKU0FycmF5OjpBbm9ueW1vdXNT
bG90Q291bnQgKyAxOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQm9vbGVhbk9iamVjdC5jcHAKaW5kZXggZTI0YTMwYTRiYjU0YWU1MDBlZDBlOWQ3MTY1ZmM5
Y2U3YTVkOWE2My4uYjllMzNkYzQ4NDI5OGI2Y2VlNjc0ZTE4ZDU0YTg3ZjYyZGFkZmQ1NyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAKQEAg
LTMwLDYgKzMwLDEyIEBAIGNvbnN0IENsYXNzSW5mbyBCb29sZWFuT2JqZWN0OjpzX2luZm8gPSB7
ICJCb29sZWFuIiwgJkpTV3JhcHBlck9iamVjdDo6c19pbmZvLCAwCiBCb29sZWFuT2JqZWN0OjpC
b29sZWFuT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCiAgICAgOiBKU1dyYXBwZXJPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogeworICAg
IGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOworfQorCit2b2lkIEJvb2xlYW5PYmplY3Q6OmZp
bmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKK3sKKyAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2Jq
ZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmgKaW5k
ZXggNzBlZDEyNjEyY2ZlOTU3MzdhMDEzZTBkN2M3NDYzMWNiOWMwNjdlZS4uODQ2MTBkOWI4MWY1
MGUxZGFiOGQ4MzQxNWRkNDc1Mjg1NDg5N2U1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuaApAQCAtMjgsNiArMjgsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICBjbGFzcyBCb29sZWFuT2JqZWN0IDogcHVibGljIEpTV3JhcHBlck9iamVjdCB7CiAg
ICAgcHJvdGVjdGVkOgogICAgICAgICBCb29sZWFuT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFN0cnVj
dHVyZSopOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYpOwogCiAg
ICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpTV3JhcHBlck9iamVjdCBCYXNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAKaW5kZXggZDhjYTA3
MjQ5MWI4NTgzZGZjODFlMTI5NWEyZDhiMzkyYTY0NDdkZi4uNmRmMzBkNzIwMTg4MTg2ZGUxMjIx
MDNlMGQ4ODBlN2Y4MmZmZjM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlSW5zdGFuY2UuY3BwCkBAIC0zNywxNSArMzcsMjcgQEAgY29uc3QgQ2xhc3NJbmZvIERh
dGVJbnN0YW5jZTo6c19pbmZvID0geyJEYXRlIiwgJkpTV3JhcHBlck9iamVjdDo6c19pbmZvLCAw
LCAwfTsKIERhdGVJbnN0YW5jZTo6RGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU1dyYXBwZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBzdHJ1Y3R1cmUpCiB7Ci0gICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKLSAgICBzZXRJ
bnRlcm5hbFZhbHVlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNOYU4oKSk7CisgICAgZmluaXNoQ3Jl
YXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKIH0KIAogRGF0ZUluc3RhbmNlOjpEYXRlSW5zdGFu
Y2UoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgZG91YmxlIHRpbWUpCiAg
ICAgOiBKU1dyYXBwZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7Cisg
ICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aW1lKTsKK30KKwordm9pZCBE
YXRlSW5zdGFuY2U6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKK3sK
KyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKKyAgICBBU1NFUlQoaW5oZXJp
dHMoJnNfaW5mbykpOworICAgIHNldEludGVybmFsVmFsdWUoZ2xvYmFsRGF0YSwganNOYU4oKSk7
Cit9CisKK3ZvaWQgRGF0ZUluc3RhbmNlOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIGRvdWJsZSB0aW1lKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2Jh
bERhdGEpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgc2V0SW50ZXJuYWxW
YWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIGpzTnVtYmVyKHRpbWVDbGlwKHRpbWUpKSk7CisgICAg
c2V0SW50ZXJuYWxWYWx1ZShnbG9iYWxEYXRhLCBqc051bWJlcih0aW1lQ2xpcCh0aW1lKSkpOwog
fQogCiBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogRGF0ZUluc3RhbmNlOjpjYWxjdWxhdGVHcmVn
b3JpYW5EYXRlVGltZShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oCmluZGV4IGFmMmRmYTA1MGIzMzI1NmIyMzhjOWQz
MGQ2Y2MyZmFlY2JkYTM2MWIuLmQ1MjAxZWUxOTI4ODY5ODc4MTE3YTA2YWNmZmNhYjVmOWIwOGY5
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5j
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oCkBA
IC0zMyw2ICszMyw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByb3RlY3RlZDoKICAgICAgICAg
RGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIGRvdWJsZSk7CiAgICAgICAgIERh
dGVJbnN0YW5jZShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqKTsKKyAgICAgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihKU0dsb2JhbERhdGEmKTsKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0ds
b2JhbERhdGEmLCBkb3VibGUpOwogICAgICAgICAKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVk
ZWYgSlNXcmFwcGVyT2JqZWN0IEJhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9ySW5zdGFuY2UuY3BwCmluZGV4IDNlMDMzN2I4OTRkMzUzN2FlMTJlZjU5NWJhOTU5
MWQ4M2U1YWQyMGYuLjRmNWU2ZTJmNTY4NDgwNjFkOGUxMzlkNWIxNzk1Zjg1NzA5ZGJlN2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCkBA
IC0yOSwyNiArMjksNiBAQCBFcnJvckluc3RhbmNlOjpFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU05vbkZpbmFsT2Jq
ZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKICAgICAsIG1fYXBwZW5kU291cmNlVG9NZXNzYWdl
KGZhbHNlKQogewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIFVTdHJpbmcoIiIsIDAp
KTsKLX0KLQotRXJyb3JJbnN0YW5jZTo6RXJyb3JJbnN0YW5jZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBVU3RyaW5nJiBtZXNzYWdlKQotICAg
IDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCi0gICAgLCBtX2FwcGVu
ZFNvdXJjZVRvTWVzc2FnZShmYWxzZSkKLXsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRh
LCBtZXNzYWdlKTsKLX0KLQotRXJyb3JJbnN0YW5jZSogRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFVTdHJp
bmcmIG1lc3NhZ2UpCi17Ci0gICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEVycm9ySW5zdGFu
Y2U+KGdsb2JhbERhdGEuaGVhcCkpIEVycm9ySW5zdGFuY2UoZ2xvYmFsRGF0YSwgc3RydWN0dXJl
LCBtZXNzYWdlKTsKLX0KLQotRXJyb3JJbnN0YW5jZSogRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKEV4
ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTVmFsdWUgbWVzc2FnZSkKLXsK
LSAgICBpZiAobWVzc2FnZS5pc1VuZGVmaW5lZCgpKQotICAgICAgICByZXR1cm4gbmV3IChhbGxv
Y2F0ZUNlbGw8RXJyb3JJbnN0YW5jZT4oKmV4ZWMtPmhlYXAoKSkpIEVycm9ySW5zdGFuY2UoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpOwotICAgIHJldHVybiBjcmVhdGUoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBzdHJ1Y3R1cmUsIG1lc3NhZ2UudG9TdHJpbmcoZXhlYykpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9ySW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5z
dGFuY2UuaAppbmRleCAwNmE5NTMyMTNjYTViZTViNDUxYTNkYzhhMTFlOTJkYWExMjc2ZjkyLi45
YzZhN2E3NzU5MTI2NjJhOTkyZjRkNTcyMDMzZDBkNmJmYWRjNjdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCkBAIC0zNiw5ICszNiwyMSBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRp
YyBFcnJvckluc3RhbmNlKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiwgY29uc3Qg
VVN0cmluZyYpOwotICAgICAgICBzdGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEV4ZWNTdGF0
ZSosIFN0cnVjdHVyZSosIEpTVmFsdWUgbWVzc2FnZSk7Ci0KKyAgICAgICAgc3RhdGljIEVycm9y
SW5zdGFuY2UqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBjb25zdCBVU3RyaW5nJiBtZXNzYWdlKQorICAgICAgICB7CisgICAgICAgICAgICBF
cnJvckluc3RhbmNlKiBpbnN0YW5jZSA9IG5ldyAoYWxsb2NhdGVDZWxsPEVycm9ySW5zdGFuY2U+
KGdsb2JhbERhdGEuaGVhcCkpIEVycm9ySW5zdGFuY2UoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsK
KyAgICAgICAgICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBtZXNzYWdl
KTsKKyAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTsKKyAgICAgICAgfQorICAgICAgICBzdGF0
aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIEpTVmFsdWUgbWVzc2FnZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG1lc3Nh
Z2UuaXNVbmRlZmluZWQoKSkgeworICAgICAgICAgICAgICAgIEVycm9ySW5zdGFuY2UqIGluc3Rh
bmNlID0gbmV3IChhbGxvY2F0ZUNlbGw8RXJyb3JJbnN0YW5jZT4oKmV4ZWMtPmhlYXAoKSkpIEVy
cm9ySW5zdGFuY2UoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAg
ICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIFVTdHJpbmco
IiIsIDApKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlKGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJl
LCBtZXNzYWdlLnRvU3RyaW5nKGV4ZWMpKTsKKyAgICAgICAgfQogCiAgICAgICAgIGJvb2wgYXBw
ZW5kU291cmNlVG9NZXNzYWdlKCkgeyByZXR1cm4gbV9hcHBlbmRTb3VyY2VUb01lc3NhZ2U7IH0K
ICAgICAgICAgdm9pZCBzZXRBcHBlbmRTb3VyY2VUb01lc3NhZ2UoKSB7IG1fYXBwZW5kU291cmNl
VG9NZXNzYWdlID0gdHJ1ZTsgfQpAQCAtNDgsNyArNjAsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgIHByb3RlY3RlZDoKICAgICAgICAgZXhwbGljaXQgRXJyb3JJbnN0YW5jZShKU0dsb2JhbERh
dGEmLCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAgZXhwbGljaXQgRXJyb3JJbnN0YW5jZShKU0dsb2Jh
bERhdGEmLCBTdHJ1Y3R1cmUqLCBjb25zdCBVU3RyaW5nJik7CiAKICAgICAgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IFVTdHJpbmcmIG1lc3Nh
Z2UpCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9yUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9y
UHJvdG90eXBlLmNwcAppbmRleCAzODYwNjhiYzNlNzhmN2JiZGRiMjRjMzQ3YzlkMWZmZDdjZWRh
ODExLi42OTg2NzUyNGM0Y2U3ZWY1Yzc2M2I2YTUyNzJlNzE2Y2U4NDk1NzljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCkBAIC01Mywx
MSArNTMsMTIgQEAgQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChFcnJvclByb3RvdHlwZSk7CiBF
cnJvclByb3RvdHlwZTo6RXJyb3JQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEVycm9ySW5z
dGFuY2UoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7Ci0gICAgY29uc3RydWN0b3JC
b2R5KGV4ZWMsIGdsb2JhbE9iamVjdCk7CisgICAgZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFs
T2JqZWN0KTsKIH0KIAotdm9pZCBFcnJvclByb3RvdHlwZTo6Y29uc3RydWN0b3JCb2R5KEV4ZWNT
dGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgRXJyb3JQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKIHsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRh
KCksICIiKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHB1dERpcmVjdChl
eGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5uYW1lLCBqc05vbnRyaXZp
YWxTdHJpbmcoZXhlYywgIkVycm9yIiksIERvbnRFbnVtKTsKICAgICBwdXRBbm9ueW1vdXNWYWx1
ZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgMCwgZ2xvYmFsT2JqZWN0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oCmluZGV4IDk4MzU3MmI2
MjIzYTdiZDM4ZmMzZTVhYTE4NTY5YmMwODQ0MGVkNzguLmQ3YjE1MjI1YzgxOGYxMmRkMWI0NjNm
ZTFmNTQ3MDhjZGZjZjQ5YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JQcm90b3R5cGUuaApAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
IHByb3RlY3RlZDoKICAgICAgICAgRXJyb3JQcm90b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAgdm9pZCBjb25zdHJ1Y3RvckJvZHkoRXhlY1N0
YXRlKiwgSlNHbG9iYWxPYmplY3QqKTsKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVj
U3RhdGUqLCBKU0dsb2JhbE9iamVjdCopOwogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEVycm9ySW5z
dGFuY2U6OlN0cnVjdHVyZUZsYWdzOwogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQW5v
bnltb3VzU2xvdENvdW50ID0gRXJyb3JJbnN0YW5jZTo6QW5vbnltb3VzU2xvdENvdW50ICsgMTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBl
cnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5j
cHAKaW5kZXggYjU4ZDg5NTE3ZTM3ZWRiYWIyNzk0MDMwMTExNmZlM2MyMjNjMzQ4Mi4uNGJjNGZh
ZTA2MDRjYjYyMThiZDk0MGVjMmFmMzRhZWRhZGEzZGYxMCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKQEAgLTQ2LDcgKzQ2LDYg
QEAgcHJpdmF0ZToKICAgICBJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSkKICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIGdsb2Jh
bERhdGEuaW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvclN0cnVjdHVyZS5nZXQoKSkKICAgICB7Ci0g
ICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIH0KIAogcHVibGljOgpAQCAt
NTQsNyArNTMsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSW50ZXJydXB0ZWRFeGVjdXRpb25F
cnJvciogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yPihnbG9iYWxE
YXRhLmhlYXApKSBJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yKGdsb2JhbERhdGEpOworICAgICAg
ICBJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yKiBlcnJvciA9IG5ldyAoYWxsb2NhdGVDZWxsPElu
dGVycnVwdGVkRXhlY3V0aW9uRXJyb3I+KGdsb2JhbERhdGEuaGVhcCkpIEludGVycnVwdGVkRXhl
Y3V0aW9uRXJyb3IoZ2xvYmFsRGF0YSk7CisgICAgICAgIGVycm9yLT5maW5pc2hDcmVhdGlvbihn
bG9iYWxEYXRhKTsKKyAgICAgICAgcmV0dXJuIGVycm9yOwogICAgIH0KIAogICAgIHZpcnR1YWwg
Q29tcGxUeXBlIGV4Y2VwdGlvblR5cGUoKSBjb25zdCB7IHJldHVybiBJbnRlcnJ1cHRlZDsgfQpA
QCAtNzIsNyArNzMsNiBAQCBwcml2YXRlOgogICAgIFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcihK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCiAgICAgICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9i
YWxEYXRhLCBnbG9iYWxEYXRhLnRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvclN0cnVjdHVyZS5nZXQo
KSkKICAgICB7Ci0gICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIH0KIAog
cHVibGljOgpAQCAtODAsNyArODAsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgVGVybWluYXRl
ZEV4ZWN1dGlvbkVycm9yKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJv
cj4oZ2xvYmFsRGF0YS5oZWFwKSkgVGVybWluYXRlZEV4ZWN1dGlvbkVycm9yKGdsb2JhbERhdGEp
OworICAgICAgICBUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3IqIGVycm9yID0gbmV3IChhbGxvY2F0
ZUNlbGw8VGVybWluYXRlZEV4ZWN1dGlvbkVycm9yPihnbG9iYWxEYXRhLmhlYXApKSBUZXJtaW5h
dGVkRXhlY3V0aW9uRXJyb3IoZ2xvYmFsRGF0YSk7CisgICAgICAgIGVycm9yLT5maW5pc2hDcmVh
dGlvbihnbG9iYWxEYXRhKTsKKyAgICAgICAgcmV0dXJuIGVycm9yOwogICAgIH0KIAogICAgIHZp
cnR1YWwgQ29tcGxUeXBlIGV4Y2VwdGlvblR5cGUoKSBjb25zdCB7IHJldHVybiBUZXJtaW5hdGVk
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCmluZGV4
IDM4OTdlOTM2OGIyZjkwNzlhYTViOTJmMmZkNDAyMTdjZTYwZTAwZTIuLjU2MTc1MjIzMDk2YTJm
MjYyMzVjZTdiMDcxNGU5NjYzZGVjOTgxNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuY3BwCkBAIC0xMjcsNyArMTI3LDYgQEAgY29uc3QgQ2xhc3NJbmZv
IEV2YWxFeGVjdXRhYmxlOjpzX2luZm8gPSB7ICJFdmFsRXhlY3V0YWJsZSIsICZTY3JpcHRFeGVj
dXRhYmxlOjoKIEV2YWxFeGVjdXRhYmxlOjpFdmFsRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBpblN0cmljdENvbnRleHQpCiAgICAgOiBT
Y3JpcHRFeGVjdXRhYmxlKGV4ZWMtPmdsb2JhbERhdGEoKS5ldmFsRXhlY3V0YWJsZVN0cnVjdHVy
ZS5nZXQoKSwgZXhlYywgc291cmNlLCBpblN0cmljdENvbnRleHQpCiB7Ci0gICAgZmluaXNoQ3Jl
YXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKIH0KIAogRXZhbEV4ZWN1dGFibGU6On5FdmFsRXhl
Y3V0YWJsZSgpCkBAIC0xMzksNyArMTM4LDYgQEAgY29uc3QgQ2xhc3NJbmZvIFByb2dyYW1FeGVj
dXRhYmxlOjpzX2luZm8gPSB7ICJQcm9ncmFtRXhlY3V0YWJsZSIsICZTY3JpcHRFeGVjdXQKIFBy
b2dyYW1FeGVjdXRhYmxlOjpQcm9ncmFtRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IFNvdXJjZUNvZGUmIHNvdXJjZSkKICAgICA6IFNjcmlwdEV4ZWN1dGFibGUoZXhlYy0+Z2xvYmFs
RGF0YSgpLnByb2dyYW1FeGVjdXRhYmxlU3RydWN0dXJlLmdldCgpLCBleGVjLCBzb3VyY2UsIGZh
bHNlKQogewotICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CiB9CiAKIFBy
b2dyYW1FeGVjdXRhYmxlOjp+UHJvZ3JhbUV4ZWN1dGFibGUoKQpAQCAtMTQ4LDcgKzE0Niw3IEBA
IFByb2dyYW1FeGVjdXRhYmxlOjp+UHJvZ3JhbUV4ZWN1dGFibGUoKQogCiBjb25zdCBDbGFzc0lu
Zm8gRnVuY3Rpb25FeGVjdXRhYmxlOjpzX2luZm8gPSB7ICJGdW5jdGlvbkV4ZWN1dGFibGUiLCAm
U2NyaXB0RXhlY3V0YWJsZTo6c19pbmZvLCAwLCAwIH07CiAKLUZ1bmN0aW9uRXhlY3V0YWJsZTo6
RnVuY3Rpb25FeGVjdXRhYmxlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRp
ZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBib29sIGZvcmNlVXNlc0FyZ3Vt
ZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzLCBib29sIGluU3RyaWN0Q29udGV4
dCwgaW50IGZpcnN0TGluZSwgaW50IGxhc3RMaW5lKQorRnVuY3Rpb25FeGVjdXRhYmxlOjpGdW5j
dGlvbkV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVy
JiBuYW1lLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRz
LCBGdW5jdGlvblBhcmFtZXRlcnMqIHBhcmFtZXRlcnMsIGJvb2wgaW5TdHJpY3RDb250ZXh0KQog
ICAgIDogU2NyaXB0RXhlY3V0YWJsZShnbG9iYWxEYXRhLmZ1bmN0aW9uRXhlY3V0YWJsZVN0cnVj
dHVyZS5nZXQoKSwgZ2xvYmFsRGF0YSwgc291cmNlLCBpblN0cmljdENvbnRleHQpCiAgICAgLCBt
X251bUNhcHR1cmVkVmFyaWFibGVzKDApCiAgICAgLCBtX2ZvcmNlVXNlc0FyZ3VtZW50cyhmb3Jj
ZVVzZXNBcmd1bWVudHMpCkBAIC0xNTYsMTAgKzE1NCw5IEBAIEZ1bmN0aW9uRXhlY3V0YWJsZTo6
RnVuY3Rpb25FeGVjdXRhYmxlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRp
ZmllCiAgICAgLCBtX25hbWUobmFtZSkKICAgICAsIG1fc3ltYm9sVGFibGUoMCkKIHsKLSAgICBm
aW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBuYW1lLCBmaXJzdExpbmUsIGxhc3RMaW5lKTsKIH0K
IAotRnVuY3Rpb25FeGVjdXRhYmxlOjpGdW5jdGlvbkV4ZWN1dGFibGUoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJvb2wg
Zm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqIHBhcmFtZXRlcnMsIGJvb2wg
aW5TdHJpY3RDb250ZXh0LCBpbnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpCitGdW5jdGlvbkV4
ZWN1dGFibGU6OkZ1bmN0aW9uRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBmb3JjZVVzZXNBcmd1
bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyogcGFyYW1ldGVycywgYm9vbCBpblN0cmljdENvbnRl
eHQpCiAgICAgOiBTY3JpcHRFeGVjdXRhYmxlKGV4ZWMtPmdsb2JhbERhdGEoKS5mdW5jdGlvbkV4
ZWN1dGFibGVTdHJ1Y3R1cmUuZ2V0KCksIGV4ZWMsIHNvdXJjZSwgaW5TdHJpY3RDb250ZXh0KQog
ICAgICwgbV9udW1DYXB0dXJlZFZhcmlhYmxlcygwKQogICAgICwgbV9mb3JjZVVzZXNBcmd1bWVu
dHMoZm9yY2VVc2VzQXJndW1lbnRzKQpAQCAtMTY3LDcgKzE2NCw2IEBAIEZ1bmN0aW9uRXhlY3V0
YWJsZTo6RnVuY3Rpb25FeGVjdXRhYmxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgbmFtZSwKICAgICAsIG1fbmFtZShuYW1lKQogICAgICwgbV9zeW1ib2xUYWJsZSgwKQogewot
ICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFtZSwgZmlyc3RMaW5lLCBs
YXN0TGluZSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXhlY3V0YWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJs
ZS5oCmluZGV4IDVmYWRiYjgxMjQxYTBjZTNlMTM4MzE4NTg4YWY0MjExNjdmYTFiNjkuLjYzOWJi
ZTQ3MDBhZjMzNDM0MjQxZDE1NTA4YWRkN2Q0MWE3MmExN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKQEAgLTE3NiwxNiArMTc2LDIxIEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBzdGF0aWMgTmF0aXZlRXhlY3V0YWJsZSogY3JlYXRlKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNhbGxUaHVuaywgTmF0aXZl
RnVuY3Rpb24gZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb25zdHJ1Y3RUaHVuaywg
TmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IpCiAgICAgICAgIHsKICAgICAgICAgICAgIE5hdGl2
ZUV4ZWN1dGFibGUqIGV4ZWN1dGFibGU7Ci0gICAgICAgICAgICBpZiAoIWNhbGxUaHVuaykKLSAg
ICAgICAgICAgICAgICBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8TmF0aXZlRXhlY3V0
YWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkgTmF0aXZlRXhlY3V0YWJsZShnbG9iYWxEYXRhLCBKSVRD
b2RlKCksIGZ1bmN0aW9uLCBKSVRDb2RlKCksIGNvbnN0cnVjdG9yKTsKLSAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8TmF0aXZl
RXhlY3V0YWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkgTmF0aXZlRXhlY3V0YWJsZShnbG9iYWxEYXRh
LCBKSVRDb2RlOjpIb3N0RnVuY3Rpb24oY2FsbFRodW5rKSwgZnVuY3Rpb24sIEpJVENvZGU6Okhv
c3RGdW5jdGlvbihjb25zdHJ1Y3RUaHVuayksIGNvbnN0cnVjdG9yKTsKKyAgICAgICAgICAgIGlm
ICghY2FsbFRodW5rKSB7CisgICAgICAgICAgICAgICAgZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2Nh
dGVDZWxsPE5hdGl2ZUV4ZWN1dGFibGU+KGdsb2JhbERhdGEuaGVhcCkpIE5hdGl2ZUV4ZWN1dGFi
bGUoZ2xvYmFsRGF0YSwgZnVuY3Rpb24sIGNvbnN0cnVjdG9yKTsKKyAgICAgICAgICAgICAgICBl
eGVjdXRhYmxlLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBKSVRDb2RlKCksIEpJVENvZGUo
KSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBu
ZXcgKGFsbG9jYXRlQ2VsbDxOYXRpdmVFeGVjdXRhYmxlPihnbG9iYWxEYXRhLmhlYXApKSBOYXRp
dmVFeGVjdXRhYmxlKGdsb2JhbERhdGEsIGZ1bmN0aW9uLCBjb25zdHJ1Y3Rvcik7CisgICAgICAg
ICAgICAgICAgZXhlY3V0YWJsZS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgSklUQ29kZTo6
SG9zdEZ1bmN0aW9uKGNhbGxUaHVuayksIEpJVENvZGU6Okhvc3RGdW5jdGlvbihjb25zdHJ1Y3RU
aHVuaykpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CiAg
ICAgICAgIH0KICNlbHNlCiAgICAgICAgIHN0YXRpYyBOYXRpdmVFeGVjdXRhYmxlKiBjcmVhdGUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgTmF0aXZl
RnVuY3Rpb24gY29uc3RydWN0b3IpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcg
KGFsbG9jYXRlQ2VsbDxOYXRpdmVFeGVjdXRhYmxlPihnbG9iYWxEYXRhLmhlYXApKSBOYXRpdmVF
eGVjdXRhYmxlKGdsb2JhbERhdGEsIGZ1bmN0aW9uLCBjb25zdHJ1Y3Rvcik7CisgICAgICAgICAg
ICBOYXRpdmVFeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8TmF0aXZl
RXhlY3V0YWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkgTmF0aXZlRXhlY3V0YWJsZShnbG9iYWxEYXRh
LCBmdW5jdGlvbiwgY29uc3RydWN0b3IpOworICAgICAgICAgICAgZXhlY3V0YWJsZS0+ZmluaXNo
Q3JlYXRpb24oZ2xvYmFsRGF0YSk7CisgICAgICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAg
ICAgICAgfQogI2VuZGlmCiAKQEAgLTIxMSwxMiArMjE2LDExIEBAIG5hbWVzcGFjZSBKU0Mgewog
IAogICAgIHByaXZhdGU6CiAjaWYgRU5BQkxFKEpJVCkKLSAgICAgICAgTmF0aXZlRXhlY3V0YWJs
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpJVENvZGUgY2FsbFRodW5rLCBOYXRpdmVGdW5j
dGlvbiBmdW5jdGlvbiwgSklUQ29kZSBjb25zdHJ1Y3RUaHVuaywgTmF0aXZlRnVuY3Rpb24gY29u
c3RydWN0b3IpCisgICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3Ip
CiAgICAgICAgICAgICA6IEV4ZWN1dGFibGVCYXNlKGdsb2JhbERhdGEsIGdsb2JhbERhdGEubmF0
aXZlRXhlY3V0YWJsZVN0cnVjdHVyZS5nZXQoKSwgTlVNX1BBUkFNRVRFUlNfSVNfSE9TVCkKICAg
ICAgICAgICAgICwgbV9mdW5jdGlvbihmdW5jdGlvbikKICAgICAgICAgICAgICwgbV9jb25zdHJ1
Y3Rvcihjb25zdHJ1Y3RvcikKICAgICAgICAgewotICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24o
Z2xvYmFsRGF0YSwgY2FsbFRodW5rLCBjb25zdHJ1Y3RUaHVuayk7CiAgICAgICAgIH0KICNlbHNl
CiAgICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBOYXRp
dmVGdW5jdGlvbiBmdW5jdGlvbiwgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IpCkBAIC0yMjQs
NyArMjI4LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAsIG1fZnVuY3Rpb24oZnVu
Y3Rpb24pCiAgICAgICAgICAgICAsIG1fY29uc3RydWN0b3IoY29uc3RydWN0b3IpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgICAgICB9CiAj
ZW5kaWYKIApAQCAtMzE3LDYgKzMyMCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0
aWMgRXZhbEV4ZWN1dGFibGUqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNv
ZGUmIHNvdXJjZSwgYm9vbCBpc0luU3RyaWN0Q29udGV4dCkgCiAgICAgICAgIHsKICAgICAgICAg
ICAgIEV2YWxFeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8RXZhbEV4
ZWN1dGFibGU+KCpleGVjLT5oZWFwKCkpKSBFdmFsRXhlY3V0YWJsZShleGVjLCBzb3VyY2UsIGlz
SW5TdHJpY3RDb250ZXh0KTsKKyAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9u
KGV4ZWMtPmdsb2JhbERhdGEoKSk7CiAgICAgICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAg
ICAgICAgfQogCkBAIC0zNTQsNiArMzU4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0
YXRpYyBQcm9ncmFtRXhlY3V0YWJsZSogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291
cmNlQ29kZSYgc291cmNlKQogICAgICAgICB7CiAgICAgICAgICAgICBQcm9ncmFtRXhlY3V0YWJs
ZSogZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2NhdGVDZWxsPFByb2dyYW1FeGVjdXRhYmxlPigqZXhl
Yy0+aGVhcCgpKSkgUHJvZ3JhbUV4ZWN1dGFibGUoZXhlYywgc291cmNlKTsKKyAgICAgICAgICAg
IGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CiAgICAgICAg
ICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAgICAgICAgfQogCkBAIC00MTIsMTMgKzQxNywxNSBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgRnVuY3Rpb25FeGVjdXRhYmxlKiBj
cmVhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25zdCBTb3Vy
Y2VDb2RlJiBzb3VyY2UsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRl
cnMqIHBhcmFtZXRlcnMsIGJvb2wgaXNJblN0cmljdENvbnRleHQsIGludCBmaXJzdExpbmUsIGlu
dCBsYXN0TGluZSkKICAgICAgICAgewotICAgICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBl
eGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8RnVuY3Rpb25FeGVjdXRhYmxlPigqZXhlYy0+
aGVhcCgpKSkgRnVuY3Rpb25FeGVjdXRhYmxlKGV4ZWMsIG5hbWUsIHNvdXJjZSwgZm9yY2VVc2Vz
QXJndW1lbnRzLCBwYXJhbWV0ZXJzLCBpc0luU3RyaWN0Q29udGV4dCwgZmlyc3RMaW5lLCBsYXN0
TGluZSk7CisgICAgICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcg
KGFsbG9jYXRlQ2VsbDxGdW5jdGlvbkV4ZWN1dGFibGU+KCpleGVjLT5oZWFwKCkpKSBGdW5jdGlv
bkV4ZWN1dGFibGUoZXhlYywgbmFtZSwgc291cmNlLCBmb3JjZVVzZXNBcmd1bWVudHMsIHBhcmFt
ZXRlcnMsIGlzSW5TdHJpY3RDb250ZXh0KTsKKyAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlz
aENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFtZSwgZmlyc3RMaW5lLCBsYXN0TGluZSk7
CiAgICAgICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0
YXRpYyBGdW5jdGlvbkV4ZWN1dGFibGUqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBm
b3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyogcGFyYW1ldGVycywgYm9vbCBp
c0luU3RyaWN0Q29udGV4dCwgaW50IGZpcnN0TGluZSwgaW50IGxhc3RMaW5lKQogICAgICAgICB7
Ci0gICAgICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9j
YXRlQ2VsbDxGdW5jdGlvbkV4ZWN1dGFibGU+KGdsb2JhbERhdGEuaGVhcCkpIEZ1bmN0aW9uRXhl
Y3V0YWJsZShnbG9iYWxEYXRhLCBuYW1lLCBzb3VyY2UsIGZvcmNlVXNlc0FyZ3VtZW50cywgcGFy
YW1ldGVycywgaXNJblN0cmljdENvbnRleHQsIGZpcnN0TGluZSwgbGFzdExpbmUpOworICAgICAg
ICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8
RnVuY3Rpb25FeGVjdXRhYmxlPihnbG9iYWxEYXRhLmhlYXApKSBGdW5jdGlvbkV4ZWN1dGFibGUo
Z2xvYmFsRGF0YSwgbmFtZSwgc291cmNlLCBmb3JjZVVzZXNBcmd1bWVudHMsIHBhcmFtZXRlcnMs
IGlzSW5TdHJpY3RDb250ZXh0KTsKKyAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0
aW9uKGdsb2JhbERhdGEsIG5hbWUsIGZpcnN0TGluZSwgbGFzdExpbmUpOwogICAgICAgICAgICAg
cmV0dXJuIGV4ZWN1dGFibGU7CiAgICAgICAgIH0KIApAQCAtNTM5LDggKzU0Niw4IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBGdW5jdGlvbkV4
ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291
cmNlQ29kZSYsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqLCBi
b29sLCBpbnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpOwotICAgICAgICBGdW5jdGlvbkV4ZWN1
dGFibGUoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29k
ZSYsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqLCBib29sLCBp
bnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpOworICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUo
SlNHbG9iYWxEYXRhJiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29kZSYs
IGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqLCBib29sKTsKKyAg
ICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIG5h
bWUsIGNvbnN0IFNvdXJjZUNvZGUmLCBib29sIGZvcmNlVXNlc0FyZ3VtZW50cywgRnVuY3Rpb25Q
YXJhbWV0ZXJzKiwgYm9vbCk7CiAKICAgICAgICAgSlNPYmplY3QqIGNvbXBpbGVGb3JDYWxsSW50
ZXJuYWwoRXhlY1N0YXRlKiwgU2NvcGVDaGFpbk5vZGUqLCBFeGVjU3RhdGUqIGNhbGxlZUFyZ3NF
eGVjKTsKICAgICAgICAgSlNPYmplY3QqIGNvbXBpbGVGb3JDb25zdHJ1Y3RJbnRlcm5hbChFeGVj
U3RhdGUqLCBTY29wZUNoYWluTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAppbmRleCBiY2ExNzQ3MTMyZDRjOTczMTdkNTdj
ZDgwZTQ5MWQ0ODYyOGFjZTkwLi4wN2MwZjdmNWJmNjVhM2U3NTZiNTFjMjQwMzdjYWNjMzNjNDJl
NjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1
bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1
bmN0aW9uLmNwcApAQCAtNDQsNyArNDQsMTQgQEAgSW50ZXJuYWxGdW5jdGlvbjo6SW50ZXJuYWxG
dW5jdGlvbihWUHRyU3RlYWxpbmdIYWNrVHlwZSkKIEludGVybmFsRnVuY3Rpb246OkludGVybmFs
RnVuY3Rpb24oSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKICAg
ICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKIHsK
LSAgICBjb25zdHJ1Y3RvckJvZHkoKmdsb2JhbERhdGEsIG5hbWUpOworICAgIGZpbmlzaENyZWF0
aW9uKCpnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIG5hbWUpOworfQorCit2b2lkIEludGVybmFs
RnVuY3Rpb246OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKK3sKKyAgICBC
YXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QpOworICAgIEFTU0VS
VChpbmhlcml0cygmc19pbmZvKSk7CisgICAgcHV0RGlyZWN0KGdsb2JhbERhdGEsIGdsb2JhbERh
dGEucHJvcGVydHlOYW1lcy0+bmFtZSwganNTdHJpbmcoJmdsb2JhbERhdGEsIG5hbWUuaXNOdWxs
KCkgPyAiIiA6IG5hbWUudXN0cmluZygpKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVu
dW0pOwogfQogCiBjb25zdCBVU3RyaW5nJiBJbnRlcm5hbEZ1bmN0aW9uOjpuYW1lKEV4ZWNTdGF0
ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVy
bmFsRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVu
Y3Rpb24uaAppbmRleCAxNDM2ZjMyZDZlN2E3ZGUyOGY1NGY5MTA5MDNiZDFmNzgxMDcwZTY1Li42
MDY3YmU4ZGJmZGRiMzdjYTQ2MDc5ODFhNzMwOGE1ODM4MDY4NWNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCkBAIC01NCwxMSArNTQs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBJbnRlcm5hbEZ1bmN0aW9uKEpTR2xvYmFs
RGF0YSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgY29uc3QgSWRlbnRpZmllciYpOwog
Ci0gICAgICAgIHZvaWQgY29uc3RydWN0b3JCb2R5KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSkKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGlu
aGVyaXRzKCZzX2luZm8pKTsKLSAgICAgICAgICAgIHB1dERpcmVjdChnbG9iYWxEYXRhLCBnbG9i
YWxEYXRhLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzU3RyaW5nKCZnbG9iYWxEYXRhLCBuYW1lLmlz
TnVsbCgpID8gIiIgOiBuYW1lLnVzdHJpbmcoKSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERv
bnRFbnVtKTsKLSAgICAgICAgfQorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
RGF0YSYsIEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSk7CiAKICAgICBw
cml2YXRlOgogICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJikg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0
aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAK
aW5kZXggNTAyODkwMmM5OTJkMTRhMTI1NGE3M2EwZGRjNjljOTlmN2ZhMGI2Mi4uNWM5OWQ3YTY1
NDM4ZDFjZTc5ZGM3Y2I1MDVhODU3N2EzZjY5N2JlYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCkBAIC00Niw2ICs0NiwxMiBAQCBKU0FjdGl2
YXRpb246OkpTQWN0aXZhdGlvbihDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRnVuY3Rpb25FeGVjdXRh
YmxlKiBmdW5jdGlvbkV4ZQogICAgICwgbV9yZXF1aXJlc0R5bmFtaWNDaGVja3MoZnVuY3Rpb25F
eGVjdXRhYmxlLT51c2VzRXZhbCgpKQogICAgICwgbV9hcmd1bWVudHNSZWdpc3RlcihmdW5jdGlv
bkV4ZWN1dGFibGUtPmdlbmVyYXRlZEJ5dGVjb2RlKCkuYXJndW1lbnRzUmVnaXN0ZXIoKSkKIHsK
KyAgICBmaW5pc2hDcmVhdGlvbihjYWxsRnJhbWUpOworfQorCit2b2lkIEpTQWN0aXZhdGlvbjo6
ZmluaXNoQ3JlYXRpb24oQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7CisgICAgQmFzZTo6ZmluaXNo
Q3JlYXRpb24oY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0cygm
c19pbmZvKSk7CiAKICAgICAvLyBXZSBoYXZlIHRvIG1hbnVhbGx5IHJlZiBhbmQgZGVyZWYgdGhl
IHN5bWJvbCB0YWJsZSBhcyBKU1ZhcmlhYmxlT2JqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCmluZGV4IGYxNTkxYWFhMTgwZWFlMTNmMzVmNTkyMDY0
ODQyMDliYjNmOGUwYWQuLmRhMmU0NjU1ZTA2OTRmN2M1OTNkM2FmMTcxZDYwMGZkMDcwNjYyNWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCkBAIC03
Nyw2ICs3Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKSB7
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyB9
CiAKICAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oQ2FsbEZyYW1l
Kik7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IElzRW52
aXJvbm1lbnRSZWNvcmQgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNW
aXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEpTVmFyaWFibGVPYmpl
Y3Q6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheS5jcHAKaW5kZXggMTg1ZDdhZWI2YmZjNDUyOTE2YmJmZWJiMTcxMDRk
YjA3Njc1ZDkzMi4uNGIwY2FhMjIxNjgyZjZjNjhhNjA1ZThhZjllNTQwNjY1OGMwMzJjYSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKQEAgLTEzNCwxOSArMTM0
LDYgQEAgSlNBcnJheTo6SlNBcnJheShWUHRyU3RlYWxpbmdIYWNrVHlwZSkKIEpTQXJyYXk6OkpT
QXJyYXkoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAg
ICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogewotICAgIGZpbmlz
aENyZWF0aW9uKGdsb2JhbERhdGEpOwotfQotCi1KU0FycmF5OjpKU0FycmF5KEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVuc2lnbmVkIGluaXRpYWxMZW5n
dGgsIEFycmF5Q3JlYXRpb25Nb2RlIGNyZWF0aW9uTW9kZSkKLSAgICA6IEpTTm9uRmluYWxPYmpl
Y3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQotewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERh
dGEsIGluaXRpYWxMZW5ndGgsIGNyZWF0aW9uTW9kZSk7Ci19Ci0KLUpTQXJyYXk6OkpTQXJyYXko
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgQXJn
TGlzdCYgbGlzdCkKLSAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJl
KQotewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGxpc3QpOwogfQogCiB2b2lkIEpT
QXJyYXk6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAppbmRleCBlOGUxZmE5MmQ1ZmQ0MDE5MzFlNzgy
MzVkMzI2NTQxMzlkNjZkZmU2Li5iYTJlMTdjZWFjOTk4ZjAzZDdjYWIwNTliMzk5ZDg0OWMxMzUy
OTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCkBAIC02Miw4ICs2
Miw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBleHBsaWNp
dCBKU0FycmF5KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSopOwotICAgICAgICBKU0FycmF5KEpT
R2xvYmFsRGF0YSYsIFN0cnVjdHVyZSosIHVuc2lnbmVkIGluaXRpYWxMZW5ndGgsIEFycmF5Q3Jl
YXRpb25Nb2RlKTsKLSAgICAgICAgSlNBcnJheShKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqLCBj
b25zdCBBcmdMaXN0JiBpbml0aWFsVmFsdWVzKTsKIAogICAgICAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEpTR2xvYmFsRGF0YSYpOwogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
RGF0YSYsIHVuc2lnbmVkIGluaXRpYWxMZW5ndGgsIEFycmF5Q3JlYXRpb25Nb2RlKTsKQEAgLTc3
LDE5ICs3NSwyNSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgSlNBcnJheSog
Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0FycmF5Pihn
bG9iYWxEYXRhLmhlYXApKSBKU0FycmF5KGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7CisgICAgICAg
ICAgICBKU0FycmF5KiBhcnJheSA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTQXJyYXk+KGdsb2JhbERh
dGEuaGVhcCkpIEpTQXJyYXkoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIGFy
cmF5LT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKKyAgICAgICAgICAgIHJldHVybiBhcnJh
eTsKICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICBzdGF0aWMgSlNBcnJheSogY3JlYXRl
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVuc2lnbmVk
IGluaXRpYWxMZW5ndGgsIEFycmF5Q3JlYXRpb25Nb2RlIGNyZWF0ZU1vZGUpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0FycmF5PihnbG9iYWxEYXRh
LmhlYXApKSBKU0FycmF5KGdsb2JhbERhdGEsIHN0cnVjdHVyZSwgaW5pdGlhbExlbmd0aCwgY3Jl
YXRlTW9kZSk7CisgICAgICAgICAgICBKU0FycmF5KiBhcnJheSA9IG5ldyAoYWxsb2NhdGVDZWxs
PEpTQXJyYXk+KGdsb2JhbERhdGEuaGVhcCkpIEpTQXJyYXkoZ2xvYmFsRGF0YSwgc3RydWN0dXJl
KTsKKyAgICAgICAgICAgIGFycmF5LT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBpbml0aWFs
TGVuZ3RoLCBjcmVhdGVNb2RlKTsKKyAgICAgICAgICAgIHJldHVybiBhcnJheTsKICAgICAgICAg
fQotICAgICAgICAKKwogICAgICAgICBzdGF0aWMgSlNBcnJheSogY3JlYXRlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IEFyZ0xpc3QmIGluaXRp
YWxWYWx1ZXMpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2Vs
bDxKU0FycmF5PihnbG9iYWxEYXRhLmhlYXApKSBKU0FycmF5KGdsb2JhbERhdGEsIHN0cnVjdHVy
ZSwgaW5pdGlhbFZhbHVlcyk7CisgICAgICAgICAgICBKU0FycmF5KiBhcnJheSA9IG5ldyAoYWxs
b2NhdGVDZWxsPEpTQXJyYXk+KGdsb2JhbERhdGEuaGVhcCkpIEpTQXJyYXkoZ2xvYmFsRGF0YSwg
c3RydWN0dXJlKTsKKyAgICAgICAgICAgIGFycmF5LT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRh
LCBpbml0aWFsVmFsdWVzKTsKKyAgICAgICAgICAgIHJldHVybiBhcnJheTsKICAgICAgICAgfQot
ICAgICAgICAKKwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlEZXNjcmlwdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0J5dGVBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5
dGVBcnJheS5jcHAKaW5kZXggYmJlNzYzMmEyZTIxYTM5OTdkNDczNWVmNjZjZDFkM2Y3NjcxYTA3
OS4uNGVlNjU0YzBmMzI5MTMzZTE0OWFkOWNlZGY1MmNlOTJjZTFkNWExOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcApAQCAtMzksMTQgKzM5LDgg
QEAgSlNCeXRlQXJyYXk6OkpTQnl0ZUFycmF5KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEJ5dGVBcnJheSogc3RvcmEKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiAgICAgLCBtX3N0b3JhZ2Uoc3RvcmFnZSkKIHsKLSAg
ICBmaW5pc2hDcmVhdGlvbihleGVjKTsKIH0KICAgICAgICAgCi1KU0J5dGVBcnJheSogSlNCeXRl
QXJyYXk6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBCeXRl
QXJyYXkqIHN0b3JhZ2UpCi17Ci0gICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEpTQnl0ZUFy
cmF5PigqZXhlYy0+aGVhcCgpKSkgSlNCeXRlQXJyYXkoZXhlYywgc3RydWN0dXJlLCBzdG9yYWdl
KTsKLX0KLQogI2lmICFBU1NFUlRfRElTQUJMRUQKIEpTQnl0ZUFycmF5Ojp+SlNCeXRlQXJyYXko
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJy
YXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKaW5kZXgg
MjhlYmQ3ZDBmNThlY2I0NGFhMmIxNmU3MDQ2ZDQ4ZDkzMjRhZTExZC4uYjIxZDM3MTI1NDFmN2I5
NGVlM2E5M2Q0N2EzZWQyOWJlNjM2N2EzOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0J5dGVBcnJheS5oCkBAIC03OSw3ICs3OSwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgSlNCeXRlQXJyYXkoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgQnl0ZUFycmF5KiBzdG9y
YWdlKTsKICAgICAgICAgCiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgSlNCeXRlQXJyYXkq
IGNyZWF0ZShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCBCeXRlQXJyYXkqKTsKKyAgICAgICAgc3Rh
dGljIEpTQnl0ZUFycmF5KiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgQnl0ZUFycmF5KiBzdG9yYWdlKQorICAgICAgICB7CisgICAgICAgICAgICBKU0J5dGVB
cnJheSogYXJyYXkgPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0J5dGVBcnJheT4oKmV4ZWMtPmhlYXAo
KSkpIEpTQnl0ZUFycmF5KGV4ZWMsIHN0cnVjdHVyZSwgc3RvcmFnZSk7CisgICAgICAgICAgICBh
cnJheS0+ZmluaXNoQ3JlYXRpb24oZXhlYyk7CisgICAgICAgICAgICByZXR1cm4gYXJyYXk7Cisg
ICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNH
bG9iYWxEYXRhJiwgSlNWYWx1ZSBwcm90b3R5cGUsIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiA9ICZz
X2RlZmF1bHRJbmZvKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0
aW9uLmNwcAppbmRleCA0OTlhZWI2ZDI3NDhjMjk0MDg5MGJjMmJiYzdkZDhkYTg2NGViZWVkLi5k
YWY0Y2E5NTgyOTdmMzE4N2M3YTZjY2NjZjQzOTYwNTgwYzhlY2RkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtNjEsMjEgKzYxLDExIEBAIEpT
RnVuY3Rpb246OkpTRnVuY3Rpb24oVlB0clN0ZWFsaW5nSGFja1R5cGUpCiB7CiB9CiAKLUpTRnVu
Y3Rpb246OkpTRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmll
ciYgbmFtZSwgTmF0aXZlRXhlY3V0YWJsZSogdGh1bmspCitKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9u
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogICAgICwg
bV9leGVjdXRhYmxlKCkKICAgICAsIG1fc2NvcGVDaGFpbihleGVjLT5nbG9iYWxEYXRhKCksIHRo
aXMsIGdsb2JhbE9iamVjdC0+Z2xvYmFsU2NvcGVDaGFpbigpKQogewotICAgIGNvbnN0cnVjdG9y
Qm9keShleGVjLCBsZW5ndGgsIG5hbWUsIHRodW5rKTsKLX0KLQotSlNGdW5jdGlvbjo6SlNGdW5j
dGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBOYXRp
dmVGdW5jdGlvbiBmdW5jKQotICAgIDogQmFzZShnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKLSAg
ICAsIG1fZXhlY3V0YWJsZSgpCi0gICAgLCBtX3Njb3BlQ2hhaW4oZXhlYy0+Z2xvYmFsRGF0YSgp
LCB0aGlzLCBnbG9iYWxPYmplY3QtPmdsb2JhbFNjb3BlQ2hhaW4oKSkKLXsKLSAgICAvLyBDYW4n
dCBkbyB0aGlzIGR1cmluZyBpbml0aWFsaXphdGlvbiBiZWNhdXNlIGdldEhvc3RGdW5jdGlvbiBt
aWdodCBkbyBhIEdDIGFsbG9jYXRpb24uCi0gICAgY29uc3RydWN0b3JCb2R5KGV4ZWMsIGxlbmd0
aCwgbmFtZSwgIGV4ZWMtPmdsb2JhbERhdGEoKS5nZXRIb3N0RnVuY3Rpb24oZnVuYykpOwogfQog
CiBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgRnVuY3Rpb25FeGVjdXRh
YmxlKiBleGVjdXRhYmxlLCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbk5vZGUpCkBAIC04Mywx
OSArNzMsMjUgQEAgSlNGdW5jdGlvbjo6SlNGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEZ1bmN0
aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgU2NvcGVDaGEKICAgICAsIG1fZXhlY3V0YWJsZShl
eGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIGV4ZWN1dGFibGUpCiAgICAgLCBtX3Njb3BlQ2hhaW4o
ZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBzY29wZUNoYWluTm9kZSkKIHsKLSAgICBBU1NFUlQo
aW5oZXJpdHMoJnNfaW5mbykpOwotICAgIHNldFN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCks
IHNjb3BlQ2hhaW5Ob2RlLT5nbG9iYWxPYmplY3QtPm5hbWVkRnVuY3Rpb25TdHJ1Y3R1cmUoKSk7
Ci0gICAgcHV0RGlyZWN0T2Zmc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgc2NvcGVDaGFpbk5vZGUt
Pmdsb2JhbE9iamVjdC0+ZnVuY3Rpb25OYW1lT2Zmc2V0KCksIGV4ZWN1dGFibGUtPm5hbWVWYWx1
ZSgpKTsKIH0KIAotaW5saW5lIHZvaWQgSlNGdW5jdGlvbjo6Y29uc3RydWN0b3JCb2R5KEV4ZWNT
dGF0ZSogZXhlYywgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgRXhlY3V0YWJs
ZUJhc2UqIGV4ZWN1dGFibGUpCit2b2lkIEpTRnVuY3Rpb246OmZpbmlzaENyZWF0aW9uKEV4ZWNT
dGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50IGxlbmd0aCwgY29u
c3QgSWRlbnRpZmllciYgbmFtZSwgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUpCiB7CisgICAg
QmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9i
amVjdCk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAgICBtX2V4ZWN1dGFibGUu
c2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgZXhlY3V0YWJsZSk7CiAgICAgcHV0RGlyZWN0
KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+Z2xvYmFsRGF0YSgpLnByb3BlcnR5TmFtZXMtPm5h
bWUsIGpzU3RyaW5nKGV4ZWMsIG5hbWUuaXNOdWxsKCkgPyAiIiA6IG5hbWUudXN0cmluZygpKSwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdChleGVjLT5n
bG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKGxlbmd0
aCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKIH0KIAordm9pZCBKU0Z1bmN0
aW9uOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgU2NvcGVDaGFpbk5vZGUq
IHNjb3BlQ2hhaW5Ob2RlKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVj
dC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOworICAgIEFTU0VSVChpbmhlcml0cygmc19p
bmZvKSk7CisgICAgc2V0U3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgc2NvcGVDaGFpbk5v
ZGUtPmdsb2JhbE9iamVjdC0+bmFtZWRGdW5jdGlvblN0cnVjdHVyZSgpKTsKKyAgICBwdXREaXJl
Y3RPZmZzZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzY29wZUNoYWluTm9kZS0+Z2xvYmFsT2JqZWN0
LT5mdW5jdGlvbk5hbWVPZmZzZXQoKSwgZXhlY3V0YWJsZS0+bmFtZVZhbHVlKCkpOworfQorCiBK
U0Z1bmN0aW9uOjp+SlNGdW5jdGlvbigpCiB7CiAgICAgQVNTRVJUKHZwdHIoKSA9PSBKU0dsb2Jh
bERhdGE6OmpzRnVuY3Rpb25WUHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uaAppbmRleCA4YjczYjBiZTJmMmEyOTk3ZDkwOTA2MDEyOTczMGQwZGY1MGEwZGQ3
Li41NTkzYjhhYWJiNzAwZThkOTUxODg5NTZlN2Y2YjJhMzcyZTBjZDI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCkBAIC00NiwyNCArNDYsMzMgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBERkc6OkpJVENvZGVHZW5lcmF0b3I7
CiAgICAgICAgIGZyaWVuZCBjbGFzcyBKU0dsb2JhbERhdGE7CiAKLSAgICAgICAgSlNGdW5jdGlv
bihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGludCBsZW5ndGgsIGNv
bnN0IElkZW50aWZpZXImLCBOYXRpdmVGdW5jdGlvbik7Ci0gICAgICAgIEpTRnVuY3Rpb24oRXhl
Y1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnQgbGVuZ3RoLCBjb25zdCBJ
ZGVudGlmaWVyJiwgTmF0aXZlRXhlY3V0YWJsZSopOworICAgICAgICBKU0Z1bmN0aW9uKEV4ZWNT
dGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CiAgICAgICAgIEpTRnVuY3Rpb24o
RXhlY1N0YXRlKiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgU2NvcGVDaGFpbk5vZGUqKTsKICAgICAg
ICAgCiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dCBCYXNlOwogCi0gICAgICAgIHN0YXRpYyBKU0Z1bmN0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
aW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIE5hdGl2ZUZ1bmN0aW9uIG5hdGl2
ZUZ1bmMpCisgICAgICAgIHN0YXRpYyBKU0Z1bmN0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVj
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50
IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgTmF0aXZlRnVuY3Rpb24gbmF0aXZlRnVu
Y3Rpb24pCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxK
U0Z1bmN0aW9uPigqZXhlYy0+aGVhcCgpKSkgSlNGdW5jdGlvbihleGVjLCBnbG9iYWxPYmplY3Qs
IHN0cnVjdHVyZSwgbGVuZ3RoLCBpZGVudCwgbmF0aXZlRnVuYyk7CisgICAgICAgICAgICBFeGVj
dXRhYmxlQmFzZSogZXhlY3V0YWJsZSA9IChFeGVjdXRhYmxlQmFzZSopZXhlYy0+Z2xvYmFsRGF0
YSgpLmdldEhvc3RGdW5jdGlvbihuYXRpdmVGdW5jdGlvbik7CisgICAgICAgICAgICBKU0Z1bmN0
aW9uKiBmdW5jdGlvbiA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTRnVuY3Rpb24+KCpleGVjLT5oZWFw
KCkpKSBKU0Z1bmN0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKKyAgICAgICAg
ICAgIC8vIENhbid0IGRvIHRoaXMgZHVyaW5nIGluaXRpYWxpemF0aW9uIGJlY2F1c2UgZ2V0SG9z
dEZ1bmN0aW9uIG1pZ2h0IGRvIGEgR0MgYWxsb2NhdGlvbi4KKyAgICAgICAgICAgIGZ1bmN0aW9u
LT5maW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIGxlbmd0aCwgbmFtZSwgZXhlY3V0
YWJsZSk7CisgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb247CiAgICAgICAgIH0KLSAgICAgICAg
c3RhdGljIEpTRnVuY3Rpb24qIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQgbGVuZ3RoLCBjb25zdCBJ
ZGVudGlmaWVyJiBpZGVudCwgTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlYykKKworICAgICAg
ICBzdGF0aWMgSlNGdW5jdGlvbiogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludCBsZW5ndGgsIGNvbnN0
IElkZW50aWZpZXImIG5hbWUsIE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0Z1bmN0aW9u
PigqZXhlYy0+aGVhcCgpKSkgSlNGdW5jdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVy
ZSwgbGVuZ3RoLCBpZGVudCwgbmF0aXZlRXhlYyk7CisgICAgICAgICAgICBKU0Z1bmN0aW9uKiBm
dW5jdGlvbiA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTRnVuY3Rpb24+KCpleGVjLT5oZWFwKCkpKSBK
U0Z1bmN0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIGZ1
bmN0aW9uLT5maW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIGxlbmd0aCwgbmFtZSwg
KEV4ZWN1dGFibGVCYXNlKiluYXRpdmVFeGVjdXRhYmxlKTsKKyAgICAgICAgICAgIHJldHVybiBm
dW5jdGlvbjsKICAgICAgICAgfQotICAgICAgICBzdGF0aWMgSlNGdW5jdGlvbiogY3JlYXRlKEV4
ZWNTdGF0ZSogZXhlYywgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jRXhlYywgU2NvcGVDaGFpbk5v
ZGUqIHNjb3BlQ2hhaW4pCisKKyAgICAgICAgc3RhdGljIEpTRnVuY3Rpb24qIGNyZWF0ZShFeGVj
U3RhdGUqIGV4ZWMsIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgU2NvcGVDaGFpbk5v
ZGUqIHNjb3BlQ2hhaW4pCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9j
YXRlQ2VsbDxKU0Z1bmN0aW9uPigqZXhlYy0+aGVhcCgpKSkgSlNGdW5jdGlvbihleGVjLCBmdW5j
RXhlYywgc2NvcGVDaGFpbik7CisgICAgICAgICAgICBKU0Z1bmN0aW9uKiBmdW5jdGlvbiA9IG5l
dyAoYWxsb2NhdGVDZWxsPEpTRnVuY3Rpb24+KCpleGVjLT5oZWFwKCkpKSBKU0Z1bmN0aW9uKGV4
ZWMsIGV4ZWN1dGFibGUsIHNjb3BlQ2hhaW4pOworICAgICAgICAgICAgZnVuY3Rpb24tPmZpbmlz
aENyZWF0aW9uKGV4ZWMsIHNjb3BlQ2hhaW4tPmdsb2JhbE9iamVjdC5nZXQoKSwgZXhlY3V0YWJs
ZSwgc2NvcGVDaGFpbik7CisgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb247CiAgICAgICAgIH0K
ICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgfkpTRnVuY3Rpb24oKTsKQEAgLTEyMyw3ICsxMzIs
OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIGNvbnN0IHN0YXRp
YyB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlk
ZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCi0gICAgICAg
IHZvaWQgY29uc3RydWN0b3JCb2R5KEV4ZWNTdGF0ZSosIGludCBsZW5ndGgsIGNvbnN0IElkZW50
aWZpZXImIG5hbWUsIEV4ZWN1dGFibGVCYXNlKik7CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlm
aWVyJiBuYW1lLCBFeGVjdXRhYmxlQmFzZSopOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9u
KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgU2NvcGVD
aGFpbk5vZGUqKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGV4cGxpY2l0IEpTRnVuY3Rpb24o
VlB0clN0ZWFsaW5nSGFja1R5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggYzIzMGQ3MDJiNTNmZDE3ZTVlNWRiZTIxNDI5YjAxOGY5
MTEwMmQxYy4uODVjNDI5NjYzMWFlM2U2M2Q5MzgwMzVlYTcwODAwNGJmY2VlMDczMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xNTks
NyArMTU5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAsIG1fd2Vha1JhbmRvbShz
dGF0aWNfY2FzdDx1bnNpZ25lZD4ocmFuZG9tTnVtYmVyKCkgKiAoc3RkOjpudW1lcmljX2xpbWl0
czx1bnNpZ25lZD46Om1heCgpICsgMS4wKSkpCiAgICAgICAgICAgICAsIG1fZXZhbEVuYWJsZWQo
dHJ1ZSkKICAgICAgICAgewotICAgICAgICAgICAgY29uc3RydWN0b3JCb2R5KHRoaXMpOworICAg
ICAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgdGhpcyk7CiAgICAgICAgIH0KIAog
ICAgICAgICBKU0dsb2JhbE9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBKU09iamVjdCogdGhpc1ZhbHVlKQpAQCAtMTY5LDExICsxNjksMTIgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAsIG1fd2Vha1JhbmRvbShzdGF0aWNfY2FzdDx1
bnNpZ25lZD4ocmFuZG9tTnVtYmVyKCkgKiAoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46
Om1heCgpICsgMS4wKSkpCiAgICAgICAgICAgICAsIG1fZXZhbEVuYWJsZWQodHJ1ZSkKICAgICAg
ICAgewotICAgICAgICAgICAgY29uc3RydWN0b3JCb2R5KHRoaXNWYWx1ZSk7CisgICAgICAgICAg
ICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCB0aGlzVmFsdWUpOwogICAgICAgICB9CiAKLSAg
ICAgICAgdm9pZCBjb25zdHJ1Y3RvckJvZHkoSlNPYmplY3QqIHRoaXNWYWx1ZSkKKyAgICAgICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTT2JqZWN0KiB0
aGlzVmFsdWUpCiAgICAgICAgIHsKKyAgICAgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGds
b2JhbERhdGEpOwogICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoSlNHbG9iYWxPYmplY3Q6OkFu
b255bW91c1Nsb3RDb3VudCA9PSAxLCBKU0dsb2JhbE9iamVjdF9oYXNfb25seV9hX3NpbmdsZV9z
bG90KTsKICAgICAgICAgICAgIHB1dFRoaXNUb0Fub255bW91c1ZhbHVlKDApOwogICAgICAgICAg
ICAgaW5pdCh0aGlzVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNOb3RBbk9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNO
b3RBbk9iamVjdC5oCmluZGV4IDY3ZmRhMDUwYTYyODhkNzBhOTQyOThjZTAyYTcyNmQ4MjhlMjMy
MWQuLjEzMWJhYTdhZjMyMTI3M2M3ZGJlMDIwMTZjM2Y3ZjQwM2M1OTM0ZDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKQEAgLTQxLDcgKzQxLDYg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTTm90QW5PYmplY3QoRXhlY1N0YXRlKiBleGVj
KQogICAgICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhl
Yy0+Z2xvYmFsRGF0YSgpLm5vdEFuT2JqZWN0U3RydWN0dXJlLmdldCgpKQogICAgICAgICB7Ci0g
ICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOwogICAgICAgICB9
CiAgICAgICAgIAogICAgIHB1YmxpYzoKQEAgLTQ5LDcgKzQ4LDkgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKICAgICAgICAgc3RhdGljIEpTTm90QW5PYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU05vdEFu
T2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgSlNOb3RBbk9iamVjdChleGVjKTsKKyAgICAgICAgICAg
IEpTTm90QW5PYmplY3QqIG9iamVjdCA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTTm90QW5PYmplY3Q+
KCpleGVjLT5oZWFwKCkpKSBKU05vdEFuT2JqZWN0KGV4ZWMpOworICAgICAgICAgICAgb2JqZWN0
LT5maW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOworICAgICAgICAgICAgcmV0dXJu
IG9iamVjdDsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRleCAwNWJkZTI4
MTlhMDZmOTE0OTQ4MjA5YmU0M2QzMzY4YzkwNGUwZjI4Li4xNzMxNTJiMjkxOTNkZjIwMjQ1ODEy
Mzc2NzY4ZmJkODlkZTczNjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09OT2JqZWN0LmNwcApAQCAtNTYsNiArNTYsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiBKU09OT2Jq
ZWN0OjpKU09OT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSog
c3RydWN0dXJlKQogICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwg
c3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7Cit9CisKK3Zv
aWQgSlNPTk9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEo
KSwgZ2xvYmFsT2JqZWN0KTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKaW5kZXggNzdiZjQzNjk5
MTFiNmVjNDBiMzBhY2Q4MzQyNzNlZGMzOTkzNWVhYS4uNDgwZTc0YmRiODM0OTM2YmQyOWY3MmU2
YWNkZTI0NjE3ZGU2YTVmMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPTk9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05P
YmplY3QuaApAQCAtNDksNiArNDksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGlj
IGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKICAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNP
YmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuY3Bw
CmluZGV4IDg4NTUzMGYxMGY3OTkwMWRmZjY0ODQzYTc0MzQzMDQ4OGY1ZjdhNGYuLmFlNzAzODA4
YjBmYjQ1NGY1NWY1NDAzZjA2MTk5YjEzNzNlMGIyYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcApA
QCAtMzMsMTMgKzMzLDExIEBAIG5hbWVzcGFjZSBKU0MgewogSlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0OjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbE9i
amVjdC0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xv
YmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CiB9CiAKLUpTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdDo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCitKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNO
b25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiB7Ci0gICAgZmluaXNoQ3JlYXRp
b24oZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0KTsKIH0KIAogdm9pZCBKU09iamVjdFdpdGhHbG9i
YWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKQEAgLTUwLDcgKzQ4LDcgQEAgdm9pZCBKU09iamVjdFdp
dGhHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
SlNHbG9iYWwKICAgICBpZiAoIWdsb2JhbE9iamVjdCkKICAgICAgICAgY2xlYXJBbm9ueW1vdXNW
YWx1ZShHbG9iYWxPYmplY3RTbG90KTsKICAgICBlbHNlCi0gICAgICAgIHB1dEFub255bW91c1Zh
bHVlKGdsb2JhbERhdGEsIEdsb2JhbE9iamVjdFNsb3QsIGdsb2JhbE9iamVjdCk7CisgICAgICAg
IHB1dEFub255bW91c1ZhbHVlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBHbG9iYWxPYmpl
Y3RTbG90LCBnbG9iYWxPYmplY3QpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0LmgKaW5kZXggMTMwZTA3ZDY5MDUyZmQyMWZiMmE3MjZmMTIyODE3YzhhNzZmYmM4OC4uMzc5
ODQ4YjY1NDM2NDU0OTFiNzJhNDVhYTFjYTU3YzU0MWIyZTI2NyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgK
QEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgSlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7Ci0gICAgSlNPYmplY3RX
aXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYsIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJl
Kik7CisgICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVy
ZSopOwogCiAgICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KFZQdHJTdGVhbGluZ0hhY2tUeXBl
KQogICAgICAgICA6IEpTTm9uRmluYWxPYmplY3QoVlB0clN0ZWFsaW5nSGFjaykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaAppbmRl
eCBiMTE5M2ZkYmRlZmVmYWUyMWZmNWY0Y2M0MzFkMzQyNDljZTZhOGFjLi4yOWE0Y2FlOTE0N2E1
NzczMmI4YmZhODExODI3ODQ5MTM5M2JlMWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCkBAIC0zNCw5ICszNCw5IEBAIG5h
bWVzcGFjZSBKU0N7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpTVmFyaWFibGVPYmpl
Y3QgQmFzZTsKIAotICAgICAgICBzdGF0aWMgSlNTdGF0aWNTY29wZU9iamVjdCogY3JlYXRlKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIEpTVmFsdWUgdmFsdWUsIHVu
c2lnbmVkIGF0dHJpYnV0ZXMpCisgICAgICAgIHN0YXRpYyBKU1N0YXRpY1Njb3BlT2JqZWN0KiBj
cmVhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBKU1Zh
bHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQogICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SlNTdGF0aWNTY29wZU9iamVjdD4oKmV4ZWMtPmhlYXAo
KSkpIEpTU3RhdGljU2NvcGVPYmplY3QoZXhlYywgaWRlbnQsIHZhbHVlLCBhdHRyaWJ1dGVzKTsK
KyAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU1N0YXRpY1Njb3BlT2JqZWN0
PigqZXhlYy0+aGVhcCgpKSkgSlNTdGF0aWNTY29wZU9iamVjdChleGVjLCBpZGVudGlmaWVyLCB2
YWx1ZSwgYXR0cmlidXRlcyk7CiAgICAgICAgIH0KIAogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlz
aXRDaGlsZHJlbihTbG90VmlzaXRvciYpOwpAQCAtNTAsMTQgKzUwLDE5IEBAIG5hbWVzcGFjZSBK
U0N7CiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7IH0KIAogICAgIHByb3RlY3RlZDoKKyAgICAg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IGlkZW50aWZpZXIsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCisgICAgICAg
IHsKKyAgICAgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7
CisgICAgICAgICAgICBtX3JlZ2lzdGVyU3RvcmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhp
cywgdmFsdWUpOworICAgICAgICAgICAgc3ltYm9sVGFibGUoKS5hZGQoaWRlbnRpZmllci5pbXBs
KCksIFN5bWJvbFRhYmxlRW50cnkoLTEsIGF0dHJpYnV0ZXMpKTsKKyAgICAgICAgfQogICAgICAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBJc0Vudmlyb25tZW50UmVj
b3JkIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJl
biB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU1ZhcmlhYmxlT2JqZWN0OjpTdHJ1Y3R1
cmVGbGFnczsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEpTU3RhdGljU2NvcGVPYmplY3QoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgSlNWYWx1ZSB2YWx1ZSwgdW5z
aWduZWQgYXR0cmlidXRlcykKKyAgICAgICAgSlNTdGF0aWNTY29wZU9iamVjdChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEpTVmFsdWUgdmFsdWUsIHVuc2ln
bmVkIGF0dHJpYnV0ZXMpCiAgICAgICAgICAgICA6IEpTVmFyaWFibGVPYmplY3QoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBleGVjLT5nbG9iYWxEYXRhKCkuc3RhdGljU2NvcGVTdHJ1Y3R1cmUuZ2V0KCks
ICZtX3N5bWJvbFRhYmxlLCByZWludGVycHJldF9jYXN0PFJlZ2lzdGVyKj4oJm1fcmVnaXN0ZXJT
dG9yZSArIDEpKQogICAgICAgICB7Ci0gICAgICAgICAgICBtX3JlZ2lzdGVyU3RvcmUuc2V0KGV4
ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgdmFsdWUpOwotICAgICAgICAgICAgc3ltYm9sVGFibGUo
KS5hZGQoaWRlbnQuaW1wbCgpLCBTeW1ib2xUYWJsZUVudHJ5KC0xLCBhdHRyaWJ1dGVzKSk7Cisg
ICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSwgYXR0cmli
dXRlcyk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIFN5bWJvbFRhYmxlIG1fc3ltYm9s
VGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Zhcmlh
YmxlT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2Jq
ZWN0LmgKaW5kZXggZjcxZWQzMDk5NDliMzEyMzRhZGFmYzg4ZThhNjRhNTg2OTUyOTIwMC4uM2Yx
MTg0YjlkZDg4NDY2MzMwNDExODlhZmM1YjdjZTEwMTFkOGJmNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaApAQCAtNzQsNyArNzQsNiBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgICwgbV9zeW1ib2xUYWJsZShzeW1ib2xUYWJs
ZSkKICAgICAgICAgICAgICwgbV9yZWdpc3RlcnMocmVpbnRlcnByZXRfY2FzdDxXcml0ZUJhcnJp
ZXI8VW5rbm93bj4qPihyZWdpc3RlcnMpKQogICAgICAgICB7Ci0gICAgICAgICAgICBmaW5pc2hD
cmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaAppbmRleCAzYjQzODMxMjQzOGRiYzczZTA4NjA3
YWUzYjZmMGZmNDllMWFlZGJhLi4zZTU4OWYyNzE0M2UyNGQ3MDlkYjE2MGVmOGVhMTViN2U2MDY2
ZThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJP
YmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmpl
Y3QuaApAQCAtNTMsNyArNTMsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBpbmxpbmUgSlNXcmFw
cGVyT2JqZWN0OjpKU1dyYXBwZXJPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEs
IHN0cnVjdHVyZSkKICAgICB7Ci0gICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwog
ICAgIH0KIAogICAgIGlubGluZSBKU1ZhbHVlIEpTV3JhcHBlck9iamVjdDo6aW50ZXJuYWxWYWx1
ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRo
T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3Bw
CmluZGV4IGU0YzRiNWJlYzhkZDFmOWI4NGU0ZWY3YjE2YTkyZjU5MGI1NzcyMTkuLjVlYzU2YTM2
ZTczNzU1OWEzMGRmYjEyMDhhMGMxM2NlYmE5ODdiNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCkBAIC04Nyw2ICs4NywxMiBAQCBjb25zdCBDbGFz
c0luZm8gTWF0aE9iamVjdDo6c19pbmZvID0geyAiTWF0aCIsICZKU09iamVjdFdpdGhHbG9iYWxP
YmplY3Q6OnNfaW5mbwogTWF0aE9iamVjdDo6TWF0aE9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDog
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogeworICAg
IGZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgTWF0aE9iamVj
dDo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFs
RGF0YSgpLCBnbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAK
ICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIElkZW50
aWZpZXIoZXhlYywgIkUiKSwganNOdW1iZXIoZXhwKDEuMCkpLCBEb250RGVsZXRlIHwgRG9udEVu
dW0gfCBSZWFkT25seSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9NYXRoT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0
LmgKaW5kZXggOWNmYThkMDI3ZGUzY2Y4NmQyZDMyNjA3MDdmZTk3YWRlMjZhNTFmNC4uN2ZiZWQ5
MGJmYmQyY2IxMTVhZDg1MjRmZTQzZWQ3YTRmNjBhZTI4YSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaApAQCAtNDcsNiArNDcsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgorICAgICAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0Kik7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpT
T2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcAppbmRleCAxMzk0NWM3NTBlMjViNTY1NWUxNWFm
YjZmNzA2YTE2ZDE3NDQ0NWMwLi4yMjY3NmQwZmZhOGNjNzQ2YWQxNmQ2ZTQyOGYzYmM4Y2Q3MGQ3
NjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5j
cHAKQEAgLTM0LDYgKzM0LDEyIEBAIGNvbnN0IENsYXNzSW5mbyBOdW1iZXJPYmplY3Q6OnNfaW5m
byA9IHsgIk51bWJlciIsICZKU1dyYXBwZXJPYmplY3Q6OnNfaW5mbywgMCwKIE51bWJlck9iamVj
dDo6TnVtYmVyT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUpCiAgICAgOiBKU1dyYXBwZXJPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogewor
ICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOworfQorCit2b2lkIE51bWJlck9iamVjdDo6
ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQoreworICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9i
amVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmgKaW5k
ZXggN2FjODFkNjM4YTUxMWVmODY1YzIwZjg1MzEzMGI5MGI2MWNhYWUwYi4uOTAxZjVlYjRiMGYz
YjU0MTdmZGM5OWQyMjVlZWEyZjcxMzQ1MjFmYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVtYmVyT2JqZWN0LmgKQEAgLTI4LDYgKzI4LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgY2xhc3MgTnVtYmVyT2JqZWN0IDogcHVibGljIEpTV3JhcHBlck9iamVjdCB7CiAgICAg
cHJvdGVjdGVkOgogICAgICAgICBOdW1iZXJPYmplY3QoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJl
Kik7CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJik7CiAKICAgICBw
dWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSlNXcmFwcGVyT2JqZWN0IEJhc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAppbmRleCAwODdj
ZDI2MGNmNTVkM2YxNWIzMzY1MjUzNmE1NmJiNzc0MDE3OTlkLi41MDg5YTVmZmRiZjc3M2QwZmY3
ZTg2OTkyMTM1ZDU1NWFhMjk1NzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKQEAgLTYzLDExICs2MywxMCBAQCBjb25zdCBDbGFz
c0luZm8gT2JqZWN0UHJvdG90eXBlOjpzX2luZm8gPSB7ICJPYmplY3QiLCAmSlNOb25GaW5hbE9i
amVjdDo6c19pbmZvLAogCiBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKE9iamVjdFByb3RvdHlw
ZSk7CiAKLU9iamVjdFByb3RvdHlwZTo6T2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHVjdHVyZSkKK09iamVj
dFByb3RvdHlwZTo6T2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBz
dHVjdHVyZSkKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHVj
dHVyZSkKICAgICAsIG1faGFzTm9Qcm9wZXJ0aWVzV2l0aFVJbnQzMk5hbWVzKHRydWUpCiB7Ci0g
ICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogfQog
CiB2b2lkIE9iamVjdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAppbmRleCAwYTJjOGZkNDhlZTdkNDlk
ZWFiZjkxYmVlMDU4NjBiMmZlOTNkYTMxLi41ODRhYzMwZGZjYTI0NzYwODcwMGRjMDZlN2ZhYWRk
NDExZGZmODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmpl
Y3RQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQ
cm90b3R5cGUuaApAQCAtMzEsNyArMzEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBz
dGF0aWMgT2JqZWN0UHJvdG90eXBlKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPE9iamVjdFByb3RvdHlwZT4oKmV4ZWMt
PmhlYXAoKSkpIE9iamVjdFByb3RvdHlwZShleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7
CisgICAgICAgICAgICBPYmplY3RQcm90b3R5cGUqIHByb3RvdHlwZSA9IG5ldyAoYWxsb2NhdGVD
ZWxsPE9iamVjdFByb3RvdHlwZT4oKmV4ZWMtPmhlYXAoKSkpIE9iamVjdFByb3RvdHlwZShleGVj
LCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgcHJvdG90eXBlLT5maW5pc2hDcmVhdGlvbihleGVj
LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CisgICAgICAgICAgICByZXR1cm4gcHJvdG90
eXBlOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87
CkBAIC00OCw3ICs1MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKEpTR2xvYmFsRGF0YSYsIEpTR2xvYmFsT2JqZWN0Kik7CiAKICAgICBwcml2YXRlOgot
ICAgICAgICBPYmplY3RQcm90b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmUqKTsKKyAgICAgICAgT2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSop
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90
Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwg
dW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAppbmRleCA0Nzc5YjI1
NmUwNGY1ZGMzYzI1YTZiNmMxNDk0MGMzNjM2ODRlNGQzLi5jOGExMzNiNDI1Njg3MzE1ZmY2ZTgy
MWMwYmEyN2E1N2ExNWEzM2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC0xMDksOCArMTA5LDE0IEBAIFJlZ0V4cENv
bnN0cnVjdG9yOjpSZWdFeHBDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplCiB9CiAKIFJlZ0V4cE1hdGNoZXNBcnJheTo6UmVnRXhwTWF0Y2hlc0Fy
cmF5KEV4ZWNTdGF0ZSogZXhlYywgUmVnRXhwQ29uc3RydWN0b3JQcml2YXRlKiBkYXRhKQotICAg
IDogSlNBcnJheShleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KS0+cmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0dXJlKCksIGRhdGEtPmxhc3ROdW1TdWJQYXR0ZXJu
cyArIDEsIENyZWF0ZUluaXRpYWxpemVkKQorICAgIDogSlNBcnJheShleGVjLT5nbG9iYWxEYXRh
KCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0
dXJlKCkpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBkYXRhKTsK
K30KKwordm9pZCBSZWdFeHBNYXRjaGVzQXJyYXk6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgUmVnRXhwQ29uc3RydWN0b3JQcml2YXRlKiBkYXRhKQoreworICAgIEJh
c2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGRhdGEtPmxhc3ROdW1TdWJQYXR0ZXJucyAr
IDEsIENyZWF0ZUluaXRpYWxpemVkKTsKICAgICBSZWdFeHBDb25zdHJ1Y3RvclByaXZhdGUqIGQg
PSBuZXcgUmVnRXhwQ29uc3RydWN0b3JQcml2YXRlOwogICAgIGQtPmlucHV0ID0gZGF0YS0+bGFz
dElucHV0OwogICAgIGQtPmxhc3RJbnB1dCA9IGRhdGEtPmxhc3RJbnB1dDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKaW5kZXggZWQy
MWJjODllNWUyN2QzNjFlNjUzMzllNGQ0M2Q2YTE2ZWFhNGRmMi4uODdkNTljNzE0ZWI1NGRmMjgx
NzNkZmVkZWJkZWQ1NDZmNjUxYzNhYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKQEAgLTM3LDYgKzM3LDkgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIH0KICAgICAgICAgdmlydHVhbCB+UmVnRXhwTWF0Y2hlc0FycmF5KCk7
CiAKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxE
YXRhJiwgUmVnRXhwQ29uc3RydWN0b3JQcml2YXRlKiBkYXRhKTsKKwogICAgIHByaXZhdGU6CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKICAgICAg
ICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAK
aW5kZXggMmMxMjY1NTkyZTg2ODUzNDQ5MjhlYzRkZTExZGZmMTkwMDQxNDI5Ny4uODQxZDkzOTQx
MTdhYjA5MTE3MzhkMGM0ODVlM2ZlNTBiNWExZGQxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCkBAIC02Niw2ICs2NiwxMiBAQCBSZWdFeHBP
YmplY3Q6OlJlZ0V4cE9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgUgogICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9i
amVjdCwgc3RydWN0dXJlKQogICAgICwgZChhZG9wdFB0cihuZXcgUmVnRXhwT2JqZWN0RGF0YShn
bG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgdGhpcywgcmVnRXhwKSkpCiB7CisgICAgZmluaXNo
Q3JlYXRpb24oZ2xvYmFsT2JqZWN0KTsKK30KKwordm9pZCBSZWdFeHBPYmplY3Q6OmZpbmlzaENy
ZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNo
Q3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CiAgICAg
QVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBPYmplY3QuaAppbmRleCA3M2YyMTU0OTI2NzAwNzliNTkzOTJhMjhlNWM2
MTNmM2NkZjBiZTEzLi5iY2U0NTVhZjgxMmY5MWJhYmIyMjYwNzBhZDIwZTllMDQ2ZjI0MTEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaApAQCAtNzQs
NiArNzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgUmVn
RXhwT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgUmVnRXhwKik7CisgICAgICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92
ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6U3Ry
dWN0dXJlRmxhZ3M7CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwCmluZGV4IDk2ZDk0ZDg0ZWFi
YjUyNjA1OTY5N2ZlMzM2ZGFhYjc4MjEzNTRiNTQuLmU2NjZkZWUxNTc5MmI3ZmJlODk3ZTYwZDJj
NTAzZDYyM2I3NmZkODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5jcHAKQEAgLTMxLDcgKzMxLDYgQEAgbmFtZXNwYWNl
IEpTQyB7CiBTdHJpY3RFdmFsQWN0aXZhdGlvbjo6U3RyaWN0RXZhbEFjdGl2YXRpb24oRXhlY1N0
YXRlKiBleGVjKQogICAgIDogSlNOb25GaW5hbE9iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4
ZWMtPmdsb2JhbERhdGEoKS5zdHJpY3RFdmFsQWN0aXZhdGlvblN0cnVjdHVyZS5nZXQoKSkKIHsK
LSAgICBmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOwogfQogCiBib29sIFN0cmlj
dEV2YWxBY3RpdmF0aW9uOjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2
YWxBY3RpdmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFs
QWN0aXZhdGlvbi5oCmluZGV4IDc2OTgxZmRiNDI4OTEzYzY3MDY0MWY4MGI3YmRiMTFiNWYxYWY4
MTQuLjhhYTIyMzRjODdjNTE1OWJlNTlkNjIwYzJhZDgxYTQwZTM5NjhmYjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uaApA
QCAtMzYsNyArMzYsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RyaWN0RXZhbEFjdGl2YXRp
b24qIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChh
bGxvY2F0ZUNlbGw8U3RyaWN0RXZhbEFjdGl2YXRpb24+KCpleGVjLT5oZWFwKCkpKSBTdHJpY3RF
dmFsQWN0aXZhdGlvbihleGVjKTsKKyAgICAgICAgU3RyaWN0RXZhbEFjdGl2YXRpb24qIGFjdGl2
YXRpb24gPSBuZXcgKGFsbG9jYXRlQ2VsbDxTdHJpY3RFdmFsQWN0aXZhdGlvbj4oKmV4ZWMtPmhl
YXAoKSkpIFN0cmljdEV2YWxBY3RpdmF0aW9uKGV4ZWMpOworICAgICAgICBhY3RpdmF0aW9uLT5m
aW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOworICAgICAgICByZXR1cm4gYWN0aXZh
dGlvbjsKICAgICB9CiAKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ09iamVjdC5jcHAKaW5kZXggMWQwYzdhYmY5OGQwODdjMGI1MTdiNTIwMjQ2ZTJhOGVm
ZWIzMDc2Ni4uYjhmYWQ5ZTQ5NzM3N2FjYTc0NTcwMTNjZGEzNzAzYjhmMjcwNTkzMyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCkBAIC0zMiw2
ICszMiwxMiBAQCBjb25zdCBDbGFzc0luZm8gU3RyaW5nT2JqZWN0OjpzX2luZm8gPSB7ICJTdHJp
bmciLCAmSlNXcmFwcGVyT2JqZWN0OjpzX2luZm8sIDAsCiBTdHJpbmdPYmplY3Q6OlN0cmluZ09i
amVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1N0
cmluZyogc3RyaW5nKQogICAgIDogSlNXcmFwcGVyT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVy
ZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBzdHJpbmcpOworfQorCit2b2lk
IFN0cmluZ09iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U1N0cmluZyogc3RyaW5nKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEp
OwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgc2V0SW50ZXJuYWxWYWx1ZShn
bG9iYWxEYXRhLCBzdHJpbmcpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdPYmplY3QuaAppbmRleCA3ZDEzNWMxZTQxMjJmYWU3ZmFmZjE4ZGIyZTFiYTM3ZDc1Y2Q0
NTVmLi4wYjBjMjAwNjQ4YmViZjhhZTY0YjVjNzc5ZDFhNzU2M2MxOTY1YmVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaApAQCAtNjAsNiArNjAsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgorICAgICAgICB2
b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIEpTU3RyaW5nKik7CiAgICAgICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU1dyYXBwZXJPYmplY3Q6OlN0
cnVjdHVyZUZsYWdzOwogICAgICAgICBTdHJpbmdPYmplY3QoSlNHbG9iYWxEYXRhJiwgU3RydWN0
dXJlKiwgSlNTdHJpbmcqKTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRH
bHVlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKaW5kZXggMTBh
Njg2ZGNjNjk4MTBmNmM0ZjVmN2RhMTc3ZTVhZjAwZTRhYmQ3YS4uNzY5ZTQ0MDg5Y2JmMDhiN2Ix
MDY1YTA5MTk3ZmNlYWRjODVlN2FmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjcgQEAKKzIwMTEtMDgtMzAgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxl
LmNvbT4KKworICAgICAgICBVbnppcCBpbml0aWFsaXphdGlvbiBsaXN0cyBhbmQgY29uc3RydWN0
b3JzIGluIEpTQ2VsbCBoaWVyYXJjaHkgKDQvNykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ29tcGxldGVkIHRoZSBmb3VydGggbGV2ZWwgb2YgdGhlIHJl
ZmFjdG9yaW5nIHRvIGFkZCBmaW5pc2hDcmVhdGlvbigpIAorICAgICAgICBtZXRob2RzIHRvIGFs
bCBjbGFzc2VzIHdpdGhpbiB0aGUgSlNDZWxsIGhpZXJhcmNoeSB3aXRoIG5vbi10cml2aWFsIAor
ICAgICAgICBjb25zdHJ1Y3RvciBib2RpZXMuCisKKyAgICAgICAgVGhpcyBwcmltYXJpbHkgY29u
c2lzdHMgb2YgcHVzaGluZyB0aGUgY2FsbHMgdG8gZmluaXNoQ3JlYXRpb24oKSBkb3duIAorICAg
ICAgICBpbnRvIHRoZSBjb25zdHJ1Y3RvcnMgb2YgdGhlIHN1YmNsYXNzZXMgb2YgdGhlIHNlY29u
ZCBsZXZlbCBvZiB0aGUgaGllcmFyY2h5IAorICAgICAgICBhcyB3ZWxsIGFzIHB1bGxpbmcgdGhl
IGZpbmlzaENyZWF0aW9uKCkgY2FsbHMgb3V0IGludG8gdGhlIGNsYXNzJ3MgY29ycmVzcG9uZGlu
ZworICAgICAgICBjcmVhdGUoKSBtZXRob2QgaWYgaXQgaGFzIG9uZS4gIERvaW5nIGJvdGggc2lt
dWx0YW5lb3VzbHkgYWxsb3dzIHVzIHRvIAorICAgICAgICBtYWludGFpbiB0aGUgaW52YXJpYW50
IHRoYXQgdGhlIGZpbmlzaENyZWF0aW9uKCkgbWV0aG9kIGNoYWluIGlzIGNhbGxlZCBleGFjdGx5
IAorICAgICAgICBvbmNlIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgYW4gb2JqZWN0LCBzaW5jZSBj
YWxsaW5nIGl0IGFueSBvdGhlciBudW1iZXIgb2YgCisgICAgICAgIHRpbWVzICgwLCAyLCBvciBt
b3JlKSB3aWxsIGNhdXNlIGFuIGFzc2VydGlvbiBmYWlsdXJlLgorCisgICAgICAgICogVXNlck9i
amVjdEltcC5jcHA6CisgICAgICAgIChVc2VyT2JqZWN0SW1wOjpVc2VyT2JqZWN0SW1wKToKKyAg
ICAgICAgKiBVc2VyT2JqZWN0SW1wLmg6CisgICAgICAgIChVc2VyT2JqZWN0SW1wOjpjcmVhdGUp
OgorCiAyMDExLTA4LTI5ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgVW56aXAgaW5pdGlhbGl6YXRpb24gbGlzdHMgYW5kIGNvbnN0cnVjdG9ycyBp
biBKU0NlbGwgaGllcmFyY2h5ICgzLzcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvVXNlck9iamVjdEltcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdElt
cC5jcHAKaW5kZXggMGQ0ZDQ1YWY3MmY4YzI3NGQyMDMwZmJlM2I4NmJhZWM5ZTRmZDIxNi4uYWQz
NjkzYjNhZDEzMDVlMGE5YzI0NmViNmM5OTgxMzM2MWUwZjRiZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcApAQCAtMzgsNyArMzgsNiBAQCBVc2VyT2JqZWN0SW1wOjpV
c2VyT2JqZWN0SW1wKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIEpTVQogICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiAg
ICAgLCBmSlNVc2VyT2JqZWN0KChKU1VzZXJPYmplY3QqKXVzZXJPYmplY3QtPlJldGFpbigpKQog
ewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogfQogCiBVc2VyT2JqZWN0SW1wOjp+
VXNlck9iamVjdEltcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9i
amVjdEltcC5oIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaAppbmRleCA4
ZWU4ZTJhNzA0N2Y4NjlhMjk3MjY1Y2MxYzI2YzNmMzZmOTA4YTgwLi4xNTk2MDcwMGNmYWM1YWEw
NDQzYTg5YmE4NjM4NGNiN2QxNjc3ZTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvVXNlck9iamVjdEltcC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0
SW1wLmgKQEAgLTQwLDcgKzQwLDkgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFVzZXJPYmplY3RJ
bXAqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBKU1VzZXJPYmplY3QqIHVzZXJPYmplY3QpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChh
bGxvY2F0ZUNlbGw8VXNlck9iamVjdEltcD4oZ2xvYmFsRGF0YS5oZWFwKSkgVXNlck9iamVjdElt
cChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUsIHVzZXJPYmplY3QpOworICAgICAgICBVc2VyT2JqZWN0
SW1wKiBvYmplY3QgPSBuZXcgKGFsbG9jYXRlQ2VsbDxVc2VyT2JqZWN0SW1wPihnbG9iYWxEYXRh
LmhlYXApKSBVc2VyT2JqZWN0SW1wKGdsb2JhbERhdGEsIHN0cnVjdHVyZSwgdXNlck9iamVjdCk7
CisgICAgICAgIG9iamVjdC0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CisgICAgICAgIHJl
dHVybiBvYmplY3Q7CiAgICAgfQogICAgIAogICAgIHZpcnR1YWwgflVzZXJPYmplY3RJbXAoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKaW5k
ZXggMDBmYWMwYTdlZTEwZDE3Mzc2N2RkM2VjODVmNjhlOTc5NjA4MjVmNy4uNWQwZDQzNmNjOTY4
NzNhZDlmYTAzOTVmMzU1Y2VhZWUzMjE1Mzg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKQEAgLTQzLDExICs0MywxMCBAQCBBU1NFUlRf
Q0xBU1NfRklUU19JTl9DRUxMKEpTRE9NV2luZG93U2hlbGwpOwogCiBjb25zdCBDbGFzc0luZm8g
SlNET01XaW5kb3dTaGVsbDo6c19pbmZvID0geyAiSlNET01XaW5kb3dTaGVsbCIsICZCYXNlOjpz
X2luZm8sIDAsIDAgfTsKIAotSlNET01XaW5kb3dTaGVsbDo6SlNET01XaW5kb3dTaGVsbChQYXNz
UmVmUHRyPERPTVdpbmRvdz4gd2luZG93LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRE9NV3JhcHBl
cldvcmxkKiB3b3JsZCkKK0pTRE9NV2luZG93U2hlbGw6OkpTRE9NV2luZG93U2hlbGwoU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIERPTVdyYXBwZXJXb3JsZCogd29ybGQpCiAgICAgOiBCYXNlKCp3b3Js
ZC0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiAgICAgLCBtX3dvcmxkKHdvcmxkKQogewotICAg
IGZpbmlzaENyZWF0aW9uKCp3b3JsZC0+Z2xvYmFsRGF0YSgpLCB3aW5kb3cpOwogfQogCiB2b2lk
IEpTRE9NV2luZG93U2hlbGw6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgUGFzc1JlZlB0cjxET01XaW5kb3c+IHdpbmRvdykKQEAgLTE4MSw2ICsxODAsMTMgQEAgdm9p
ZCogSlNET01XaW5kb3dTaGVsbDo6b3BlcmF0b3IgbmV3KHNpemVfdCBzaXplKQogICAgIHJldHVy
biBoZWFwLmFsbG9jYXRlKHNpemUpOwogfQogCitKU0RPTVdpbmRvd1NoZWxsKiBKU0RPTVdpbmRv
d1NoZWxsOjpjcmVhdGUoUGFzc1JlZlB0cjxET01XaW5kb3c+IHdpbmRvdywgSlNDOjpTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCkKK3sKKyAgICBKU0RPTVdpbmRv
d1NoZWxsKiBzaGVsbCA9IG5ldyBKU0RPTVdpbmRvd1NoZWxsKHN0cnVjdHVyZSwgd29ybGQpOwor
ICAgIHNoZWxsLT5maW5pc2hDcmVhdGlvbigqd29ybGQtPmdsb2JhbERhdGEoKSwgd2luZG93KTsK
KyAgICByZXR1cm4gc2hlbGw7IAorfQorCiAvLyAtLS0tCiAvLyBDb252ZXJzaW9uIG1ldGhvZHMK
IC8vIC0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93U2hlbGwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwu
aAppbmRleCA1NDU5NjYxMmM3ZGE1MTIyYTM3NzU2NWVhNGEwYmUxN2U3MzAxMzA0Li4zMDI4MzRm
ZmM2Nzk1NDM0ZGJlNDdmNDNlZTkyZTY2YTY2N2I0Y2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCkBAIC01NSw3ICs1NSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgICAgICBET01XaW5kb3cqIGltcGwoKSBjb25zdDsKIAotICAgICAg
ICB2b2lkKiBvcGVyYXRvciBuZXcoc2l6ZV90KTsKKyAgICAgICAgc3RhdGljIEpTRE9NV2luZG93
U2hlbGwqIGNyZWF0ZShQYXNzUmVmUHRyPERPTVdpbmRvdz4sIEpTQzo6U3RydWN0dXJlKiwgRE9N
V3JhcHBlcldvcmxkKik7CiAKICAgICAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90
b3R5cGUpIAogICAgICAgICB7CkBAIC02NSw5ICs2NSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIERPTVdyYXBwZXJXb3JsZCogd29ybGQoKSB7IHJldHVybiBtX3dvcmxkLmdldCgp
OyB9CiAKICAgICBwcm90ZWN0ZWQ6CisgICAgICAgIEpTRE9NV2luZG93U2hlbGwoSlNDOjpTdHJ1
Y3R1cmUqLCBET01XcmFwcGVyV29ybGQqKTsKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihK
U0M6OkpTR2xvYmFsRGF0YSYsIFBhc3NSZWZQdHI8RE9NV2luZG93Pik7CiAKICAgICBwcml2YXRl
OgorICAgICAgICB2b2lkKiBvcGVyYXRvciBuZXcoc2l6ZV90KTsKICAgICAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0
eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBKU0M6Ok92ZXJyaWRlc0dldFBy
b3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgICAgICB2aXJ0dWFsIHZv
aWQgdmlzaXRDaGlsZHJlbihKU0M6OlNsb3RWaXNpdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV3JhcHBlci5oCmluZGV4IDlhNGFjYTVjNTFiOGNmZWI3NTMwYjJhNmUwZTc5
ODQ1MWZkODU4ZTYuLjFiODIxOTcwM2NmOTM5MjBkMGI4NzdjNzZkNzc2NWU3YWJmMTBiNmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCkBAIC01OSw2ICs1OSw3
IEBAIHByb3RlY3RlZDoKICAgICAgICAgLy8gbmV3IEphdmFTY3JpcHQgb2JqZWN0cyBvbiBkZXRh
Y2hlZCB3aW5kb3dzIGR1ZSB0byBET01XaW5kb3c6OmRvY3VtZW50KCkKICAgICAgICAgLy8gbmVl
ZGluZyB0byByZWFjaCB0aHJvdWdoIHRoZSBmcmFtZSB0byBnZXQgdG8gdGhlIERvY3VtZW50Ki4g
IFNlZSBidWcgMjc2NDAuCiAgICAgICAgIC8vIEFTU0VSVChnbG9iYWxPYmplY3QtPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+
Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggODcwMjlkMWRiMDEy
MzE0MjNiMWU4OGM1YWM1Zjk1MTQwY2Q5NjE2YS4uZDI1YzcyMmE0OTVjMzVkMWRkYTFmYmE2NTY1
MWJlNDc0MmYwMmU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCBKU0RPTVdpbmRvd1NoZWxsKiBTY3Jp
cHRDb250cm9sbGVyOjpjcmVhdGVXaW5kb3dTaGVsbChET01XcmFwcGVyV29ybGQqIHdvcmxkKQog
ewogICAgIEFTU0VSVCghbV93aW5kb3dTaGVsbHMuY29udGFpbnMod29ybGQpKTsKICAgICBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSA9IEpTRE9NV2luZG93U2hlbGw6OmNyZWF0ZVN0cnVjdHVyZSgqd29y
bGQtPmdsb2JhbERhdGEoKSwganNOdWxsKCkpOwotICAgIFN0cm9uZzxKU0RPTVdpbmRvd1NoZWxs
PiB3aW5kb3dTaGVsbCgqd29ybGQtPmdsb2JhbERhdGEoKSwgbmV3IEpTRE9NV2luZG93U2hlbGwo
bV9mcmFtZS0+ZG9tV2luZG93KCksIHN0cnVjdHVyZSwgd29ybGQpKTsKKyAgICBTdHJvbmc8SlNE
T01XaW5kb3dTaGVsbD4gd2luZG93U2hlbGwoKndvcmxkLT5nbG9iYWxEYXRhKCksIEpTRE9NV2lu
ZG93U2hlbGw6OmNyZWF0ZShtX2ZyYW1lLT5kb21XaW5kb3coKSwgc3RydWN0dXJlLCB3b3JsZCkp
OwogICAgIFN0cm9uZzxKU0RPTVdpbmRvd1NoZWxsPiB3aW5kb3dTaGVsbDIod2luZG93U2hlbGwp
OwogICAgIG1fd2luZG93U2hlbGxzLmFkZCh3b3JsZCwgd2luZG93U2hlbGwpOwogICAgIHdvcmxk
LT5kaWRDcmVhdGVXaW5kb3dTaGVsbCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMGMwMWZjN2YyMjAxNmU0MDJj
ZjU5OWJjMmRiZjEyNjExY2MzNWQ0Yi4uZWYzOTBjNWE2Mzk5MjUxZGViN2RkMWEzOTNhMmU2ZWNm
YmE4YWYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KQEAgLTEwNTcsNyArMTA1Nyw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgog
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIGRlZmluZUdldHRlcihK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6
OkpTT2JqZWN0KiBnZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcyk7XG4iKSBpZiAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Qcm90b3R5cGVEZWZpbmVHZXR0
ZXIifTsKIAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJcbnByaXZhdGU6XG4iKTsKLSAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfVByb3RvdHlwZShKU0M6OkpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U0M6OlN0cnVjdHVyZSogc3RydWN0dXJlKSA6IEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0
KGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKSB7IH1cbiIpOworICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9UHJvdG90eXBlKEpTQzo6SlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpIDogSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xv
YmFsRGF0YSwgc3RydWN0dXJlKSB7IGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCk7IH1cbiIpOwogCiAgICAgIyBzdHJ1Y3R1cmUgZmxhZ3MKICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAicHJvdGVjdGVkOlxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKaW5kZXggYTEyMjRiYzYx
MjYxNTgzMmFkOTJjNTVjYTZkNGE0ZjIyYjJiZmI0Zi4uY2M0ZjVmZTk0MGI4NDRhYzMxMGViMjM5
NTA1NzNlZTMwZDQwZDg4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaApAQCAtNzgsNyArNzgsNyBAQCBw
dWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZShK
U0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlKSA6IEpTQzo6SlNPYmplY3RXaXRoR2xv
YmFsT2JqZWN0KGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKSB7IH0KKyAgICBK
U1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkgOiBKU0M6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUp
IHsgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0KTsgfQogcHJvdGVjdGVk
OgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5o
CmluZGV4IDcwY2M3NWU0MjQxM2Y1OGZlMmIwNzRjZmFlMmU5YmEwMjM5OTAzZWIuLjFkMzQwOTVk
ZmJkOTNiOWExOGJjOGQ1NTk4YmZlNzRiMGY3YWFiNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApAQCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgfQog
CiBwcml2YXRlOgotICAgIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGUoSlND
OjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgOiBKU0M6OkpTT2JqZWN0V2l0aEdsb2Jh
bE9iamVjdChnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkgeyB9CisgICAgSlNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OlN0cnVjdHVy
ZSogc3RydWN0dXJlKSA6IEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEs
IHN0cnVjdHVyZSkgeyBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QpOyB9
CiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
SlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmgKaW5kZXggYTEwNDQ0OWIxNWJhZjkwMTQwZjczMGMzZTlkYjIwNGNlYmFkZmQyNi4u
NDM4MDJlNTEwZGExZWYyZjEzYTA4MTViMjk5NGIxMTE1MTJkZjAyYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaApAQCAtODcs
NyArODcsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIEpTVGVzdE9ialByb3Rv
dHlwZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlKSA6IEpTQzo6SlNPYmplY3RX
aXRoR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKSB7IH0K
KyAgICBKU1Rlc3RPYmpQcm90b3R5cGUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkgOiBKU0M6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUp
IHsgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0KTsgfQogcHJvdGVjdGVk
OgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6T3ZlcnJp
ZGVzR2V0T3duUHJvcGVydHlTbG90IHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCmluZGV4
IDYyNDAwZGViMTRhNzFjNjM1NmM0NjA4ZmIzMWMzMWE0MmRlZWJiMTYuLjZmYjVhMjI3NWU2N2Y0
NWI5ZTBkMzEwMTJkZmRhZmFiM2E1Y2Q3ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKQEAgLTc4LDcgKzc4LDcgQEAgcHVibGlj
OgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VQcm90b3R5cGUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgOiBKU0M6
OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHN0cnVj
dHVyZSkgeyB9CisgICAgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90
eXBlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpIDogSlNDOjpKU09iamVjdFdp
dGhHbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKSB7IGZpbmlzaENyZWF0aW9uKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCk7IH0KIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCmluZGV4IGQ4MDE5MDEwNjc1OWUz
MTYwZGY1M2U4YjNiMWRmMDc0NjUwYzc2ZWUuLjE3NTNjMGJjN2VlMDk2MTI4M2FjY2RiNmY5YzVk
N2VhMmZmYzU0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNf
cnVudGltZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5o
CkBAIC0xMTYsNiArMTE2LDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CiAgICAgfQogCitwcm90ZWN0
ZWQ6CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCopOworCiBwcml2YXRl
OgogICAgIE9iamNGYWxsYmFja09iamVjdEltcChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSos
IE9iamNJbnN0YW5jZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVy
dHlTbG90IHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L29iamMvb2JqY19ydW50aW1lLm1tCmluZGV4IDc1MGJjN2VlZmRlMWUzOGExMzY3NmNlYWYwOTIy
ZGU3MWY4NTk5ZGYuLmRmMGU3MWM3ZmVjYjYyZTE2Zjc1ZGE5MTIwMzFmYTk2YjFhMmE3YzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KQEAgLTIwMSw2ICsy
MDEsMTIgQEAgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpPYmpjRmFsbGJhY2tPYmplY3RJbXAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWMKICAgICAsIF9pbnN0YW5jZShpKQogICAg
ICwgX2l0ZW0ocHJvcGVydHlOYW1lKQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVj
dCk7Cit9CisKK3ZvaWQgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpmaW5pc2hDcmVhdGlvbihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGds
b2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChpbmhl
cml0cygmc19pbmZvKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX2FycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNw
cAppbmRleCBiNWY3YTA3OGIyYzAwY2Y4ZGZkYzgwOTBjN2FmODQwMjEyNGQ2NTdiLi5lMDFhMTVm
MzdjYzkxYzQ1OGVkYTE0MWM3NDg2ZDhjMjY5YzZkY2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfYXJyYXkuY3BwCkBAIC00MCw2ICs0MCwxMiBAQCBjb25zdCBDbGFzc0luZm8gUnVu
dGltZUFycmF5OjpzX2luZm8gPSB7ICJSdW50aW1lQXJyYXkiLCAmSlNBcnJheTo6c19pbmZvLCAw
LCAwCiBSdW50aW1lQXJyYXk6OlJ1bnRpbWVBcnJheShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBCaW5kaW5nczo6QXJyYXkqIGFycmF5KQogICAgIDogSlNBcnJheShleGVj
LT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihleGVjLT5n
bG9iYWxEYXRhKCksIGFycmF5KTsKK30KKwordm9pZCBSdW50aW1lQXJyYXk6OmZpbmlzaENyZWF0
aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgQmluZGluZ3M6OkFycmF5KiBhcnJheSkKK3sK
KyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICBBU1NFUlQoaW5oZXJp
dHMoJnNfaW5mbykpOwogICAgIHNldFN1YmNsYXNzRGF0YShhcnJheSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfYXJyYXkuaAppbmRleCBjYjdiYzYzNTc3NmQ4ZWJjOTEwMzk1MzIwYWVm
ZGU0MmJjYjkwNmQ3Li44ZDhmNWFlNmJmNjhhNjMzODY1ZDBkMDJiZjY0M2Y5NWU0NGE4OTU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTc0LDYgKzc0LDggQEAgcHVi
bGljOgogICAgIH0KIAogcHJvdGVjdGVkOgorICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9i
YWxEYXRhJiwgQmluZGluZ3M6OkFycmF5Kik7CisKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNH
ZXRQcm9wZXJ0eU5hbWVzIHwgSlNBcnJheTo6U3RydWN0dXJlRmxhZ3M7CiAKIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAppbmRleCBmNGQwYmFkZTVlOGJm
YWE1OWQzYjkxNzAwMWEzZTQwNmJmNTk1OTc3Li45NjY0MGYwMDhmYWMxYWM0NzE3NjRmZjg1ZTNi
OGY2NDViOTJiZjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9v
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAK
QEAgLTQxLDYgKzQxLDEyIEBAIFJ1bnRpbWVPYmplY3Q6OlJ1bnRpbWVPYmplY3QoRXhlY1N0YXRl
KiwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlCiAgICAgOiBKU09iamVj
dFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiAgICAgLCBtX2luc3Rh
bmNlKGluc3RhbmNlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7Cit9CisK
K3ZvaWQgUnVudGltZU9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2Jh
bERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaCBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCmluZGV4IDg2MjJlMzExZjI2
NjA4YzU0NmRlODZlMGNmNGEzZDU1ODUzOTkyYTIuLjk5ZTA2ZTAxYzViYWY3ODA3N2ZiOWE0YmRk
ZjkzYTVhNDRkOGMzYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X29iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCkBA
IC03NCw2ICs3NCw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIFJ1bnRpbWVPYmplY3Qo
RXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBQYXNzUmVmUHRyPEluc3Rh
bmNlPik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCopOwogICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU09iamVjdFdpdGhHbG9iYWxP
YmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCmluZGV4
IDMzZWRiZTkyMmQ2Yjg1ZDY4OTcwODU1Yzk3MTVkZGE4MzEwOWI2YzQuLjIyOTEwZjVjYTQ3Njc2
NjVhYTM4ZmM4ZWM0ZGNkY2U5NWZhZmRhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKQEAgLTU1LDYg
KzU1LDEyIEBAIEpTTlBPYmplY3Q6OkpTTlBPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgTlBSdW50aW1lT2JqZWN0TWFwKiBvYmplY3RNCiAgICAgLCBtX29iamVjdE1hcChvYmpl
Y3RNYXApCiAgICAgLCBtX25wT2JqZWN0KG5wT2JqZWN0KQogeworICAgIGZpbmlzaENyZWF0aW9u
KGdsb2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgSlNOUE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihn
bG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKICAgICBBU1NFUlQoaW5o
ZXJpdHMoJnNfaW5mbykpOwogCiAgICAgLy8gV2Ugc2hvdWxkIG5ldmVyIGhhdmUgYW4gTlBKU09i
amVjdCBpbnNpZGUgYSBKU05QT2JqZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmgKaW5kZXggMmVhMTIyODJiMWIz
YWVmZWYxNjlmMjM3MTU3NzY0YTY0YTU3YWQyMi4uNzU4MjJjM2M1OTY3M2Q4Y2RiN2E0N2JlYmM4
NjFkM2JkOGI2OWJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCkBAIC01Nyw2ICs1Nyw5IEBAIHB1YmxpYzoK
IAogICAgIE5QT2JqZWN0KiBucE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbnBPYmplY3Q7IH0K
IAorcHJvdGVjdGVkOgorICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpKU0dsb2JhbE9iamVj
dCopOworCiBwcml2YXRlOgogICAgIEpTTlBPYmplY3QoSlNDOjpKU0dsb2JhbE9iamVjdCosIE5Q
UnVudGltZU9iamVjdE1hcCosIE5QT2JqZWN0KiwgSlNDOjpTdHJ1Y3R1cmUqKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106010</attachid>
            <date>2011-09-01 12:34:08 -0700</date>
            <delta_ts>2011-09-01 15:54:42 -0700</delta_ts>
            <desc>Random improvement</desc>
            <filename>bug-67174-20110901123406.patch</filename>
            <type>text/plain</type>
            <size>90485</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQyMjMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcAppbmRleCBmYTlkMjE2ZGQxMTI1MDEyN2Vl
Njg1ZmUxZWM4ZDU5ZmYyNjhjOTllLi45NTA0YWQ4MGQ4NTNmM2M2NTVmODQyOGQ3ZDE2YTY1ZmVj
YjgzMDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuY3BwCkBAIC00Myw2ICs0MywxMiBAQCBKU0NhbGxiYWNrQ29uc3RydWN0b3I6
OkpTQ2FsbGJhY2tDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
YwogICAgICwgbV9jbGFzcyhqc0NsYXNzKQogICAgICwgbV9jYWxsYmFjayhjYWxsYmFjaykKIHsK
KyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QsIGpzQ2xhc3MpOworfQorCit2b2lkIEpT
Q2FsbGJhY2tDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDbGFzc1JlZiBqc0NsYXNzKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChp
bmhlcml0cygmc19pbmZvKSk7CiAgICAgaWYgKG1fY2xhc3MpCiAgICAgICAgIEpTQ2xhc3NSZXRh
aW4oanNDbGFzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuaAppbmRleCA0MGFhYmNmMTkyMTMxZDQxNDdiMDc4Mzg5OTkwOTlmOGExZTUx
ZWRhLi45MTE5MWRiNWY5Njc5OWUyMGNhNDZlOTEwMTRlNWVhNGFjNjY4Y2Q3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmgKQEAgLTUy
LDYgKzUyLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgSlNDYWxsYmFja0NvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgSlNDbGFzc1JlZiwgSlNPYmplY3RDYWxs
QXNDb25zdHJ1Y3RvckNhbGxiYWNrKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
T2JqZWN0KiwgSlNDbGFzc1JlZik7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdz
OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuaAppbmRleCBlZTk5MGEwMmZjZmI5OTRjMWQ0ODFlMjc4NTdlY2MzODA4MDBjNmI1Li45YzJm
MzlmYjA3NGJlNjlkMDU4MzExMDVkYjcxZDA1NzU3MTg5YTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTI0LDE2ICsxMjQsMjEgQEAgcHJv
dGVjdGVkOgogICAgIC8vIGZ1bmN0aW9uYWxpdHkgaGVyZS4KICAgICB2b2lkKiBvcGVyYXRvciBu
ZXcoc2l6ZV90LCB2b2lkKiBwdHIpIHsgcmV0dXJuIHB0cjsgfQogCisgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oKTsKKwogcHVibGljOgogICAgIHR5cGVkZWYgUGFyZW50IEJhc2U7CiAKICAgICBzdGF0
aWMgSlNDYWxsYmFja09iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTQ2xhc3NSZWYgY2xhc3NS
ZWYsIHZvaWQqIGRhdGEpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8
SlNDYWxsYmFja09iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIEpTQ2FsbGJhY2tPYmplY3QoZXhlYywg
Z2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGNsYXNzUmVmLCBkYXRhKTsKKyAgICAgICAgSlNDYWxs
YmFja09iamVjdCogY2FsbGJhY2tPYmplY3QgPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0NhbGxiYWNr
T2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgSlNDYWxsYmFja09iamVjdChleGVjLCBnbG9iYWxPYmpl
Y3QsIHN0cnVjdHVyZSwgY2xhc3NSZWYsIGRhdGEpOworICAgICAgICByZXR1cm4gY2FsbGJhY2tP
YmplY3Q7CiAgICAgfQogICAgIHN0YXRpYyBKU0NhbGxiYWNrT2JqZWN0KiBjcmVhdGUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0NsYXNzUmVmIGNsYXNzUmVmLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0NhbGxiYWNr
T2JqZWN0PihnbG9iYWxEYXRhLmhlYXApKSBKU0NhbGxiYWNrT2JqZWN0KGdsb2JhbERhdGEsIGNs
YXNzUmVmLCBzdHJ1Y3R1cmUpOworICAgICAgICBKU0NhbGxiYWNrT2JqZWN0KiBjYWxsYmFja09i
amVjdCA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTQ2FsbGJhY2tPYmplY3Q+KGdsb2JhbERhdGEuaGVh
cCkpIEpTQ2FsbGJhY2tPYmplY3QoZ2xvYmFsRGF0YSwgY2xhc3NSZWYsIHN0cnVjdHVyZSk7Cisg
ICAgICAgIHJldHVybiBjYWxsYmFja09iamVjdDsKICAgICB9CiAKICAgICB2b2lkIHNldFByaXZh
dGUodm9pZCogZGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlND
YWxsYmFja09iamVjdEZ1bmN0aW9ucy5oCmluZGV4IDY5MTBlNTZmZjhjYTQ5OTRiNjMzNmE4N2Fk
ODZlZDBlMTY4YzdjYTYuLmMzMTIzYmRmNjdlOGQzZjcyMDRhNjcxODcyMmMwMzRmYTFhZmI4MDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1
bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVj
dEZ1bmN0aW9ucy5oCkBAIC01NCw4ICs1NCw3IEBAIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6
SlNDYWxsYmFja09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAg
ICAgOiBQYXJlbnQoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiAgICAgLCBtX2NhbGxiYWNrT2Jq
ZWN0RGF0YShhZG9wdFB0cihuZXcgSlNDYWxsYmFja09iamVjdERhdGEoZGF0YSwganNDbGFzcykp
KQogewotICAgIEFTU0VSVChQYXJlbnQ6OmluaGVyaXRzKCZzX2luZm8pKTsKLSAgICBpbml0KGV4
ZWMpOworICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiB9CiAKIC8vIEds
b2JhbCBvYmplY3QgY29uc3RydWN0b3IuCkBAIC02NSw2ICs2NCwyMSBAQCBKU0NhbGxiYWNrT2Jq
ZWN0PFBhcmVudD46OkpTQ2FsbGJhY2tPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0NsYXNzUmVmCiAgICAgOiBQYXJlbnQoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogICAgICwgbV9j
YWxsYmFja09iamVjdERhdGEoYWRvcHRQdHIobmV3IEpTQ2FsbGJhY2tPYmplY3REYXRhKDAsIGpz
Q2xhc3MpKSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbigpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3Mg
UGFyZW50Pgordm9pZCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OmZpbmlzaENyZWF0aW9uKEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNl
OjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0
KTsKKyAgICBBU1NFUlQoUGFyZW50Ojppbmhlcml0cygmc19pbmZvKSk7CisgICAgaW5pdChleGVj
KTsKK30KKworLy8gVGhpcyBpcyBqdXN0IGZvciBHbG9iYWwgb2JqZWN0LCBzbyB3ZSBjYW4gYXNz
dW1lIHRoYXQgQmFzZTo6ZmluaXNoQ3JlYXRpb24gaXMgSlNHbG9iYWxPYmplY3Q6OmNvbnN0cnVj
dG9yQm9keS4KK3RlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Cit2b2lkIEpTQ2FsbGJhY2tPYmplY3Q8
UGFyZW50Pjo6ZmluaXNoQ3JlYXRpb24oKQorewogICAgIEFTU0VSVChQYXJlbnQ6OmluaGVyaXRz
KCZzX2luZm8pKTsKICAgICBBU1NFUlQoUGFyZW50Ojppc0dsb2JhbE9iamVjdCgpKTsKICAgICBp
bml0KHN0YXRpY19jYXN0PEpTR2xvYmFsT2JqZWN0Kj4odGhpcyktPmdsb2JhbEV4ZWMoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuSlNWQUxVRTY0
b25seS5leHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuSlNWQUxVRTY0
b25seS5leHAKaW5kZXggZWFhOWY1MTM5ZjIyZTAzYzgwZWQ3Y2Y0NzkyZTQ4ZGFmOTE2YTYxMS4u
MTM5NTk3ZjljYjA3YzVkNDhiZWQxODk4NGVjNDc0N2Y0YjRmMzQzOCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLkpTVkFMVUU2NG9ubHkuZXhwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5KU1ZBTFVFNjRvbmx5LmV4cApA
QCAtMSArMSwyIEBACi1fX1pOM0pTQzEwSlNGdW5jdGlvbkMxRVBOU185RXhlY1N0YXRlRVBOU18x
NEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRWlSS05TXzEwSWRlbnRpZmllckVQRlB2UzJf
RQorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5l
eHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCmluZGV4IDlmNGEz
YmRjYTIxM2IzYjViNTJmNThmZjQ2YjFiMzcwYjBkODVkZTcuLjI3NDVhNDcxZDRkMTgyM2Q0MWQ5
MzJkZTA0NjZmOGM3YWU5OGQ5Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5leHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmV4cApAQCAtMTEwLDEzICsxMTAsMTcgQEAgX19aTjNKU0MxMElkZW50aWZpZXI0ZnJvbUVQ
TlNfOUV4ZWNTdGF0ZUVpCiBfX1pOM0pTQzEwSWRlbnRpZmllcjRmcm9tRVBOU185RXhlY1N0YXRl
RWoKIF9fWk4zSlNDMTBJZGVudGlmaWVyNWVxdWFsRVBLTjNXVEYxMFN0cmluZ0ltcGxFUEtjCiBf
X1pOM0pTQzEwSWRlbnRpZmllcjh0b1VJbnQzMkVSS05TXzdVU3RyaW5nRVJiCitfX1pOM0pTQzEw
SlNGdW5jdGlvbjE0ZmluaXNoQ3JlYXRpb25FUE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxP
YmplY3RFUE5TXzE4RnVuY3Rpb25FeGVjdXRhYmxlRVBOU18xNFNjb3BlQ2hhaW5Ob2RlRQorX19a
TjNKU0MxMEpTRnVuY3Rpb24xNGZpbmlzaENyZWF0aW9uRVBOU185RXhlY1N0YXRlRVBOU18xNEpT
R2xvYmFsT2JqZWN0RWlSS05TXzEwSWRlbnRpZmllckVQTlNfMTRFeGVjdXRhYmxlQmFzZUUKIF9f
Wk4zSlNDMTBKU0Z1bmN0aW9uNG5hbWVFUE5TXzlFeGVjU3RhdGVFCitfX1pOM0pTQzEwSlNGdW5j
dGlvbjZjcmVhdGVFUE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RFUE5TXzlTdHJ1
Y3R1cmVFaVJLTlNfMTBJZGVudGlmaWVyRVBGUHZTMl9FCiBfX1pOM0pTQzEwSlNGdW5jdGlvbjZz
X2luZm9FCitfX1pOM0pTQzEwSlNGdW5jdGlvbkMxRVBOU185RXhlY1N0YXRlRVBOU18xNEpTR2xv
YmFsT2JqZWN0RVBOU185U3RydWN0dXJlRQogX19aTjNKU0MxMHRocm93RXJyb3JFUE5TXzlFeGVj
U3RhdGVFTlNfN0pTVmFsdWVFCiBfX1pOM0pTQzEwdGhyb3dFcnJvckVQTlNfOUV4ZWNTdGF0ZUVQ
TlNfOEpTT2JqZWN0RQogX19aTjNKU0MxMUpTQnl0ZUFycmF5MTNzX2RlZmF1bHRJbmZvRQogX19a
TjNKU0MxMUpTQnl0ZUFycmF5MTVjcmVhdGVTdHJ1Y3R1cmVFUk5TXzEySlNHbG9iYWxEYXRhRU5T
XzdKU1ZhbHVlRVBLTlNfOUNsYXNzSW5mb0UKLV9fWk4zSlNDMTFKU0J5dGVBcnJheTZjcmVhdGVF
UE5TXzlFeGVjU3RhdGVFUE5TXzlTdHJ1Y3R1cmVFUE4zV1RGOUJ5dGVBcnJheUUKK19fWk4zSlND
MTFKU0J5dGVBcnJheUMxRVBOU185RXhlY1N0YXRlRVBOU185U3RydWN0dXJlRVBOM1dURjlCeXRl
QXJyYXlFCiBfX1pOM0pTQzExUGFyc2VyQXJlbmE1cmVzZXRFdgogX19aTjNKU0MxMWNoZWNrU3lu
dGF4RVBOU185RXhlY1N0YXRlRVJLTlNfMTBTb3VyY2VDb2RlRQogX19aTjNKU0MxMWNyZWF0ZUVy
cm9yRVBOU185RXhlY1N0YXRlRVJLTlNfN1VTdHJpbmdFCkBAIC0xMzMsNiArMTM3LDcgQEAgX19a
TjNKU0MxMkpTR2xvYmFsRGF0YTE0ZHVtcFNhbXBsZURhdGFFUE5TXzlFeGVjU3RhdGVFCiBfX1pO
M0pTQzEySlNHbG9iYWxEYXRhMTRyZXNldERhdGVDYWNoZUV2CiBfX1pOM0pTQzEySlNHbG9iYWxE
YXRhMTRzaGFyZWRJbnN0YW5jZUV2CiBfX1pOM0pTQzEySlNHbG9iYWxEYXRhMTVkdW1wUmVnRXhw
VHJhY2VFdgorX19aTjNKU0MxMkpTR2xvYmFsRGF0YTE1Z2V0SG9zdEZ1bmN0aW9uRVBGUHZQTlNf
OUV4ZWNTdGF0ZUVFCiBfX1pOM0pTQzEySlNHbG9iYWxEYXRhMjJjbGVhckJ1aWx0aW5TdHJ1Y3R1
cmVzRXYKICNpZm5kZWYgTkRFQlVHCiBfX1pOM0pTQzEySlNHbG9iYWxEYXRhMjNyZWxlYXNlRXhl
Y3V0YWJsZU1lbW9yeUV2CkBAIC0xOTYsNyArMjAxLDcgQEAgX19aTjNKU0MxN0J5dGVjb2RlR2Vu
ZXJhdG9yMjFzZXREdW1wc0dlbmVyYXRlZENvZGVFYgogX19aTjNKU0MxN1Byb3BlcnR5TmFtZUFy
cmF5M2FkZEVQTjNXVEYxMFN0cmluZ0ltcGxFCiBfX1pOM0pTQzE3Y29uc3RydWN0RnVuY3Rpb25F
UE5TXzlFeGVjU3RhdGVFUE5TXzE0SlNHbG9iYWxPYmplY3RFUktOU183QXJnTGlzdEVSS05TXzEw
SWRlbnRpZmllckVSS05TXzdVU3RyaW5nRWkKIF9fWk4zSlNDMTdjcmVhdGVTeW50YXhFcnJvckVQ
TlNfOUV4ZWNTdGF0ZUVSS05TXzdVU3RyaW5nRQotX19aTjNKU0MxOERlYnVnZ2VyQWN0aXZhdGlv
bkMxRVJOU18xMkpTR2xvYmFsRGF0YUVQTlNfOEpTT2JqZWN0RQorX19aTjNKU0MxOERlYnVnZ2Vy
QWN0aXZhdGlvbjZjcmVhdGVFUk5TXzEySlNHbG9iYWxEYXRhRVBOU184SlNPYmplY3RFCiBfX1pO
M0pTQzE4UHJvcGVydHlEZXNjcmlwdG9yMTFzZXRXcml0YWJsZUViCiBfX1pOM0pTQzE4UHJvcGVy
dHlEZXNjcmlwdG9yMTJzZXRVbmRlZmluZWRFdgogX19aTjNKU0MxOFByb3BlcnR5RGVzY3JpcHRv
cjEzc2V0RGVzY3JpcHRvckVOU183SlNWYWx1ZUVqCkBAIC0yMTksOCArMjI0LDkgQEAgX19aTjNK
U0MyM0Fic3RyYWN0U2FtcGxpbmdDb3VudGVyNGR1bXBFdgogX19aTjNKU0MyM29iamVjdFByb3Rv
RnVuY1RvU3RyaW5nRVBOU185RXhlY1N0YXRlRQogX19aTjNKU0MyM3NldFVwU3RhdGljRnVuY3Rp
b25TbG90RVBOU185RXhlY1N0YXRlRVBLTlNfOUhhc2hFbnRyeUVQTlNfOEpTT2JqZWN0RVJLTlNf
MTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDMjREeW5hbWljR2xvYmFs
T2JqZWN0U2NvcGVDMUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzE0SlNHbG9iYWxPYmplY3RFCitf
X1pOM0pTQzI0SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0MTRmaW5pc2hDcmVhdGlvbkVSTlNfMTJK
U0dsb2JhbERhdGFFUE5TXzE0SlNHbG9iYWxPYmplY3RFCitfX1pOM0pTQzI0SlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0QzJFUk5TXzEySlNHbG9iYWxEYXRhRVBOU185U3RydWN0dXJlRQogX19aTjNK
U0MyNEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEMyRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU185
U3RydWN0dXJlRQotX19aTjNKU0MyNEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEMyRVJOU18xMkpT
R2xvYmFsRGF0YUVQTlNfMTRKU0dsb2JhbE9iamVjdEVQTlNfOVN0cnVjdHVyZUUKIF9fWk4zSlND
MjRjcmVhdGVTdGFja092ZXJmbG93RXJyb3JFUE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pTQzI1ZXZh
bHVhdGVJbkdsb2JhbENhbGxGcmFtZUVSS05TXzdVU3RyaW5nRVJOU183SlNWYWx1ZUVQTlNfMTRK
U0dsb2JhbE9iamVjdEUKIF9fWk4zSlNDMzVjcmVhdGVJbnRlcnJ1cHRlZEV4ZWN1dGlvbkV4Y2Vw
dGlvbkVQTlNfMTJKU0dsb2JhbERhdGFFCkBAIC0yNjksMTIgKzI3NSwxNSBAQCBfX1pOM0pTQzZK
U0xvY2tDMUVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDNlJlZ0V4cEQxRXYKIF9fWk4zSlNDNlJl
Z0V4cDZjcmVhdGVFUk5TXzEySlNHbG9iYWxEYXRhRVJLTlNfN1VTdHJpbmdFTlNfMTFSZWdFeHBG
bGFnc0UKIF9fWk4zSlNDN0pTQXJyYXkxM3Zpc2l0Q2hpbGRyZW5FUk5TXzExU2xvdFZpc2l0b3JF
CitfX1pOM0pTQzdKU0FycmF5MTRmaW5pc2hDcmVhdGlvbkVSTlNfMTJKU0dsb2JhbERhdGFFCitf
X1pOM0pTQzdKU0FycmF5MTRmaW5pc2hDcmVhdGlvbkVSTlNfMTJKU0dsb2JhbERhdGFFUktOU183
QXJnTGlzdEUKIF9fWk4zSlNDN0pTQXJyYXkxNXNldFN1YmNsYXNzRGF0YUVQdgogX19aTjNKU0M3
SlNBcnJheTE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0YXRlRWpSTlNfMTJQcm9wZXJ0
eVNsb3RFCitfX1pOM0pTQzdKU0FycmF5NmNyZWF0ZUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlT
dHJ1Y3R1cmVFUktOU183QXJnTGlzdEUKK19fWk4zSlNDN0pTQXJyYXk2Y3JlYXRlRVJOU18xMkpT
R2xvYmFsRGF0YUVQTlNfOVN0cnVjdHVyZUUKIF9fWk4zSlNDN0pTQXJyYXk2c19pbmZvRQogX19a
TjNKU0M3SlNBcnJheTlzZXRMZW5ndGhFagogX19aTjNKU0M3SlNBcnJheUMxRVJOU18xMkpTR2xv
YmFsRGF0YUVQTlNfOVN0cnVjdHVyZUUKLV9fWk4zSlNDN0pTQXJyYXlDMUVSTlNfMTJKU0dsb2Jh
bERhdGFFUE5TXzlTdHJ1Y3R1cmVFUktOU183QXJnTGlzdEUKIF9fWk4zSlNDN0pTQXJyYXlDMkVS
TlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFCiBfX1pOM0pTQzdKU0FycmF5RDJFdgog
X19aTjNKU0M3SlNWYWx1ZTEzaXNWYWxpZENhbGxlZUV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmRlZiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ov
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCmluZGV4IGQxY2ZmNzg2Mzc3YTBkNDEz
NjJjZDJlZmI3Yjg1ZWMzOTJlMDViYzQuLjllOWVlYTg5OWMyNDJhY2Q2MGQ1YzEwYzVkMDQzOGVj
MTIzZmUxNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZGVmCkBAIC05LDExICs5LDExIEBAIEVYUE9SVFMKICAgICA/PzBEeW5hbWljR2xv
YmFsT2JqZWN0U2NvcGVASlNDQEBRQUVAQUFWSlNHbG9iYWxEYXRhQDFAUEFWSlNHbG9iYWxPYmpl
Y3RAMUBAWiAgCiAgICAgPz8wSW50ZXJuYWxGdW5jdGlvbkBKU0NAQElBRUBQQVZKU0dsb2JhbERh
dGFAMUBQQVZKU0dsb2JhbE9iamVjdEAxQFBBVlN0cnVjdHVyZUAxQEFCVklkZW50aWZpZXJAMUBA
WgogICAgID8/MEpTQXJyYXlASlNDQEBJQUVAQUFWSlNHbG9iYWxEYXRhQDFAUEFWU3RydWN0dXJl
QDFAQFoKLSAgICA/PzBKU0FycmF5QEpTQ0BASUFFQEFBVkpTR2xvYmFsRGF0YUAxQFBBVlN0cnVj
dHVyZUAxQEFCVkFyZ0xpc3RAMUBAWgotICAgID8/MEpTRnVuY3Rpb25ASlNDQEBBQUVAUEFWRXhl
Y1N0YXRlQDFAUEFWSlNHbG9iYWxPYmplY3RAMUBQQVZTdHJ1Y3R1cmVAMUBIQUJWSWRlbnRpZmll
ckAxQFA2SV9KMEBaQFoKKyAgICA/PzBKU0J5dGVBcnJheUBKU0NAQEFBRUBQQVZFeGVjU3RhdGVA
MUBQQVZTdHJ1Y3R1cmVAMUBQQVZCeXRlQXJyYXlAV1RGQEBAWgorICAgID8/MEpTRnVuY3Rpb25A
SlNDQEBBQUVAUEFWRXhlY1N0YXRlQDFAUEFWSlNHbG9iYWxPYmplY3RAMUBQQVZTdHJ1Y3R1cmVA
MUBAWgogICAgID8/MEpTTG9ja0BKU0NAQFFBRUBQQVZFeGVjU3RhdGVAMUBAWgotICAgID8/MEpT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdEBKU0NAQElBRUBBQVZKU0dsb2JhbERhdGFAMUBQQVZKU0ds
b2JhbE9iamVjdEAxQFBBVlN0cnVjdHVyZUAxQEBaCiAgICAgPz8wSlNPYmplY3RXaXRoR2xvYmFs
T2JqZWN0QEpTQ0BASUFFQFBBVkpTR2xvYmFsT2JqZWN0QDFAUEFWU3RydWN0dXJlQDFAQFoKKyAg
ICA/PzBKU09iamVjdFdpdGhHbG9iYWxPYmplY3RASlNDQEBJQUVAQUFWSlNHbG9iYWxEYXRhQDFA
UEFWU3RydWN0dXJlQDFAQFoKICAgICA/PzBNRDVAV1RGQEBRQUVAWFoKICAgICA/PzBNdXRleEBX
VEZAQFFBRUBYWgogICAgID8/MFJlZkNvdW50ZWRMZWFrQ291bnRlckBXVEZAQFFBRUBQQkRAWgpA
QCAtOTUsNyArOTUsOSBAQCBFWFBPUlRTCiAgICAgP2NvbnZlcnRVVEYxNlRvVVRGOEBVbmljb2Rl
QFdURkBAWUE/QVc0Q29udmVyc2lvblJlc3VsdEAxMkBQQVBCX1dQQl9XUEFQQURQQURfTkBaCiAg
ICAgP2NvbnZlcnRVVEY4VG9VVEYxNkBVbmljb2RlQFdURkBAWUE/QVc0Q29udmVyc2lvblJlc3Vs
dEAxMkBQQVBCRFBCRFBBUEFfV1BBX1dfTkBaCiAgICAgP2NyZWF0ZUBCeXRlQXJyYXlAV1RGQEBT
QT9BVj8kUGFzc1JlZlB0ckBWQnl0ZUFycmF5QFdURkBAQDJASUBaCi0gICAgP2NyZWF0ZUBKU0J5
dGVBcnJheUBKU0NAQFNBUEFWMTJAUEFWRXhlY1N0YXRlQDJAUEFWU3RydWN0dXJlQDJAUEFWQnl0
ZUFycmF5QFdURkBAQFoKKyAgICA/Y3JlYXRlQEpTQXJyYXlASlNDQEBTQVBBVjEyQEFBVkpTR2xv
YmFsRGF0YUAyQFBBVlN0cnVjdHVyZUAyQEBaCisgICAgP2NyZWF0ZUBKU0FycmF5QEpTQ0BAU0FQ
QVYxMkBBQVZKU0dsb2JhbERhdGFAMkBQQVZTdHJ1Y3R1cmVAMkBBQlZBcmdMaXN0QDJAQFoKKyAg
ICA/Y3JlYXRlQEpTRnVuY3Rpb25ASlNDQEBTQVBBVjEyQFBBVkV4ZWNTdGF0ZUAyQFBBVkpTR2xv
YmFsT2JqZWN0QDJAUEFWU3RydWN0dXJlQDJASEFCVklkZW50aWZpZXJAMkBQNklfSjBAWkBaCiAg
ICAgP2NyZWF0ZUBKU0dsb2JhbERhdGFASlNDQEBTQT9BVj8kUGFzc1JlZlB0ckBWSlNHbG9iYWxE
YXRhQEpTQ0BAQFdURkBAVzRUaHJlYWRTdGFja1R5cGVAMkBXNEhlYXBTaXplQDJAQFoKICAgICA/
Y3JlYXRlQE9wYXF1ZUpTU3RyaW5nQEBTQT9BVj8kUGFzc1JlZlB0ckBVT3BhcXVlSlNTdHJpbmdA
QEBXVEZAQEFCVlVTdHJpbmdASlNDQEBAWgogICAgID9jcmVhdGVAUmVnRXhwQEpTQ0BAU0FQQVYx
MkBBQVZKU0dsb2JhbERhdGFAMkBBQlZVU3RyaW5nQDJAVzRSZWdFeHBGbGFnc0AyQEBaCkBAIC0x
NjcsNiArMTY5LDEwIEBAIEVYUE9SVFMKICAgICA/ZmFzdFplcm9lZE1hbGxvY0BXVEZAQFlBUEFY
SUBaCiAgICAgP2ZpbGxHZXR0ZXJQcm9wZXJ0eVNsb3RASlNPYmplY3RASlNDQEBRQUVYQUFWUHJv
cGVydHlTbG90QDJAUEFWPyRXcml0ZUJhcnJpZXJCYXNlQFc0VW5rbm93bkBKU0NAQEAyQEBaCiAg
ICAgP2ZpbmFsaXplQFdlYWtIYW5kbGVPd25lckBKU0NAQFVBRVhWPyRIYW5kbGVAVzRVbmtub3du
QEpTQ0BAQDJAUEFYQFoKKyAgICA/ZmluaXNoQ3JlYXRpb25ASlNBcnJheUBKU0NAQElBRVhBQVZK
U0dsb2JhbERhdGFAMkBAWgorICAgID9maW5pc2hDcmVhdGlvbkBKU0FycmF5QEpTQ0BASUFFWEFB
VkpTR2xvYmFsRGF0YUAyQEFCVkFyZ0xpc3RAMkBAWgorICAgID9maW5pc2hDcmVhdGlvbkBKU0Z1
bmN0aW9uQEpTQ0BASUFFWFBBVkV4ZWNTdGF0ZUAyQFBBVkpTR2xvYmFsT2JqZWN0QDJASEFCVklk
ZW50aWZpZXJAMkBQQVZFeGVjdXRhYmxlQmFzZUAyQEBaCisgICAgP2ZpbmlzaENyZWF0aW9uQEpT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdEBKU0NAQElBRVhBQVZKU0dsb2JhbERhdGFAMkBQQVZKU0ds
b2JhbE9iamVjdEAyQEBaCiAgICAgP2ZvY3VzQFByb2ZpbGVASlNDQEBRQUVYUEJWUHJvZmlsZU5v
ZGVAMkBAWgogICAgID9mcm9tQElkZW50aWZpZXJASlNDQEBTQT9BVjEyQFBBVkV4ZWNTdGF0ZUAy
QEhAWgogICAgID9mcm9tQElkZW50aWZpZXJASlNDQEBTQT9BVjEyQFBBVkV4ZWNTdGF0ZUAyQElA
WgpAQCAtMTc2LDYgKzE4Miw3IEBAIEVYUE9SVFMKICAgICA/Z2V0QFN0cnVjdHVyZUBKU0NAQFFB
RUlBQVZKU0dsb2JhbERhdGFAMkBQQVZTdHJpbmdJbXBsQFdURkBAQUFJQUFQQVZKU0NlbGxAMkBA
WgogICAgID9nZXRDYWxsRGF0YUBKU0NlbGxASlNDQEBVQUU/QVc0Q2FsbFR5cGVAMkBBQVRDYWxs
RGF0YUAyQEBaCiAgICAgP2dldENvbnN0cnVjdERhdGFASlNDZWxsQEpTQ0BAVUFFP0FXNENvbnN0
cnVjdFR5cGVAMkBBQVRDb25zdHJ1Y3REYXRhQDJAQFoKKyAgICA/Z2V0SG9zdEZ1bmN0aW9uQEpT
R2xvYmFsRGF0YUBKU0NAQFFBRVBBVk5hdGl2ZUV4ZWN1dGFibGVAMkBQNklfSlBBVkV4ZWNTdGF0
ZUAyQEBaQFoKICAgICA/Z2V0SlNOdW1iZXJASlNDZWxsQEpTQ0BAVUFFP0FWSlNWYWx1ZUAyQFha
CiAgICAgP2dldE9iamVjdEBKU0NlbGxASlNDQEBRQUVQQVZKU09iamVjdEAyQFhaCiAgICAgP2dl
dE93blByb3BlcnR5RGVzY3JpcHRvckBKU0dsb2JhbE9iamVjdEBKU0NAQFVBRV9OUEFWRXhlY1N0
YXRlQDJAQUJWSWRlbnRpZmllckAyQEFBVlByb3BlcnR5RGVzY3JpcHRvckAyQEBaCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3Bw
CmluZGV4IGFlOGE1YWNkNmE4NTcwYWQ3MzdjZTBlMDBjYzlkNWE2OGE5NDA5ZGQuLmE3MTAxZGNi
NmJhYTQwZmY0ZmUwZWZhMzJkMWQ1NWI2OGE5NDE0ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCkBAIC0zMCwxMCAr
MzAsMTYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLURlYnVnZ2VyQWN0aXZhdGlvbjo6RGVidWdn
ZXJBY3RpdmF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNPYmplY3QqIGFjdGl2YXRp
b24pCitEZWJ1Z2dlckFjdGl2YXRpb246OkRlYnVnZ2VyQWN0aXZhdGlvbihKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEpCiAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIGdsb2JhbERh
dGEuZGVidWdnZXJBY3RpdmF0aW9uU3RydWN0dXJlLmdldCgpKQogewotICAgIGZpbmlzaENyZWF0
aW9uKGdsb2JhbERhdGEsIGFjdGl2YXRpb24pOworfQorCitEZWJ1Z2dlckFjdGl2YXRpb24qIERl
YnVnZ2VyQWN0aXZhdGlvbjo6Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNPYmpl
Y3QqIG9iamVjdCkKK3sKKyAgICBEZWJ1Z2dlckFjdGl2YXRpb24qIGFjdGl2YXRpb24gPSBuZXcg
KGFsbG9jYXRlQ2VsbDxEZWJ1Z2dlckFjdGl2YXRpb24+KGdsb2JhbERhdGEuaGVhcCkpIERlYnVn
Z2VyQWN0aXZhdGlvbihnbG9iYWxEYXRhKTsKKyAgICBhY3RpdmF0aW9uLT5maW5pc2hDcmVhdGlv
bihnbG9iYWxEYXRhLCBvYmplY3QpOworICAgIHJldHVybiBhY3RpdmF0aW9uOwogfQogCiB2b2lk
IERlYnVnZ2VyQWN0aXZhdGlvbjo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU09iamVjdCogYWN0aXZhdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAppbmRleCAzNDQ0YmQ4NGU1ZTZjMGE0YzRm
ZDJjYzgwOWY3ZGYyOGM1ZDhkNTMzLi5kODNiMmY3MGZjNGIwYjhhYTU5OWRmNDE0YzVmMDcyYWNk
OTg0ZDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyQWN0aXZhdGlvbi5oCkBAIC0zNCwxMiArMzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBw
dWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwogCi0gICAgICAg
IHN0YXRpYyBEZWJ1Z2dlckFjdGl2YXRpb24qIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTT2JqZWN0KiBvYmplY3QpCi0gICAgICAgIHsKLSAgICAgICAgICAgIERlYnVnZ2VyQWN0
aXZhdGlvbiogYWN0aXZhdGlvbiA9IG5ldyAoYWxsb2NhdGVDZWxsPERlYnVnZ2VyQWN0aXZhdGlv
bj4oZ2xvYmFsRGF0YS5oZWFwKSkgRGVidWdnZXJBY3RpdmF0aW9uKGdsb2JhbERhdGEsIG9iamVj
dCk7Ci0gICAgICAgICAgICByZXR1cm4gYWN0aXZhdGlvbjsKLSAgICAgICAgfQotCisgICAgICAg
IHN0YXRpYyBEZWJ1Z2dlckFjdGl2YXRpb24qIGNyZWF0ZShKU0dsb2JhbERhdGEmLCBKU09iamVj
dCopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYpOwog
ICAgICAgICB2aXJ0dWFsIFVTdHJpbmcgY2xhc3NOYW1lKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKQEAgLTY0LDcgKzU5LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiwgSlNPYmpl
Y3QqIGFjdGl2YXRpb24pOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgRGVidWdnZXJBY3RpdmF0
aW9uKEpTR2xvYmFsRGF0YSYsIEpTT2JqZWN0Kik7CisgICAgICAgIERlYnVnZ2VyQWN0aXZhdGlv
bihKU0dsb2JhbERhdGEmKTsKICAgICAgICAgV3JpdGVCYXJyaWVyPEpTQWN0aXZhdGlvbj4gbV9h
Y3RpdmF0aW9uOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FyZ3VtZW50cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1l
bnRzLmgKaW5kZXggMDlkNTVmMjE2MzU1NTQxZTRiZGRmYjIyMjU4MWI3NmYwOTMxODg3ZS4uN2Qw
YWYzZGU0ZjI4NWZkNGI2NmMwOGExZmJjN2U4MWU1MjRkYzFmMyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKQEAgLTY0LDEyICs2NCwxNCBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgc3RhdGljIEFyZ3VtZW50cyogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiAgICAgICAgIHsKICAgICAgICAgICAgIEFy
Z3VtZW50cyogYXJndW1lbnRzID0gbmV3IChhbGxvY2F0ZUNlbGw8QXJndW1lbnRzPihnbG9iYWxE
YXRhLmhlYXApKSBBcmd1bWVudHMoY2FsbEZyYW1lKTsKKyAgICAgICAgICAgIGFyZ3VtZW50cy0+
ZmluaXNoQ3JlYXRpb24oY2FsbEZyYW1lKTsKICAgICAgICAgICAgIHJldHVybiBhcmd1bWVudHM7
CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBBcmd1bWVudHMqIGNyZWF0ZU5v
UGFyYW1ldGVycyhKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQogICAgICAgICB7CiAgICAgICAgICAgICBBcmd1bWVudHMqIGFyZ3VtZW50cyA9IG5ldyAoYWxs
b2NhdGVDZWxsPEFyZ3VtZW50cz4oZ2xvYmFsRGF0YS5oZWFwKSkgQXJndW1lbnRzKGNhbGxGcmFt
ZSwgTm9QYXJhbWV0ZXJzKTsKKyAgICAgICAgICAgIGFyZ3VtZW50cy0+ZmluaXNoQ3JlYXRpb24o
Y2FsbEZyYW1lLCBOb1BhcmFtZXRlcnMpOwogICAgICAgICAgICAgcmV0dXJuIGFyZ3VtZW50czsK
ICAgICAgICAgfQogCkBAIC0xNjYsMTQgKzE2OCwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgOiBKU05vbkZpbmFsT2JqZWN0KGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCBjYWxsRnJhbWUt
PmxleGljYWxHbG9iYWxPYmplY3QoKS0+YXJndW1lbnRzU3RydWN0dXJlKCkpCiAgICAgICAgICwg
ZChhZG9wdFB0cihuZXcgQXJndW1lbnRzRGF0YSkpCiAgICAgewotICAgICAgICBmaW5pc2hDcmVh
dGlvbihjYWxsRnJhbWUpOwogICAgIH0KIAogICAgIGlubGluZSBBcmd1bWVudHM6OkFyZ3VtZW50
cyhDYWxsRnJhbWUqIGNhbGxGcmFtZSwgTm9QYXJhbWV0ZXJzVHlwZSkKICAgICAgICAgOiBKU05v
bkZpbmFsT2JqZWN0KGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCBjYWxsRnJhbWUtPmxleGljYWxH
bG9iYWxPYmplY3QoKS0+YXJndW1lbnRzU3RydWN0dXJlKCkpCiAgICAgICAgICwgZChhZG9wdFB0
cihuZXcgQXJndW1lbnRzRGF0YSkpCiAgICAgewotICAgICAgICBmaW5pc2hDcmVhdGlvbihjYWxs
RnJhbWUsIE5vUGFyYW1ldGVycyk7CiAgICAgfQogICAgIAogICAgIGlubGluZSB2b2lkIEFyZ3Vt
ZW50czo6ZmluaXNoQ3JlYXRpb24oQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKaW5kZXggNzhjZTAxMmQx
Yjg1Y2Y0YzY0NzA1MjBkM2UwNjM4Y2Y2Yzc1Yjk4Yy4uOTk2NzRiYjIzYjQ5ODE4YjJmM2EzNDg0
YzI2NmUwMTM5ZDg2ZWY0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5UHJvdG90eXBlLmNwcApAQCAtMTE3LDYgKzExNywxMiBAQCBjb25zdCBDbGFzc0luZm8g
QXJyYXlQcm90b3R5cGU6OnNfaW5mbyA9IHsiQXJyYXkiLCAmSlNBcnJheTo6c19pbmZvLCAwLCBF
eGVjU3RhdAogQXJyYXlQcm90b3R5cGU6OkFycmF5UHJvdG90eXBlKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNBcnJheShnbG9iYWxP
YmplY3QtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGds
b2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgQXJyYXlQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
Z2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZv
KSk7CiAgICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIDAs
IGdsb2JhbE9iamVjdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheVByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlQcm90b3R5cGUuaAppbmRleCAxMjRjNjFhYzRkYzc5ODM4NWRlZWE3ODdkZDY0ZDViY2I2ZmJh
MjU4Li45YTYyOGUwYzY5M2NhOWQ3N2U3NzZhODZhOTlkODJhMzA1YjdjN2I4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKQEAgLTQ5LDYgKzQ5
LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKKyAgICAg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCopOworCiAgICAgICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBBbm9ueW1vdXNTbG90Q291bnQgPSBKU0FycmF5OjpBbm9ueW1vdXNT
bG90Q291bnQgKyAxOwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQm9vbGVhbk9iamVjdC5jcHAKaW5kZXggZTI0YTMwYTRiYjU0YWU1MDBlZDBlOWQ3MTY1ZmM5
Y2U3YTVkOWE2My4uYjllMzNkYzQ4NDI5OGI2Y2VlNjc0ZTE4ZDU0YTg3ZjYyZGFkZmQ1NyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5jcHAKQEAg
LTMwLDYgKzMwLDEyIEBAIGNvbnN0IENsYXNzSW5mbyBCb29sZWFuT2JqZWN0OjpzX2luZm8gPSB7
ICJCb29sZWFuIiwgJkpTV3JhcHBlck9iamVjdDo6c19pbmZvLCAwCiBCb29sZWFuT2JqZWN0OjpC
b29sZWFuT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCiAgICAgOiBKU1dyYXBwZXJPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogeworICAg
IGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOworfQorCit2b2lkIEJvb2xlYW5PYmplY3Q6OmZp
bmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKK3sKKyAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2Jq
ZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmgKaW5k
ZXggNzBlZDEyNjEyY2ZlOTU3MzdhMDEzZTBkN2M3NDYzMWNiOWMwNjdlZS4uODQ2MTBkOWI4MWY1
MGUxZGFiOGQ4MzQxNWRkNDc1Mjg1NDg5N2U1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuaApAQCAtMjgsNiArMjgsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICBjbGFzcyBCb29sZWFuT2JqZWN0IDogcHVibGljIEpTV3JhcHBlck9iamVjdCB7CiAg
ICAgcHJvdGVjdGVkOgogICAgICAgICBCb29sZWFuT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFN0cnVj
dHVyZSopOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYpOwogCiAg
ICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpTV3JhcHBlck9iamVjdCBCYXNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAKaW5kZXggZDhjYTA3
MjQ5MWI4NTgzZGZjODFlMTI5NWEyZDhiMzkyYTY0NDdkZi4uNmRmMzBkNzIwMTg4MTg2ZGUxMjIx
MDNlMGQ4ODBlN2Y4MmZmZjM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZUluc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlSW5zdGFuY2UuY3BwCkBAIC0zNywxNSArMzcsMjcgQEAgY29uc3QgQ2xhc3NJbmZvIERh
dGVJbnN0YW5jZTo6c19pbmZvID0geyJEYXRlIiwgJkpTV3JhcHBlck9iamVjdDo6c19pbmZvLCAw
LCAwfTsKIERhdGVJbnN0YW5jZTo6RGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU1dyYXBwZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBzdHJ1Y3R1cmUpCiB7Ci0gICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKLSAgICBzZXRJ
bnRlcm5hbFZhbHVlKGV4ZWMtPmdsb2JhbERhdGEoKSwganNOYU4oKSk7CisgICAgZmluaXNoQ3Jl
YXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKIH0KIAogRGF0ZUluc3RhbmNlOjpEYXRlSW5zdGFu
Y2UoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgZG91YmxlIHRpbWUpCiAg
ICAgOiBKU1dyYXBwZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7Cisg
ICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aW1lKTsKK30KKwordm9pZCBE
YXRlSW5zdGFuY2U6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKK3sK
KyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKKyAgICBBU1NFUlQoaW5oZXJp
dHMoJnNfaW5mbykpOworICAgIHNldEludGVybmFsVmFsdWUoZ2xvYmFsRGF0YSwganNOYU4oKSk7
Cit9CisKK3ZvaWQgRGF0ZUluc3RhbmNlOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIGRvdWJsZSB0aW1lKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2Jh
bERhdGEpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgc2V0SW50ZXJuYWxW
YWx1ZShleGVjLT5nbG9iYWxEYXRhKCksIGpzTnVtYmVyKHRpbWVDbGlwKHRpbWUpKSk7CisgICAg
c2V0SW50ZXJuYWxWYWx1ZShnbG9iYWxEYXRhLCBqc051bWJlcih0aW1lQ2xpcCh0aW1lKSkpOwog
fQogCiBjb25zdCBHcmVnb3JpYW5EYXRlVGltZSogRGF0ZUluc3RhbmNlOjpjYWxjdWxhdGVHcmVn
b3JpYW5EYXRlVGltZShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oCmluZGV4IGFmMmRmYTA1MGIzMzI1NmIyMzhjOWQz
MGQ2Y2MyZmFlY2JkYTM2MWIuLmQ1MjAxZWUxOTI4ODY5ODc4MTE3YTA2YWNmZmNhYjVmOWIwOGY5
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5j
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5oCkBA
IC0zMyw2ICszMyw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByb3RlY3RlZDoKICAgICAgICAg
RGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIGRvdWJsZSk7CiAgICAgICAgIERh
dGVJbnN0YW5jZShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqKTsKKyAgICAgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihKU0dsb2JhbERhdGEmKTsKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0ds
b2JhbERhdGEmLCBkb3VibGUpOwogICAgICAgICAKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVk
ZWYgSlNXcmFwcGVyT2JqZWN0IEJhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9ySW5zdGFuY2UuY3BwCmluZGV4IDNlMDMzN2I4OTRkMzUzN2FlMTJlZjU5NWJhOTU5
MWQ4M2U1YWQyMGYuLjRmNWU2ZTJmNTY4NDgwNjFkOGUxMzlkNWIxNzk1Zjg1NzA5ZGJlN2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCkBA
IC0yOSwyNiArMjksNiBAQCBFcnJvckluc3RhbmNlOjpFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU05vbkZpbmFsT2Jq
ZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKICAgICAsIG1fYXBwZW5kU291cmNlVG9NZXNzYWdl
KGZhbHNlKQogewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIFVTdHJpbmcoIiIsIDAp
KTsKLX0KLQotRXJyb3JJbnN0YW5jZTo6RXJyb3JJbnN0YW5jZShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBVU3RyaW5nJiBtZXNzYWdlKQotICAg
IDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCi0gICAgLCBtX2FwcGVu
ZFNvdXJjZVRvTWVzc2FnZShmYWxzZSkKLXsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRh
LCBtZXNzYWdlKTsKLX0KLQotRXJyb3JJbnN0YW5jZSogRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFVTdHJp
bmcmIG1lc3NhZ2UpCi17Ci0gICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEVycm9ySW5zdGFu
Y2U+KGdsb2JhbERhdGEuaGVhcCkpIEVycm9ySW5zdGFuY2UoZ2xvYmFsRGF0YSwgc3RydWN0dXJl
LCBtZXNzYWdlKTsKLX0KLQotRXJyb3JJbnN0YW5jZSogRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKEV4
ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTVmFsdWUgbWVzc2FnZSkKLXsK
LSAgICBpZiAobWVzc2FnZS5pc1VuZGVmaW5lZCgpKQotICAgICAgICByZXR1cm4gbmV3IChhbGxv
Y2F0ZUNlbGw8RXJyb3JJbnN0YW5jZT4oKmV4ZWMtPmhlYXAoKSkpIEVycm9ySW5zdGFuY2UoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpOwotICAgIHJldHVybiBjcmVhdGUoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBzdHJ1Y3R1cmUsIG1lc3NhZ2UudG9TdHJpbmcoZXhlYykpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9ySW5zdGFuY2UuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5z
dGFuY2UuaAppbmRleCAwNmE5NTMyMTNjYTViZTViNDUxYTNkYzhhMTFlOTJkYWExMjc2ZjkyLi45
YzZhN2E3NzU5MTI2NjJhOTkyZjRkNTcyMDMzZDBkNmJmYWRjNjdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCkBAIC0zNiw5ICszNiwyMSBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIHN0YXRp
YyBFcnJvckluc3RhbmNlKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiwgY29uc3Qg
VVN0cmluZyYpOwotICAgICAgICBzdGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEV4ZWNTdGF0
ZSosIFN0cnVjdHVyZSosIEpTVmFsdWUgbWVzc2FnZSk7Ci0KKyAgICAgICAgc3RhdGljIEVycm9y
SW5zdGFuY2UqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBjb25zdCBVU3RyaW5nJiBtZXNzYWdlKQorICAgICAgICB7CisgICAgICAgICAgICBF
cnJvckluc3RhbmNlKiBpbnN0YW5jZSA9IG5ldyAoYWxsb2NhdGVDZWxsPEVycm9ySW5zdGFuY2U+
KGdsb2JhbERhdGEuaGVhcCkpIEVycm9ySW5zdGFuY2UoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsK
KyAgICAgICAgICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBtZXNzYWdl
KTsKKyAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTsKKyAgICAgICAgfQorICAgICAgICBzdGF0
aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIEpTVmFsdWUgbWVzc2FnZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG1lc3Nh
Z2UuaXNVbmRlZmluZWQoKSkgeworICAgICAgICAgICAgICAgIEVycm9ySW5zdGFuY2UqIGluc3Rh
bmNlID0gbmV3IChhbGxvY2F0ZUNlbGw8RXJyb3JJbnN0YW5jZT4oKmV4ZWMtPmhlYXAoKSkpIEVy
cm9ySW5zdGFuY2UoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAg
ICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIFVTdHJpbmco
IiIsIDApKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlKGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJl
LCBtZXNzYWdlLnRvU3RyaW5nKGV4ZWMpKTsKKyAgICAgICAgfQogCiAgICAgICAgIGJvb2wgYXBw
ZW5kU291cmNlVG9NZXNzYWdlKCkgeyByZXR1cm4gbV9hcHBlbmRTb3VyY2VUb01lc3NhZ2U7IH0K
ICAgICAgICAgdm9pZCBzZXRBcHBlbmRTb3VyY2VUb01lc3NhZ2UoKSB7IG1fYXBwZW5kU291cmNl
VG9NZXNzYWdlID0gdHJ1ZTsgfQpAQCAtNDgsNyArNjAsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgIHByb3RlY3RlZDoKICAgICAgICAgZXhwbGljaXQgRXJyb3JJbnN0YW5jZShKU0dsb2JhbERh
dGEmLCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAgZXhwbGljaXQgRXJyb3JJbnN0YW5jZShKU0dsb2Jh
bERhdGEmLCBTdHJ1Y3R1cmUqLCBjb25zdCBVU3RyaW5nJik7CiAKICAgICAgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IFVTdHJpbmcmIG1lc3Nh
Z2UpCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9yUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9y
UHJvdG90eXBlLmNwcAppbmRleCAzODYwNjhiYzNlNzhmN2JiZGRiMjRjMzQ3YzlkMWZmZDdjZWRh
ODExLi42OTg2NzUyNGM0Y2U3ZWY1Yzc2M2I2YTUyNzJlNzE2Y2U4NDk1NzljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCkBAIC01Mywx
MSArNTMsMTIgQEAgQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChFcnJvclByb3RvdHlwZSk7CiBF
cnJvclByb3RvdHlwZTo6RXJyb3JQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEVycm9ySW5z
dGFuY2UoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7Ci0gICAgY29uc3RydWN0b3JC
b2R5KGV4ZWMsIGdsb2JhbE9iamVjdCk7CisgICAgZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFs
T2JqZWN0KTsKIH0KIAotdm9pZCBFcnJvclByb3RvdHlwZTo6Y29uc3RydWN0b3JCb2R5KEV4ZWNT
dGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgRXJyb3JQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKIHsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRh
KCksICIiKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHB1dERpcmVjdChl
eGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5uYW1lLCBqc05vbnRyaXZp
YWxTdHJpbmcoZXhlYywgIkVycm9yIiksIERvbnRFbnVtKTsKICAgICBwdXRBbm9ueW1vdXNWYWx1
ZShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgMCwgZ2xvYmFsT2JqZWN0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oCmluZGV4IDk4MzU3MmI2
MjIzYTdiZDM4ZmMzZTVhYTE4NTY5YmMwODQ0MGVkNzguLmQ3YjE1MjI1YzgxOGYxMmRkMWI0NjNm
ZTFmNTQ3MDhjZGZjZjQ5YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JQcm90b3R5cGUuaApAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
IHByb3RlY3RlZDoKICAgICAgICAgRXJyb3JQcm90b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxP
YmplY3QqLCBTdHJ1Y3R1cmUqKTsKLSAgICAgICAgdm9pZCBjb25zdHJ1Y3RvckJvZHkoRXhlY1N0
YXRlKiwgSlNHbG9iYWxPYmplY3QqKTsKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVj
U3RhdGUqLCBKU0dsb2JhbE9iamVjdCopOwogCiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEVycm9ySW5z
dGFuY2U6OlN0cnVjdHVyZUZsYWdzOwogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQW5v
bnltb3VzU2xvdENvdW50ID0gRXJyb3JJbnN0YW5jZTo6QW5vbnltb3VzU2xvdENvdW50ICsgMTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBl
cnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5j
cHAKaW5kZXggYjU4ZDg5NTE3ZTM3ZWRiYWIyNzk0MDMwMTExNmZlM2MyMjNjMzQ4Mi4uNGJjNGZh
ZTA2MDRjYjYyMThiZDk0MGVjMmFmMzRhZWRhZGEzZGYxMCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAKQEAgLTQ2LDcgKzQ2LDYg
QEAgcHJpdmF0ZToKICAgICBJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSkKICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIGdsb2Jh
bERhdGEuaW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvclN0cnVjdHVyZS5nZXQoKSkKICAgICB7Ci0g
ICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIH0KIAogcHVibGljOgpAQCAt
NTQsNyArNTMsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSW50ZXJydXB0ZWRFeGVjdXRpb25F
cnJvciogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yPihnbG9iYWxE
YXRhLmhlYXApKSBJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yKGdsb2JhbERhdGEpOworICAgICAg
ICBJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yKiBlcnJvciA9IG5ldyAoYWxsb2NhdGVDZWxsPElu
dGVycnVwdGVkRXhlY3V0aW9uRXJyb3I+KGdsb2JhbERhdGEuaGVhcCkpIEludGVycnVwdGVkRXhl
Y3V0aW9uRXJyb3IoZ2xvYmFsRGF0YSk7CisgICAgICAgIGVycm9yLT5maW5pc2hDcmVhdGlvbihn
bG9iYWxEYXRhKTsKKyAgICAgICAgcmV0dXJuIGVycm9yOwogICAgIH0KIAogICAgIHZpcnR1YWwg
Q29tcGxUeXBlIGV4Y2VwdGlvblR5cGUoKSBjb25zdCB7IHJldHVybiBJbnRlcnJ1cHRlZDsgfQpA
QCAtNzIsNyArNzMsNiBAQCBwcml2YXRlOgogICAgIFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcihK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCiAgICAgICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9i
YWxEYXRhLCBnbG9iYWxEYXRhLnRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvclN0cnVjdHVyZS5nZXQo
KSkKICAgICB7Ci0gICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIH0KIAog
cHVibGljOgpAQCAtODAsNyArODAsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgVGVybWluYXRl
ZEV4ZWN1dGlvbkVycm9yKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJv
cj4oZ2xvYmFsRGF0YS5oZWFwKSkgVGVybWluYXRlZEV4ZWN1dGlvbkVycm9yKGdsb2JhbERhdGEp
OworICAgICAgICBUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3IqIGVycm9yID0gbmV3IChhbGxvY2F0
ZUNlbGw8VGVybWluYXRlZEV4ZWN1dGlvbkVycm9yPihnbG9iYWxEYXRhLmhlYXApKSBUZXJtaW5h
dGVkRXhlY3V0aW9uRXJyb3IoZ2xvYmFsRGF0YSk7CisgICAgICAgIGVycm9yLT5maW5pc2hDcmVh
dGlvbihnbG9iYWxEYXRhKTsKKyAgICAgICAgcmV0dXJuIGVycm9yOwogICAgIH0KIAogICAgIHZp
cnR1YWwgQ29tcGxUeXBlIGV4Y2VwdGlvblR5cGUoKSBjb25zdCB7IHJldHVybiBUZXJtaW5hdGVk
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCmluZGV4
IDM4OTdlOTM2OGIyZjkwNzlhYTViOTJmMmZkNDAyMTdjZTYwZTAwZTIuLjU2MTc1MjIzMDk2YTJm
MjYyMzVjZTdiMDcxNGU5NjYzZGVjOTgxNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuY3BwCkBAIC0xMjcsNyArMTI3LDYgQEAgY29uc3QgQ2xhc3NJbmZv
IEV2YWxFeGVjdXRhYmxlOjpzX2luZm8gPSB7ICJFdmFsRXhlY3V0YWJsZSIsICZTY3JpcHRFeGVj
dXRhYmxlOjoKIEV2YWxFeGVjdXRhYmxlOjpFdmFsRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBpblN0cmljdENvbnRleHQpCiAgICAgOiBT
Y3JpcHRFeGVjdXRhYmxlKGV4ZWMtPmdsb2JhbERhdGEoKS5ldmFsRXhlY3V0YWJsZVN0cnVjdHVy
ZS5nZXQoKSwgZXhlYywgc291cmNlLCBpblN0cmljdENvbnRleHQpCiB7Ci0gICAgZmluaXNoQ3Jl
YXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKIH0KIAogRXZhbEV4ZWN1dGFibGU6On5FdmFsRXhl
Y3V0YWJsZSgpCkBAIC0xMzksNyArMTM4LDYgQEAgY29uc3QgQ2xhc3NJbmZvIFByb2dyYW1FeGVj
dXRhYmxlOjpzX2luZm8gPSB7ICJQcm9ncmFtRXhlY3V0YWJsZSIsICZTY3JpcHRFeGVjdXQKIFBy
b2dyYW1FeGVjdXRhYmxlOjpQcm9ncmFtRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IFNvdXJjZUNvZGUmIHNvdXJjZSkKICAgICA6IFNjcmlwdEV4ZWN1dGFibGUoZXhlYy0+Z2xvYmFs
RGF0YSgpLnByb2dyYW1FeGVjdXRhYmxlU3RydWN0dXJlLmdldCgpLCBleGVjLCBzb3VyY2UsIGZh
bHNlKQogewotICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CiB9CiAKIFBy
b2dyYW1FeGVjdXRhYmxlOjp+UHJvZ3JhbUV4ZWN1dGFibGUoKQpAQCAtMTQ4LDcgKzE0Niw3IEBA
IFByb2dyYW1FeGVjdXRhYmxlOjp+UHJvZ3JhbUV4ZWN1dGFibGUoKQogCiBjb25zdCBDbGFzc0lu
Zm8gRnVuY3Rpb25FeGVjdXRhYmxlOjpzX2luZm8gPSB7ICJGdW5jdGlvbkV4ZWN1dGFibGUiLCAm
U2NyaXB0RXhlY3V0YWJsZTo6c19pbmZvLCAwLCAwIH07CiAKLUZ1bmN0aW9uRXhlY3V0YWJsZTo6
RnVuY3Rpb25FeGVjdXRhYmxlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRp
ZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBib29sIGZvcmNlVXNlc0FyZ3Vt
ZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzLCBib29sIGluU3RyaWN0Q29udGV4
dCwgaW50IGZpcnN0TGluZSwgaW50IGxhc3RMaW5lKQorRnVuY3Rpb25FeGVjdXRhYmxlOjpGdW5j
dGlvbkV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVy
JiBuYW1lLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRz
LCBGdW5jdGlvblBhcmFtZXRlcnMqIHBhcmFtZXRlcnMsIGJvb2wgaW5TdHJpY3RDb250ZXh0KQog
ICAgIDogU2NyaXB0RXhlY3V0YWJsZShnbG9iYWxEYXRhLmZ1bmN0aW9uRXhlY3V0YWJsZVN0cnVj
dHVyZS5nZXQoKSwgZ2xvYmFsRGF0YSwgc291cmNlLCBpblN0cmljdENvbnRleHQpCiAgICAgLCBt
X251bUNhcHR1cmVkVmFyaWFibGVzKDApCiAgICAgLCBtX2ZvcmNlVXNlc0FyZ3VtZW50cyhmb3Jj
ZVVzZXNBcmd1bWVudHMpCkBAIC0xNTYsMTAgKzE1NCw5IEBAIEZ1bmN0aW9uRXhlY3V0YWJsZTo6
RnVuY3Rpb25FeGVjdXRhYmxlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRp
ZmllCiAgICAgLCBtX25hbWUobmFtZSkKICAgICAsIG1fc3ltYm9sVGFibGUoMCkKIHsKLSAgICBm
aW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBuYW1lLCBmaXJzdExpbmUsIGxhc3RMaW5lKTsKIH0K
IAotRnVuY3Rpb25FeGVjdXRhYmxlOjpGdW5jdGlvbkV4ZWN1dGFibGUoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJvb2wg
Zm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqIHBhcmFtZXRlcnMsIGJvb2wg
aW5TdHJpY3RDb250ZXh0LCBpbnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpCitGdW5jdGlvbkV4
ZWN1dGFibGU6OkZ1bmN0aW9uRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50
aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBmb3JjZVVzZXNBcmd1
bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyogcGFyYW1ldGVycywgYm9vbCBpblN0cmljdENvbnRl
eHQpCiAgICAgOiBTY3JpcHRFeGVjdXRhYmxlKGV4ZWMtPmdsb2JhbERhdGEoKS5mdW5jdGlvbkV4
ZWN1dGFibGVTdHJ1Y3R1cmUuZ2V0KCksIGV4ZWMsIHNvdXJjZSwgaW5TdHJpY3RDb250ZXh0KQog
ICAgICwgbV9udW1DYXB0dXJlZFZhcmlhYmxlcygwKQogICAgICwgbV9mb3JjZVVzZXNBcmd1bWVu
dHMoZm9yY2VVc2VzQXJndW1lbnRzKQpAQCAtMTY3LDcgKzE2NCw2IEBAIEZ1bmN0aW9uRXhlY3V0
YWJsZTo6RnVuY3Rpb25FeGVjdXRhYmxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgbmFtZSwKICAgICAsIG1fbmFtZShuYW1lKQogICAgICwgbV9zeW1ib2xUYWJsZSgwKQogewot
ICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFtZSwgZmlyc3RMaW5lLCBs
YXN0TGluZSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXhlY3V0YWJsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJs
ZS5oCmluZGV4IDVmYWRiYjgxMjQxYTBjZTNlMTM4MzE4NTg4YWY0MjExNjdmYTFiNjkuLjYzOWJi
ZTQ3MDBhZjMzNDM0MjQxZDE1NTA4YWRkN2Q0MWE3MmExN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKQEAgLTE3NiwxNiArMTc2LDIxIEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICBzdGF0aWMgTmF0aXZlRXhlY3V0YWJsZSogY3JlYXRlKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNhbGxUaHVuaywgTmF0aXZl
RnVuY3Rpb24gZnVuY3Rpb24sIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBjb25zdHJ1Y3RUaHVuaywg
TmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IpCiAgICAgICAgIHsKICAgICAgICAgICAgIE5hdGl2
ZUV4ZWN1dGFibGUqIGV4ZWN1dGFibGU7Ci0gICAgICAgICAgICBpZiAoIWNhbGxUaHVuaykKLSAg
ICAgICAgICAgICAgICBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8TmF0aXZlRXhlY3V0
YWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkgTmF0aXZlRXhlY3V0YWJsZShnbG9iYWxEYXRhLCBKSVRD
b2RlKCksIGZ1bmN0aW9uLCBKSVRDb2RlKCksIGNvbnN0cnVjdG9yKTsKLSAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8TmF0aXZl
RXhlY3V0YWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkgTmF0aXZlRXhlY3V0YWJsZShnbG9iYWxEYXRh
LCBKSVRDb2RlOjpIb3N0RnVuY3Rpb24oY2FsbFRodW5rKSwgZnVuY3Rpb24sIEpJVENvZGU6Okhv
c3RGdW5jdGlvbihjb25zdHJ1Y3RUaHVuayksIGNvbnN0cnVjdG9yKTsKKyAgICAgICAgICAgIGlm
ICghY2FsbFRodW5rKSB7CisgICAgICAgICAgICAgICAgZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2Nh
dGVDZWxsPE5hdGl2ZUV4ZWN1dGFibGU+KGdsb2JhbERhdGEuaGVhcCkpIE5hdGl2ZUV4ZWN1dGFi
bGUoZ2xvYmFsRGF0YSwgZnVuY3Rpb24sIGNvbnN0cnVjdG9yKTsKKyAgICAgICAgICAgICAgICBl
eGVjdXRhYmxlLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBKSVRDb2RlKCksIEpJVENvZGUo
KSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBu
ZXcgKGFsbG9jYXRlQ2VsbDxOYXRpdmVFeGVjdXRhYmxlPihnbG9iYWxEYXRhLmhlYXApKSBOYXRp
dmVFeGVjdXRhYmxlKGdsb2JhbERhdGEsIGZ1bmN0aW9uLCBjb25zdHJ1Y3Rvcik7CisgICAgICAg
ICAgICAgICAgZXhlY3V0YWJsZS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgSklUQ29kZTo6
SG9zdEZ1bmN0aW9uKGNhbGxUaHVuayksIEpJVENvZGU6Okhvc3RGdW5jdGlvbihjb25zdHJ1Y3RU
aHVuaykpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CiAg
ICAgICAgIH0KICNlbHNlCiAgICAgICAgIHN0YXRpYyBOYXRpdmVFeGVjdXRhYmxlKiBjcmVhdGUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgTmF0aXZl
RnVuY3Rpb24gY29uc3RydWN0b3IpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcg
KGFsbG9jYXRlQ2VsbDxOYXRpdmVFeGVjdXRhYmxlPihnbG9iYWxEYXRhLmhlYXApKSBOYXRpdmVF
eGVjdXRhYmxlKGdsb2JhbERhdGEsIGZ1bmN0aW9uLCBjb25zdHJ1Y3Rvcik7CisgICAgICAgICAg
ICBOYXRpdmVFeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8TmF0aXZl
RXhlY3V0YWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkgTmF0aXZlRXhlY3V0YWJsZShnbG9iYWxEYXRh
LCBmdW5jdGlvbiwgY29uc3RydWN0b3IpOworICAgICAgICAgICAgZXhlY3V0YWJsZS0+ZmluaXNo
Q3JlYXRpb24oZ2xvYmFsRGF0YSk7CisgICAgICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAg
ICAgICAgfQogI2VuZGlmCiAKQEAgLTIxMSwxMiArMjE2LDExIEBAIG5hbWVzcGFjZSBKU0Mgewog
IAogICAgIHByaXZhdGU6CiAjaWYgRU5BQkxFKEpJVCkKLSAgICAgICAgTmF0aXZlRXhlY3V0YWJs
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpJVENvZGUgY2FsbFRodW5rLCBOYXRpdmVGdW5j
dGlvbiBmdW5jdGlvbiwgSklUQ29kZSBjb25zdHJ1Y3RUaHVuaywgTmF0aXZlRnVuY3Rpb24gY29u
c3RydWN0b3IpCisgICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3Ip
CiAgICAgICAgICAgICA6IEV4ZWN1dGFibGVCYXNlKGdsb2JhbERhdGEsIGdsb2JhbERhdGEubmF0
aXZlRXhlY3V0YWJsZVN0cnVjdHVyZS5nZXQoKSwgTlVNX1BBUkFNRVRFUlNfSVNfSE9TVCkKICAg
ICAgICAgICAgICwgbV9mdW5jdGlvbihmdW5jdGlvbikKICAgICAgICAgICAgICwgbV9jb25zdHJ1
Y3Rvcihjb25zdHJ1Y3RvcikKICAgICAgICAgewotICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24o
Z2xvYmFsRGF0YSwgY2FsbFRodW5rLCBjb25zdHJ1Y3RUaHVuayk7CiAgICAgICAgIH0KICNlbHNl
CiAgICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBOYXRp
dmVGdW5jdGlvbiBmdW5jdGlvbiwgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0b3IpCkBAIC0yMjQs
NyArMjI4LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAsIG1fZnVuY3Rpb24oZnVu
Y3Rpb24pCiAgICAgICAgICAgICAsIG1fY29uc3RydWN0b3IoY29uc3RydWN0b3IpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgICAgICB9CiAj
ZW5kaWYKIApAQCAtMzE3LDYgKzMyMCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0
aWMgRXZhbEV4ZWN1dGFibGUqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNv
ZGUmIHNvdXJjZSwgYm9vbCBpc0luU3RyaWN0Q29udGV4dCkgCiAgICAgICAgIHsKICAgICAgICAg
ICAgIEV2YWxFeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8RXZhbEV4
ZWN1dGFibGU+KCpleGVjLT5oZWFwKCkpKSBFdmFsRXhlY3V0YWJsZShleGVjLCBzb3VyY2UsIGlz
SW5TdHJpY3RDb250ZXh0KTsKKyAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9u
KGV4ZWMtPmdsb2JhbERhdGEoKSk7CiAgICAgICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAg
ICAgICAgfQogCkBAIC0zNTQsNiArMzU4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0
YXRpYyBQcm9ncmFtRXhlY3V0YWJsZSogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291
cmNlQ29kZSYgc291cmNlKQogICAgICAgICB7CiAgICAgICAgICAgICBQcm9ncmFtRXhlY3V0YWJs
ZSogZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2NhdGVDZWxsPFByb2dyYW1FeGVjdXRhYmxlPigqZXhl
Yy0+aGVhcCgpKSkgUHJvZ3JhbUV4ZWN1dGFibGUoZXhlYywgc291cmNlKTsKKyAgICAgICAgICAg
IGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CiAgICAgICAg
ICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAgICAgICAgfQogCkBAIC00MTIsMTMgKzQxNywxNSBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgRnVuY3Rpb25FeGVjdXRhYmxlKiBj
cmVhdGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25zdCBTb3Vy
Y2VDb2RlJiBzb3VyY2UsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRl
cnMqIHBhcmFtZXRlcnMsIGJvb2wgaXNJblN0cmljdENvbnRleHQsIGludCBmaXJzdExpbmUsIGlu
dCBsYXN0TGluZSkKICAgICAgICAgewotICAgICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBl
eGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8RnVuY3Rpb25FeGVjdXRhYmxlPigqZXhlYy0+
aGVhcCgpKSkgRnVuY3Rpb25FeGVjdXRhYmxlKGV4ZWMsIG5hbWUsIHNvdXJjZSwgZm9yY2VVc2Vz
QXJndW1lbnRzLCBwYXJhbWV0ZXJzLCBpc0luU3RyaWN0Q29udGV4dCwgZmlyc3RMaW5lLCBsYXN0
TGluZSk7CisgICAgICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcg
KGFsbG9jYXRlQ2VsbDxGdW5jdGlvbkV4ZWN1dGFibGU+KCpleGVjLT5oZWFwKCkpKSBGdW5jdGlv
bkV4ZWN1dGFibGUoZXhlYywgbmFtZSwgc291cmNlLCBmb3JjZVVzZXNBcmd1bWVudHMsIHBhcmFt
ZXRlcnMsIGlzSW5TdHJpY3RDb250ZXh0KTsKKyAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlz
aENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFtZSwgZmlyc3RMaW5lLCBsYXN0TGluZSk7
CiAgICAgICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0
YXRpYyBGdW5jdGlvbkV4ZWN1dGFibGUqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBm
b3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyogcGFyYW1ldGVycywgYm9vbCBp
c0luU3RyaWN0Q29udGV4dCwgaW50IGZpcnN0TGluZSwgaW50IGxhc3RMaW5lKQogICAgICAgICB7
Ci0gICAgICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9j
YXRlQ2VsbDxGdW5jdGlvbkV4ZWN1dGFibGU+KGdsb2JhbERhdGEuaGVhcCkpIEZ1bmN0aW9uRXhl
Y3V0YWJsZShnbG9iYWxEYXRhLCBuYW1lLCBzb3VyY2UsIGZvcmNlVXNlc0FyZ3VtZW50cywgcGFy
YW1ldGVycywgaXNJblN0cmljdENvbnRleHQsIGZpcnN0TGluZSwgbGFzdExpbmUpOworICAgICAg
ICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8
RnVuY3Rpb25FeGVjdXRhYmxlPihnbG9iYWxEYXRhLmhlYXApKSBGdW5jdGlvbkV4ZWN1dGFibGUo
Z2xvYmFsRGF0YSwgbmFtZSwgc291cmNlLCBmb3JjZVVzZXNBcmd1bWVudHMsIHBhcmFtZXRlcnMs
IGlzSW5TdHJpY3RDb250ZXh0KTsKKyAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0
aW9uKGdsb2JhbERhdGEsIG5hbWUsIGZpcnN0TGluZSwgbGFzdExpbmUpOwogICAgICAgICAgICAg
cmV0dXJuIGV4ZWN1dGFibGU7CiAgICAgICAgIH0KIApAQCAtNTM5LDggKzU0Niw4IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBGdW5jdGlvbkV4
ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291
cmNlQ29kZSYsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqLCBi
b29sLCBpbnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpOwotICAgICAgICBGdW5jdGlvbkV4ZWN1
dGFibGUoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29k
ZSYsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqLCBib29sLCBp
bnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpOworICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUo
SlNHbG9iYWxEYXRhJiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29kZSYs
IGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqLCBib29sKTsKKyAg
ICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIG5h
bWUsIGNvbnN0IFNvdXJjZUNvZGUmLCBib29sIGZvcmNlVXNlc0FyZ3VtZW50cywgRnVuY3Rpb25Q
YXJhbWV0ZXJzKiwgYm9vbCk7CiAKICAgICAgICAgSlNPYmplY3QqIGNvbXBpbGVGb3JDYWxsSW50
ZXJuYWwoRXhlY1N0YXRlKiwgU2NvcGVDaGFpbk5vZGUqLCBFeGVjU3RhdGUqIGNhbGxlZUFyZ3NF
eGVjKTsKICAgICAgICAgSlNPYmplY3QqIGNvbXBpbGVGb3JDb25zdHJ1Y3RJbnRlcm5hbChFeGVj
U3RhdGUqLCBTY29wZUNoYWluTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmNwcAppbmRleCBiY2ExNzQ3MTMyZDRjOTczMTdkNTdj
ZDgwZTQ5MWQ0ODYyOGFjZTkwLi4wN2MwZjdmNWJmNjVhM2U3NTZiNTFjMjQwMzdjYWNjMzNjNDJl
NjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1
bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1
bmN0aW9uLmNwcApAQCAtNDQsNyArNDQsMTQgQEAgSW50ZXJuYWxGdW5jdGlvbjo6SW50ZXJuYWxG
dW5jdGlvbihWUHRyU3RlYWxpbmdIYWNrVHlwZSkKIEludGVybmFsRnVuY3Rpb246OkludGVybmFs
RnVuY3Rpb24oSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKICAg
ICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKIHsK
LSAgICBjb25zdHJ1Y3RvckJvZHkoKmdsb2JhbERhdGEsIG5hbWUpOworICAgIGZpbmlzaENyZWF0
aW9uKCpnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIG5hbWUpOworfQorCit2b2lkIEludGVybmFs
RnVuY3Rpb246OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKK3sKKyAgICBC
YXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QpOworICAgIEFTU0VS
VChpbmhlcml0cygmc19pbmZvKSk7CisgICAgcHV0RGlyZWN0KGdsb2JhbERhdGEsIGdsb2JhbERh
dGEucHJvcGVydHlOYW1lcy0+bmFtZSwganNTdHJpbmcoJmdsb2JhbERhdGEsIG5hbWUuaXNOdWxs
KCkgPyAiIiA6IG5hbWUudXN0cmluZygpKSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVu
dW0pOwogfQogCiBjb25zdCBVU3RyaW5nJiBJbnRlcm5hbEZ1bmN0aW9uOjpuYW1lKEV4ZWNTdGF0
ZSogZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVy
bmFsRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVu
Y3Rpb24uaAppbmRleCAxNDM2ZjMyZDZlN2E3ZGUyOGY1NGY5MTA5MDNiZDFmNzgxMDcwZTY1Li42
MDY3YmU4ZGJmZGRiMzdjYTQ2MDc5ODFhNzMwOGE1ODM4MDY4NWNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5oCkBAIC01NCwxMSArNTQs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBJbnRlcm5hbEZ1bmN0aW9uKEpTR2xvYmFs
RGF0YSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgY29uc3QgSWRlbnRpZmllciYpOwog
Ci0gICAgICAgIHZvaWQgY29uc3RydWN0b3JCb2R5KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSkKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGlu
aGVyaXRzKCZzX2luZm8pKTsKLSAgICAgICAgICAgIHB1dERpcmVjdChnbG9iYWxEYXRhLCBnbG9i
YWxEYXRhLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzU3RyaW5nKCZnbG9iYWxEYXRhLCBuYW1lLmlz
TnVsbCgpID8gIiIgOiBuYW1lLnVzdHJpbmcoKSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERv
bnRFbnVtKTsKLSAgICAgICAgfQorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
RGF0YSYsIEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSk7CiAKICAgICBw
cml2YXRlOgogICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJikg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0
aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAK
aW5kZXggNTAyODkwMmM5OTJkMTRhMTI1NGE3M2EwZGRjNjljOTlmN2ZhMGI2Mi4uNWM5OWQ3YTY1
NDM4ZDFjZTc5ZGM3Y2I1MDVhODU3N2EzZjY5N2JlYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCkBAIC00Niw2ICs0NiwxMiBAQCBKU0FjdGl2
YXRpb246OkpTQWN0aXZhdGlvbihDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRnVuY3Rpb25FeGVjdXRh
YmxlKiBmdW5jdGlvbkV4ZQogICAgICwgbV9yZXF1aXJlc0R5bmFtaWNDaGVja3MoZnVuY3Rpb25F
eGVjdXRhYmxlLT51c2VzRXZhbCgpKQogICAgICwgbV9hcmd1bWVudHNSZWdpc3RlcihmdW5jdGlv
bkV4ZWN1dGFibGUtPmdlbmVyYXRlZEJ5dGVjb2RlKCkuYXJndW1lbnRzUmVnaXN0ZXIoKSkKIHsK
KyAgICBmaW5pc2hDcmVhdGlvbihjYWxsRnJhbWUpOworfQorCit2b2lkIEpTQWN0aXZhdGlvbjo6
ZmluaXNoQ3JlYXRpb24oQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit7CisgICAgQmFzZTo6ZmluaXNo
Q3JlYXRpb24oY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkpOwogICAgIEFTU0VSVChpbmhlcml0cygm
c19pbmZvKSk7CiAKICAgICAvLyBXZSBoYXZlIHRvIG1hbnVhbGx5IHJlZiBhbmQgZGVyZWYgdGhl
IHN5bWJvbCB0YWJsZSBhcyBKU1ZhcmlhYmxlT2JqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCmluZGV4IGYxNTkxYWFhMTgwZWFlMTNmMzVmNTkyMDY0
ODQyMDliYjNmOGUwYWQuLmRhMmU0NjU1ZTA2OTRmN2M1OTNkM2FmMTcxZDYwMGZkMDcwNjYyNWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5oCkBAIC03
Nyw2ICs3Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKSB7
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oT2Jq
ZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyB9
CiAKICAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oQ2FsbEZyYW1l
Kik7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IElzRW52
aXJvbm1lbnRSZWNvcmQgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNW
aXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEpTVmFyaWFibGVPYmpl
Y3Q6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheS5jcHAKaW5kZXggMTg1ZDdhZWI2YmZjNDUyOTE2YmJmZWJiMTcxMDRk
YjA3Njc1ZDkzMi4uNGIwY2FhMjIxNjgyZjZjNjhhNjA1ZThhZjllNTQwNjY1OGMwMzJjYSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKQEAgLTEzNCwxOSArMTM0
LDYgQEAgSlNBcnJheTo6SlNBcnJheShWUHRyU3RlYWxpbmdIYWNrVHlwZSkKIEpTQXJyYXk6OkpT
QXJyYXkoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAg
ICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogewotICAgIGZpbmlz
aENyZWF0aW9uKGdsb2JhbERhdGEpOwotfQotCi1KU0FycmF5OjpKU0FycmF5KEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVuc2lnbmVkIGluaXRpYWxMZW5n
dGgsIEFycmF5Q3JlYXRpb25Nb2RlIGNyZWF0aW9uTW9kZSkKLSAgICA6IEpTTm9uRmluYWxPYmpl
Y3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQotewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERh
dGEsIGluaXRpYWxMZW5ndGgsIGNyZWF0aW9uTW9kZSk7Ci19Ci0KLUpTQXJyYXk6OkpTQXJyYXko
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgQXJn
TGlzdCYgbGlzdCkKLSAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJl
KQotewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGxpc3QpOwogfQogCiB2b2lkIEpT
QXJyYXk6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAppbmRleCBlOGUxZmE5MmQ1ZmQ0MDE5MzFlNzgy
MzVkMzI2NTQxMzlkNjZkZmU2Li5iYTJlMTdjZWFjOTk4ZjAzZDdjYWIwNTliMzk5ZDg0OWMxMzUy
OTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCkBAIC02Miw4ICs2
Miw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBleHBsaWNp
dCBKU0FycmF5KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSopOwotICAgICAgICBKU0FycmF5KEpT
R2xvYmFsRGF0YSYsIFN0cnVjdHVyZSosIHVuc2lnbmVkIGluaXRpYWxMZW5ndGgsIEFycmF5Q3Jl
YXRpb25Nb2RlKTsKLSAgICAgICAgSlNBcnJheShKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqLCBj
b25zdCBBcmdMaXN0JiBpbml0aWFsVmFsdWVzKTsKIAogICAgICAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEpTR2xvYmFsRGF0YSYpOwogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
RGF0YSYsIHVuc2lnbmVkIGluaXRpYWxMZW5ndGgsIEFycmF5Q3JlYXRpb25Nb2RlKTsKQEAgLTc3
LDE5ICs3NSwyNSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgSlNBcnJheSog
Y3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0FycmF5Pihn
bG9iYWxEYXRhLmhlYXApKSBKU0FycmF5KGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7CisgICAgICAg
ICAgICBKU0FycmF5KiBhcnJheSA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTQXJyYXk+KGdsb2JhbERh
dGEuaGVhcCkpIEpTQXJyYXkoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIGFy
cmF5LT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKKyAgICAgICAgICAgIHJldHVybiBhcnJh
eTsKICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICBzdGF0aWMgSlNBcnJheSogY3JlYXRl
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVuc2lnbmVk
IGluaXRpYWxMZW5ndGgsIEFycmF5Q3JlYXRpb25Nb2RlIGNyZWF0ZU1vZGUpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0FycmF5PihnbG9iYWxEYXRh
LmhlYXApKSBKU0FycmF5KGdsb2JhbERhdGEsIHN0cnVjdHVyZSwgaW5pdGlhbExlbmd0aCwgY3Jl
YXRlTW9kZSk7CisgICAgICAgICAgICBKU0FycmF5KiBhcnJheSA9IG5ldyAoYWxsb2NhdGVDZWxs
PEpTQXJyYXk+KGdsb2JhbERhdGEuaGVhcCkpIEpTQXJyYXkoZ2xvYmFsRGF0YSwgc3RydWN0dXJl
KTsKKyAgICAgICAgICAgIGFycmF5LT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBpbml0aWFs
TGVuZ3RoLCBjcmVhdGVNb2RlKTsKKyAgICAgICAgICAgIHJldHVybiBhcnJheTsKICAgICAgICAg
fQotICAgICAgICAKKwogICAgICAgICBzdGF0aWMgSlNBcnJheSogY3JlYXRlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IEFyZ0xpc3QmIGluaXRp
YWxWYWx1ZXMpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2Vs
bDxKU0FycmF5PihnbG9iYWxEYXRhLmhlYXApKSBKU0FycmF5KGdsb2JhbERhdGEsIHN0cnVjdHVy
ZSwgaW5pdGlhbFZhbHVlcyk7CisgICAgICAgICAgICBKU0FycmF5KiBhcnJheSA9IG5ldyAoYWxs
b2NhdGVDZWxsPEpTQXJyYXk+KGdsb2JhbERhdGEuaGVhcCkpIEpTQXJyYXkoZ2xvYmFsRGF0YSwg
c3RydWN0dXJlKTsKKyAgICAgICAgICAgIGFycmF5LT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRh
LCBpbml0aWFsVmFsdWVzKTsKKyAgICAgICAgICAgIHJldHVybiBhcnJheTsKICAgICAgICAgfQot
ICAgICAgICAKKwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWdu
ZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlEZXNjcmlwdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0J5dGVBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5
dGVBcnJheS5jcHAKaW5kZXggYmJlNzYzMmEyZTIxYTM5OTdkNDczNWVmNjZjZDFkM2Y3NjcxYTA3
OS4uNGVlNjU0YzBmMzI5MTMzZTE0OWFkOWNlZGY1MmNlOTJjZTFkNWExOSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcApAQCAtMzksMTQgKzM5LDgg
QEAgSlNCeXRlQXJyYXk6OkpTQnl0ZUFycmF5KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEJ5dGVBcnJheSogc3RvcmEKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZXhlYy0+
Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiAgICAgLCBtX3N0b3JhZ2Uoc3RvcmFnZSkKIHsKLSAg
ICBmaW5pc2hDcmVhdGlvbihleGVjKTsKIH0KICAgICAgICAgCi1KU0J5dGVBcnJheSogSlNCeXRl
QXJyYXk6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBCeXRl
QXJyYXkqIHN0b3JhZ2UpCi17Ci0gICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEpTQnl0ZUFy
cmF5PigqZXhlYy0+aGVhcCgpKSkgSlNCeXRlQXJyYXkoZXhlYywgc3RydWN0dXJlLCBzdG9yYWdl
KTsKLX0KLQogI2lmICFBU1NFUlRfRElTQUJMRUQKIEpTQnl0ZUFycmF5Ojp+SlNCeXRlQXJyYXko
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJy
YXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKaW5kZXgg
MjhlYmQ3ZDBmNThlY2I0NGFhMmIxNmU3MDQ2ZDQ4ZDkzMjRhZTExZC4uYjIxZDM3MTI1NDFmN2I5
NGVlM2E5M2Q0N2EzZWQyOWJlNjM2N2EzOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0J5dGVBcnJheS5oCkBAIC03OSw3ICs3OSwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgSlNCeXRlQXJyYXkoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgQnl0ZUFycmF5KiBzdG9y
YWdlKTsKICAgICAgICAgCiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgSlNCeXRlQXJyYXkq
IGNyZWF0ZShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCBCeXRlQXJyYXkqKTsKKyAgICAgICAgc3Rh
dGljIEpTQnl0ZUFycmF5KiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgQnl0ZUFycmF5KiBzdG9yYWdlKQorICAgICAgICB7CisgICAgICAgICAgICBKU0J5dGVB
cnJheSogYXJyYXkgPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0J5dGVBcnJheT4oKmV4ZWMtPmhlYXAo
KSkpIEpTQnl0ZUFycmF5KGV4ZWMsIHN0cnVjdHVyZSwgc3RvcmFnZSk7CisgICAgICAgICAgICBh
cnJheS0+ZmluaXNoQ3JlYXRpb24oZXhlYyk7CisgICAgICAgICAgICByZXR1cm4gYXJyYXk7Cisg
ICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNH
bG9iYWxEYXRhJiwgSlNWYWx1ZSBwcm90b3R5cGUsIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiA9ICZz
X2RlZmF1bHRJbmZvKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0
aW9uLmNwcAppbmRleCA0OTlhZWI2ZDI3NDhjMjk0MDg5MGJjMmJiYzdkZDhkYTg2NGViZWVkLi5k
YWY0Y2E5NTgyOTdmMzE4N2M3YTZjY2NjZjQzOTYwNTgwYzhlY2RkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtNjEsMjEgKzYxLDExIEBAIEpT
RnVuY3Rpb246OkpTRnVuY3Rpb24oVlB0clN0ZWFsaW5nSGFja1R5cGUpCiB7CiB9CiAKLUpTRnVu
Y3Rpb246OkpTRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmll
ciYgbmFtZSwgTmF0aXZlRXhlY3V0YWJsZSogdGh1bmspCitKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9u
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogICAgICwg
bV9leGVjdXRhYmxlKCkKICAgICAsIG1fc2NvcGVDaGFpbihleGVjLT5nbG9iYWxEYXRhKCksIHRo
aXMsIGdsb2JhbE9iamVjdC0+Z2xvYmFsU2NvcGVDaGFpbigpKQogewotICAgIGNvbnN0cnVjdG9y
Qm9keShleGVjLCBsZW5ndGgsIG5hbWUsIHRodW5rKTsKLX0KLQotSlNGdW5jdGlvbjo6SlNGdW5j
dGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBOYXRp
dmVGdW5jdGlvbiBmdW5jKQotICAgIDogQmFzZShnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKLSAg
ICAsIG1fZXhlY3V0YWJsZSgpCi0gICAgLCBtX3Njb3BlQ2hhaW4oZXhlYy0+Z2xvYmFsRGF0YSgp
LCB0aGlzLCBnbG9iYWxPYmplY3QtPmdsb2JhbFNjb3BlQ2hhaW4oKSkKLXsKLSAgICAvLyBDYW4n
dCBkbyB0aGlzIGR1cmluZyBpbml0aWFsaXphdGlvbiBiZWNhdXNlIGdldEhvc3RGdW5jdGlvbiBt
aWdodCBkbyBhIEdDIGFsbG9jYXRpb24uCi0gICAgY29uc3RydWN0b3JCb2R5KGV4ZWMsIGxlbmd0
aCwgbmFtZSwgIGV4ZWMtPmdsb2JhbERhdGEoKS5nZXRIb3N0RnVuY3Rpb24oZnVuYykpOwogfQog
CiBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgRnVuY3Rpb25FeGVjdXRh
YmxlKiBleGVjdXRhYmxlLCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbk5vZGUpCkBAIC04Mywx
OSArNzMsMjUgQEAgSlNGdW5jdGlvbjo6SlNGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEZ1bmN0
aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgU2NvcGVDaGEKICAgICAsIG1fZXhlY3V0YWJsZShl
eGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIGV4ZWN1dGFibGUpCiAgICAgLCBtX3Njb3BlQ2hhaW4o
ZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBzY29wZUNoYWluTm9kZSkKIHsKLSAgICBBU1NFUlQo
aW5oZXJpdHMoJnNfaW5mbykpOwotICAgIHNldFN0cnVjdHVyZShleGVjLT5nbG9iYWxEYXRhKCks
IHNjb3BlQ2hhaW5Ob2RlLT5nbG9iYWxPYmplY3QtPm5hbWVkRnVuY3Rpb25TdHJ1Y3R1cmUoKSk7
Ci0gICAgcHV0RGlyZWN0T2Zmc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgc2NvcGVDaGFpbk5vZGUt
Pmdsb2JhbE9iamVjdC0+ZnVuY3Rpb25OYW1lT2Zmc2V0KCksIGV4ZWN1dGFibGUtPm5hbWVWYWx1
ZSgpKTsKIH0KIAotaW5saW5lIHZvaWQgSlNGdW5jdGlvbjo6Y29uc3RydWN0b3JCb2R5KEV4ZWNT
dGF0ZSogZXhlYywgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgRXhlY3V0YWJs
ZUJhc2UqIGV4ZWN1dGFibGUpCit2b2lkIEpTRnVuY3Rpb246OmZpbmlzaENyZWF0aW9uKEV4ZWNT
dGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50IGxlbmd0aCwgY29u
c3QgSWRlbnRpZmllciYgbmFtZSwgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUpCiB7CisgICAg
QmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9i
amVjdCk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAgICBtX2V4ZWN1dGFibGUu
c2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgZXhlY3V0YWJsZSk7CiAgICAgcHV0RGlyZWN0
KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+Z2xvYmFsRGF0YSgpLnByb3BlcnR5TmFtZXMtPm5h
bWUsIGpzU3RyaW5nKGV4ZWMsIG5hbWUuaXNOdWxsKCkgPyAiIiA6IG5hbWUudXN0cmluZygpKSwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdChleGVjLT5n
bG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKGxlbmd0
aCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKIH0KIAordm9pZCBKU0Z1bmN0
aW9uOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgU2NvcGVDaGFpbk5vZGUq
IHNjb3BlQ2hhaW5Ob2RlKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVj
dC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOworICAgIEFTU0VSVChpbmhlcml0cygmc19p
bmZvKSk7CisgICAgc2V0U3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgc2NvcGVDaGFpbk5v
ZGUtPmdsb2JhbE9iamVjdC0+bmFtZWRGdW5jdGlvblN0cnVjdHVyZSgpKTsKKyAgICBwdXREaXJl
Y3RPZmZzZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzY29wZUNoYWluTm9kZS0+Z2xvYmFsT2JqZWN0
LT5mdW5jdGlvbk5hbWVPZmZzZXQoKSwgZXhlY3V0YWJsZS0+bmFtZVZhbHVlKCkpOworfQorCiBK
U0Z1bmN0aW9uOjp+SlNGdW5jdGlvbigpCiB7CiAgICAgQVNTRVJUKHZwdHIoKSA9PSBKU0dsb2Jh
bERhdGE6OmpzRnVuY3Rpb25WUHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uaAppbmRleCA4YjczYjBiZTJmMmEyOTk3ZDkwOTA2MDEyOTczMGQwZGY1MGEwZGQ3
Li41NTkzYjhhYWJiNzAwZThkOTUxODg5NTZlN2Y2YjJhMzcyZTBjZDI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCkBAIC00NiwyNCArNDYsMzMgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBERkc6OkpJVENvZGVHZW5lcmF0b3I7
CiAgICAgICAgIGZyaWVuZCBjbGFzcyBKU0dsb2JhbERhdGE7CiAKLSAgICAgICAgSlNGdW5jdGlv
bihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGludCBsZW5ndGgsIGNv
bnN0IElkZW50aWZpZXImLCBOYXRpdmVGdW5jdGlvbik7Ci0gICAgICAgIEpTRnVuY3Rpb24oRXhl
Y1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBpbnQgbGVuZ3RoLCBjb25zdCBJ
ZGVudGlmaWVyJiwgTmF0aXZlRXhlY3V0YWJsZSopOworICAgICAgICBKU0Z1bmN0aW9uKEV4ZWNT
dGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CiAgICAgICAgIEpTRnVuY3Rpb24o
RXhlY1N0YXRlKiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgU2NvcGVDaGFpbk5vZGUqKTsKICAgICAg
ICAgCiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dCBCYXNlOwogCi0gICAgICAgIHN0YXRpYyBKU0Z1bmN0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
aW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIE5hdGl2ZUZ1bmN0aW9uIG5hdGl2
ZUZ1bmMpCisgICAgICAgIHN0YXRpYyBKU0Z1bmN0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVj
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50
IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgTmF0aXZlRnVuY3Rpb24gbmF0aXZlRnVu
Y3Rpb24pCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxK
U0Z1bmN0aW9uPigqZXhlYy0+aGVhcCgpKSkgSlNGdW5jdGlvbihleGVjLCBnbG9iYWxPYmplY3Qs
IHN0cnVjdHVyZSwgbGVuZ3RoLCBpZGVudCwgbmF0aXZlRnVuYyk7CisgICAgICAgICAgICBFeGVj
dXRhYmxlQmFzZSogZXhlY3V0YWJsZSA9IChFeGVjdXRhYmxlQmFzZSopZXhlYy0+Z2xvYmFsRGF0
YSgpLmdldEhvc3RGdW5jdGlvbihuYXRpdmVGdW5jdGlvbik7CisgICAgICAgICAgICBKU0Z1bmN0
aW9uKiBmdW5jdGlvbiA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTRnVuY3Rpb24+KCpleGVjLT5oZWFw
KCkpKSBKU0Z1bmN0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKKyAgICAgICAg
ICAgIC8vIENhbid0IGRvIHRoaXMgZHVyaW5nIGluaXRpYWxpemF0aW9uIGJlY2F1c2UgZ2V0SG9z
dEZ1bmN0aW9uIG1pZ2h0IGRvIGEgR0MgYWxsb2NhdGlvbi4KKyAgICAgICAgICAgIGZ1bmN0aW9u
LT5maW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIGxlbmd0aCwgbmFtZSwgZXhlY3V0
YWJsZSk7CisgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb247CiAgICAgICAgIH0KLSAgICAgICAg
c3RhdGljIEpTRnVuY3Rpb24qIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBpbnQgbGVuZ3RoLCBjb25zdCBJ
ZGVudGlmaWVyJiBpZGVudCwgTmF0aXZlRXhlY3V0YWJsZSogbmF0aXZlRXhlYykKKworICAgICAg
ICBzdGF0aWMgSlNGdW5jdGlvbiogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludCBsZW5ndGgsIGNvbnN0
IElkZW50aWZpZXImIG5hbWUsIE5hdGl2ZUV4ZWN1dGFibGUqIG5hdGl2ZUV4ZWN1dGFibGUpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0Z1bmN0aW9u
PigqZXhlYy0+aGVhcCgpKSkgSlNGdW5jdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVy
ZSwgbGVuZ3RoLCBpZGVudCwgbmF0aXZlRXhlYyk7CisgICAgICAgICAgICBKU0Z1bmN0aW9uKiBm
dW5jdGlvbiA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTRnVuY3Rpb24+KCpleGVjLT5oZWFwKCkpKSBK
U0Z1bmN0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIGZ1
bmN0aW9uLT5maW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIGxlbmd0aCwgbmFtZSwg
KEV4ZWN1dGFibGVCYXNlKiluYXRpdmVFeGVjdXRhYmxlKTsKKyAgICAgICAgICAgIHJldHVybiBm
dW5jdGlvbjsKICAgICAgICAgfQotICAgICAgICBzdGF0aWMgSlNGdW5jdGlvbiogY3JlYXRlKEV4
ZWNTdGF0ZSogZXhlYywgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jRXhlYywgU2NvcGVDaGFpbk5v
ZGUqIHNjb3BlQ2hhaW4pCisKKyAgICAgICAgc3RhdGljIEpTRnVuY3Rpb24qIGNyZWF0ZShFeGVj
U3RhdGUqIGV4ZWMsIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgU2NvcGVDaGFpbk5v
ZGUqIHNjb3BlQ2hhaW4pCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9j
YXRlQ2VsbDxKU0Z1bmN0aW9uPigqZXhlYy0+aGVhcCgpKSkgSlNGdW5jdGlvbihleGVjLCBmdW5j
RXhlYywgc2NvcGVDaGFpbik7CisgICAgICAgICAgICBKU0Z1bmN0aW9uKiBmdW5jdGlvbiA9IG5l
dyAoYWxsb2NhdGVDZWxsPEpTRnVuY3Rpb24+KCpleGVjLT5oZWFwKCkpKSBKU0Z1bmN0aW9uKGV4
ZWMsIGV4ZWN1dGFibGUsIHNjb3BlQ2hhaW4pOworICAgICAgICAgICAgZnVuY3Rpb24tPmZpbmlz
aENyZWF0aW9uKGV4ZWMsIHNjb3BlQ2hhaW4tPmdsb2JhbE9iamVjdC5nZXQoKSwgZXhlY3V0YWJs
ZSwgc2NvcGVDaGFpbik7CisgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb247CiAgICAgICAgIH0K
ICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgfkpTRnVuY3Rpb24oKTsKQEAgLTEyMyw3ICsxMzIs
OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIGNvbnN0IHN0YXRp
YyB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlk
ZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCi0gICAgICAg
IHZvaWQgY29uc3RydWN0b3JCb2R5KEV4ZWNTdGF0ZSosIGludCBsZW5ndGgsIGNvbnN0IElkZW50
aWZpZXImIG5hbWUsIEV4ZWN1dGFibGVCYXNlKik7CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlm
aWVyJiBuYW1lLCBFeGVjdXRhYmxlQmFzZSopOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9u
KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgU2NvcGVD
aGFpbk5vZGUqKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGV4cGxpY2l0IEpTRnVuY3Rpb24o
VlB0clN0ZWFsaW5nSGFja1R5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggYzIzMGQ3MDJiNTNmZDE3ZTVlNWRiZTIxNDI5YjAxOGY5
MTEwMmQxYy4uODVjNDI5NjYzMWFlM2U2M2Q5MzgwMzVlYTcwODAwNGJmY2VlMDczMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xNTks
NyArMTU5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAsIG1fd2Vha1JhbmRvbShz
dGF0aWNfY2FzdDx1bnNpZ25lZD4ocmFuZG9tTnVtYmVyKCkgKiAoc3RkOjpudW1lcmljX2xpbWl0
czx1bnNpZ25lZD46Om1heCgpICsgMS4wKSkpCiAgICAgICAgICAgICAsIG1fZXZhbEVuYWJsZWQo
dHJ1ZSkKICAgICAgICAgewotICAgICAgICAgICAgY29uc3RydWN0b3JCb2R5KHRoaXMpOworICAg
ICAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgdGhpcyk7CiAgICAgICAgIH0KIAog
ICAgICAgICBKU0dsb2JhbE9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBKU09iamVjdCogdGhpc1ZhbHVlKQpAQCAtMTY5LDExICsxNjksMTIgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAsIG1fd2Vha1JhbmRvbShzdGF0aWNfY2FzdDx1
bnNpZ25lZD4ocmFuZG9tTnVtYmVyKCkgKiAoc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46
Om1heCgpICsgMS4wKSkpCiAgICAgICAgICAgICAsIG1fZXZhbEVuYWJsZWQodHJ1ZSkKICAgICAg
ICAgewotICAgICAgICAgICAgY29uc3RydWN0b3JCb2R5KHRoaXNWYWx1ZSk7CisgICAgICAgICAg
ICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCB0aGlzVmFsdWUpOwogICAgICAgICB9CiAKLSAg
ICAgICAgdm9pZCBjb25zdHJ1Y3RvckJvZHkoSlNPYmplY3QqIHRoaXNWYWx1ZSkKKyAgICAgICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTT2JqZWN0KiB0
aGlzVmFsdWUpCiAgICAgICAgIHsKKyAgICAgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGds
b2JhbERhdGEpOwogICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoSlNHbG9iYWxPYmplY3Q6OkFu
b255bW91c1Nsb3RDb3VudCA9PSAxLCBKU0dsb2JhbE9iamVjdF9oYXNfb25seV9hX3NpbmdsZV9z
bG90KTsKICAgICAgICAgICAgIHB1dFRoaXNUb0Fub255bW91c1ZhbHVlKDApOwogICAgICAgICAg
ICAgaW5pdCh0aGlzVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNOb3RBbk9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNO
b3RBbk9iamVjdC5oCmluZGV4IDY3ZmRhMDUwYTYyODhkNzBhOTQyOThjZTAyYTcyNmQ4MjhlMjMy
MWQuLjEzMWJhYTdhZjMyMTI3M2M3ZGJlMDIwMTZjM2Y3ZjQwM2M1OTM0ZDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKQEAgLTQxLDcgKzQxLDYg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTTm90QW5PYmplY3QoRXhlY1N0YXRlKiBleGVj
KQogICAgICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhl
Yy0+Z2xvYmFsRGF0YSgpLm5vdEFuT2JqZWN0U3RydWN0dXJlLmdldCgpKQogICAgICAgICB7Ci0g
ICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOwogICAgICAgICB9
CiAgICAgICAgIAogICAgIHB1YmxpYzoKQEAgLTQ5LDcgKzQ4LDkgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKICAgICAgICAgc3RhdGljIEpTTm90QW5PYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU05vdEFu
T2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgSlNOb3RBbk9iamVjdChleGVjKTsKKyAgICAgICAgICAg
IEpTTm90QW5PYmplY3QqIG9iamVjdCA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTTm90QW5PYmplY3Q+
KCpleGVjLT5oZWFwKCkpKSBKU05vdEFuT2JqZWN0KGV4ZWMpOworICAgICAgICAgICAgb2JqZWN0
LT5maW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOworICAgICAgICAgICAgcmV0dXJu
IG9iamVjdDsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRleCAwNWJkZTI4
MTlhMDZmOTE0OTQ4MjA5YmU0M2QzMzY4YzkwNGUwZjI4Li4xNzMxNTJiMjkxOTNkZjIwMjQ1ODEy
Mzc2NzY4ZmJkODlkZTczNjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09OT2JqZWN0LmNwcApAQCAtNTYsNiArNTYsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiBKU09OT2Jq
ZWN0OjpKU09OT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSog
c3RydWN0dXJlKQogICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwg
c3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7Cit9CisKK3Zv
aWQgSlNPTk9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEo
KSwgZ2xvYmFsT2JqZWN0KTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKaW5kZXggNzdiZjQzNjk5
MTFiNmVjNDBiMzBhY2Q4MzQyNzNlZGMzOTkzNWVhYS4uNDgwZTc0YmRiODM0OTM2YmQyOWY3MmU2
YWNkZTI0NjE3ZGU2YTVmMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPTk9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05P
YmplY3QuaApAQCAtNDksNiArNDksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGlj
IGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKICAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNP
YmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuY3Bw
CmluZGV4IDg4NTUzMGYxMGY3OTkwMWRmZjY0ODQzYTc0MzQzMDQ4OGY1ZjdhNGYuLjg3YjMyMTlj
NjM0YmZhNWViMDI3YTYzNDNmNjUxMTE3NDE3YjYxMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcApA
QCAtMzMsMTMgKzMzLDExIEBAIG5hbWVzcGFjZSBKU0MgewogSlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0OjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbE9i
amVjdC0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xv
YmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CiB9CiAKLUpTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdDo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCitKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNO
b25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiB7Ci0gICAgZmluaXNoQ3JlYXRp
b24oZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0KTsKIH0KIAogdm9pZCBKU09iamVjdFdpdGhHbG9i
YWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgKaW5kZXggMTMwZTA3ZDY5MDUy
ZmQyMWZiMmE3MjZmMTIyODE3YzhhNzZmYmM4OC4uMzc5ODQ4YjY1NDM2NDU0OTFiNzJhNDVhYTFj
YTU3YzU0MWIyZTI2NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGlj
OgogCiBwcm90ZWN0ZWQ6CiAgICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlKik7Ci0gICAgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFs
RGF0YSYsIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CisgICAgSlNPYmplY3RXaXRoR2xv
YmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSopOwogCiAgICAgSlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0KFZQdHJTdGVhbGluZ0hhY2tUeXBlKQogICAgICAgICA6IEpTTm9uRmluYWxP
YmplY3QoVlB0clN0ZWFsaW5nSGFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaAppbmRleCBiMTE5M2ZkYmRlZmVmYWUyMWZmNWY0
Y2M0MzFkMzQyNDljZTZhOGFjLi4yOWE0Y2FlOTE0N2E1NzczMmI4YmZhODExODI3ODQ5MTM5M2Jl
MWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Nj
b3BlT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNT
Y29wZU9iamVjdC5oCkBAIC0zNCw5ICszNCw5IEBAIG5hbWVzcGFjZSBKU0N7CiAgICAgcHVibGlj
OgogICAgICAgICB0eXBlZGVmIEpTVmFyaWFibGVPYmplY3QgQmFzZTsKIAotICAgICAgICBzdGF0
aWMgSlNTdGF0aWNTY29wZU9iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgaWRlbnQsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCisgICAg
ICAgIHN0YXRpYyBKU1N0YXRpY1Njb3BlT2JqZWN0KiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRy
aWJ1dGVzKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8
SlNTdGF0aWNTY29wZU9iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIEpTU3RhdGljU2NvcGVPYmplY3Qo
ZXhlYywgaWRlbnQsIHZhbHVlLCBhdHRyaWJ1dGVzKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcg
KGFsbG9jYXRlQ2VsbDxKU1N0YXRpY1Njb3BlT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgSlNTdGF0
aWNTY29wZU9iamVjdChleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSwgYXR0cmlidXRlcyk7CiAgICAg
ICAgIH0KIAogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYp
OwpAQCAtNTAsMTQgKzUwLDE5IEBAIG5hbWVzcGFjZSBKU0N7CiAgICAgICAgIHN0YXRpYyBTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUg
cHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBl
SW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNf
aW5mbyk7IH0KIAogICAgIHByb3RlY3RlZDoKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIEpTVmFsdWUgdmFs
dWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCisgICAgICAgIHsKKyAgICAgICAgICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CisgICAgICAgICAgICBtX3JlZ2lzdGVy
U3RvcmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgdmFsdWUpOworICAgICAgICAgICAg
c3ltYm9sVGFibGUoKS5hZGQoaWRlbnRpZmllci5pbXBsKCksIFN5bWJvbFRhYmxlRW50cnkoLTEs
IGF0dHJpYnV0ZXMpKTsKKyAgICAgICAgfQogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBJc0Vudmlyb25tZW50UmVjb3JkIHwgT3ZlcnJpZGVzR2V0T3duUHJv
cGVydHlTbG90IHwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5
TmFtZXMgfCBKU1ZhcmlhYmxlT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHByaXZhdGU6
Ci0gICAgICAgIEpTU3RhdGljU2NvcGVPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBpZGVudCwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcykKKyAgICAg
ICAgSlNTdGF0aWNTY29wZU9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IGlkZW50aWZpZXIsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCiAgICAgICAg
ICAgICA6IEpTVmFyaWFibGVPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5nbG9iYWxE
YXRhKCkuc3RhdGljU2NvcGVTdHJ1Y3R1cmUuZ2V0KCksICZtX3N5bWJvbFRhYmxlLCByZWludGVy
cHJldF9jYXN0PFJlZ2lzdGVyKj4oJm1fcmVnaXN0ZXJTdG9yZSArIDEpKQogICAgICAgICB7Ci0g
ICAgICAgICAgICBtX3JlZ2lzdGVyU3RvcmUuc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywg
dmFsdWUpOwotICAgICAgICAgICAgc3ltYm9sVGFibGUoKS5hZGQoaWRlbnQuaW1wbCgpLCBTeW1i
b2xUYWJsZUVudHJ5KC0xLCBhdHRyaWJ1dGVzKSk7CisgICAgICAgICAgICBmaW5pc2hDcmVhdGlv
bihleGVjLCBpZGVudGlmaWVyLCB2YWx1ZSwgYXR0cmlidXRlcyk7CiAgICAgICAgIH0KICAgICAg
ICAgCiAgICAgICAgIFN5bWJvbFRhYmxlIG1fc3ltYm9sVGFibGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmgKaW5kZXggZjcxZWQzMDk5NDli
MzEyMzRhZGFmYzg4ZThhNjRhNTg2OTUyOTIwMC4uM2YxMTg0YjlkZDg4NDY2MzMwNDExODlhZmM1
YjdjZTEwMTFkOGJmNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNWYXJpYWJsZU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
VmFyaWFibGVPYmplY3QuaApAQCAtNzQsNyArNzQsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgICAgICwgbV9zeW1ib2xUYWJsZShzeW1ib2xUYWJsZSkKICAgICAgICAgICAgICwgbV9yZWdp
c3RlcnMocmVpbnRlcnByZXRfY2FzdDxXcml0ZUJhcnJpZXI8VW5rbm93bj4qPihyZWdpc3RlcnMp
KQogICAgICAgICB7Ci0gICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAg
ICAgICAgfQogCiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFw
cGVyT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmpl
Y3QuaAppbmRleCAzYjQzODMxMjQzOGRiYzczZTA4NjA3YWUzYjZmMGZmNDllMWFlZGJhLi4zZTU4
OWYyNzE0M2UyNGQ3MDlkYjE2MGVmOGVhMTViN2U2MDY2ZThjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaApAQCAtNTMsNyArNTMsNiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICBpbmxpbmUgSlNXcmFwcGVyT2JqZWN0OjpKU1dyYXBwZXJPYmpl
Y3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICAg
ICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKICAgICB7Ci0gICAg
ICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIH0KIAogICAgIGlubGluZSBKU1Zh
bHVlIEpTV3JhcHBlck9iamVjdDo6aW50ZXJuYWxWYWx1ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCmluZGV4IGU0YzRiNWJlYzhkZDFmOWI4
NGU0ZWY3YjE2YTkyZjU5MGI1NzcyMTkuLjVlYzU2YTM2ZTczNzU1OWEzMGRmYjEyMDhhMGMxM2Nl
YmE5ODdiNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3Qu
Y3BwCkBAIC04Nyw2ICs4NywxMiBAQCBjb25zdCBDbGFzc0luZm8gTWF0aE9iamVjdDo6c19pbmZv
ID0geyAiTWF0aCIsICZKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OnNfaW5mbwogTWF0aE9iamVj
dDo6TWF0aE9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0
KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMsIGds
b2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgTWF0aE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0
YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwog
ICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAKICAgICBwdXREaXJlY3RXaXRob3V0VHJh
bnNpdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIElkZW50aWZpZXIoZXhlYywgIkUiKSwganNOdW1i
ZXIoZXhwKDEuMCkpLCBEb250RGVsZXRlIHwgRG9udEVudW0gfCBSZWFkT25seSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKaW5kZXggOWNmYThkMDI3ZGUzY2Y4
NmQyZDMyNjA3MDdmZTk3YWRlMjZhNTFmNC4uN2ZiZWQ5MGJmYmQyY2IxMTVhZDg1MjRmZTQzZWQ3
YTRmNjBhZTI4YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0
aE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3Qu
aApAQCAtNDcsNiArNDcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAgcHJv
dGVjdGVkOgorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFs
T2JqZWN0Kik7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsK
ICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1i
ZXJPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0
LmNwcAppbmRleCAxMzk0NWM3NTBlMjViNTY1NWUxNWFmYjZmNzA2YTE2ZDE3NDQ0NWMwLi4yMjY3
NmQwZmZhOGNjNzQ2YWQxNmQ2ZTQyOGYzYmM4Y2Q3MGQ3NjJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5jcHAKQEAgLTM0LDYgKzM0LDEyIEBAIGNv
bnN0IENsYXNzSW5mbyBOdW1iZXJPYmplY3Q6OnNfaW5mbyA9IHsgIk51bWJlciIsICZKU1dyYXBw
ZXJPYmplY3Q6OnNfaW5mbywgMCwKIE51bWJlck9iamVjdDo6TnVtYmVyT2JqZWN0KEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU1dyYXBwZXJP
YmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2Jh
bERhdGEpOworfQorCit2b2lkIE51bWJlck9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEp
OwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmgKaW5kZXggN2FjODFkNjM4YTUxMWVmODY1YzIw
Zjg1MzEzMGI5MGI2MWNhYWUwYi4uOTAxZjVlYjRiMGYzYjU0MTdmZGM5OWQyMjVlZWEyZjcxMzQ1
MjFmYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2Jq
ZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmgK
QEAgLTI4LDYgKzI4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgTnVtYmVyT2JqZWN0
IDogcHVibGljIEpTV3JhcHBlck9iamVjdCB7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBOdW1i
ZXJPYmplY3QoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKik7CisgICAgICAgIHZvaWQgZmluaXNo
Q3JlYXRpb24oSlNHbG9iYWxEYXRhJik7CiAKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYg
SlNXcmFwcGVyT2JqZWN0IEJhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0UHJvdG90eXBlLmNwcAppbmRleCAwODdjZDI2MGNmNTVkM2YxNWIzMzY1MjUzNmE1
NmJiNzc0MDE3OTlkLi41MDg5YTVmZmRiZjc3M2QwZmY3ZTg2OTkyMTM1ZDU1NWFhMjk1NzY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5j
cHAKQEAgLTYzLDExICs2MywxMCBAQCBjb25zdCBDbGFzc0luZm8gT2JqZWN0UHJvdG90eXBlOjpz
X2luZm8gPSB7ICJPYmplY3QiLCAmSlNOb25GaW5hbE9iamVjdDo6c19pbmZvLAogCiBBU1NFUlRf
Q0xBU1NfRklUU19JTl9DRUxMKE9iamVjdFByb3RvdHlwZSk7CiAKLU9iamVjdFByb3RvdHlwZTo6
T2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlKiBzdHVjdHVyZSkKK09iamVjdFByb3RvdHlwZTo6T2JqZWN0UHJvdG90
eXBlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHVjdHVyZSkKICAgICA6IEpTTm9uRmlu
YWxPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHVjdHVyZSkKICAgICAsIG1faGFzTm9Qcm9w
ZXJ0aWVzV2l0aFVJbnQzMk5hbWVzKHRydWUpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+
Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogfQogCiB2b2lkIE9iamVjdFByb3RvdHlwZTo6
ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T2JqZWN0UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQ
cm90b3R5cGUuaAppbmRleCAwYTJjOGZkNDhlZTdkNDlkZWFiZjkxYmVlMDU4NjBiMmZlOTNkYTMx
Li41ODRhYzMwZGZjYTI0NzYwODcwMGRjMDZlN2ZhYWRkNDExZGZmODA1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaApAQCAtMzEsNyArMzEs
OSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgT2JqZWN0UHJvdG90eXBlKiBj
cmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxs
b2NhdGVDZWxsPE9iamVjdFByb3RvdHlwZT4oKmV4ZWMtPmhlYXAoKSkpIE9iamVjdFByb3RvdHlw
ZShleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7CisgICAgICAgICAgICBPYmplY3RQcm90
b3R5cGUqIHByb3RvdHlwZSA9IG5ldyAoYWxsb2NhdGVDZWxsPE9iamVjdFByb3RvdHlwZT4oKmV4
ZWMtPmhlYXAoKSkpIE9iamVjdFByb3RvdHlwZShleGVjLCBzdHJ1Y3R1cmUpOworICAgICAgICAg
ICAgcHJvdG90eXBlLT5maW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIGdsb2JhbE9i
amVjdCk7CisgICAgICAgICAgICByZXR1cm4gcHJvdG90eXBlOwogICAgICAgICB9CiAKICAgICAg
ICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CkBAIC00OCw3ICs1MCw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIEpT
R2xvYmFsT2JqZWN0Kik7CiAKICAgICBwcml2YXRlOgotICAgICAgICBPYmplY3RQcm90b3R5cGUo
RXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKKyAgICAgICAgT2JqZWN0
UHJvdG90eXBlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSopOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
cHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Jl
Z0V4cENvbnN0cnVjdG9yLmNwcAppbmRleCA0Nzc5YjI1NmUwNGY1ZGMzYzI1YTZiNmMxNDk0MGMz
NjM2ODRlNGQzLi5jOGExMzNiNDI1Njg3MzE1ZmY2ZTgyMWMwYmEyN2E1N2ExNWEzM2VhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3Iu
Y3BwCkBAIC0xMDksOCArMTA5LDE0IEBAIFJlZ0V4cENvbnN0cnVjdG9yOjpSZWdFeHBDb25zdHJ1
Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiB9CiAKIFJl
Z0V4cE1hdGNoZXNBcnJheTo6UmVnRXhwTWF0Y2hlc0FycmF5KEV4ZWNTdGF0ZSogZXhlYywgUmVn
RXhwQ29uc3RydWN0b3JQcml2YXRlKiBkYXRhKQotICAgIDogSlNBcnJheShleGVjLT5nbG9iYWxE
YXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cmVnRXhwTWF0Y2hlc0FycmF5U3Ry
dWN0dXJlKCksIGRhdGEtPmxhc3ROdW1TdWJQYXR0ZXJucyArIDEsIENyZWF0ZUluaXRpYWxpemVk
KQorICAgIDogSlNBcnJheShleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKS0+cmVnRXhwTWF0Y2hlc0FycmF5U3RydWN0dXJlKCkpCiB7CisgICAgZmluaXNoQ3Jl
YXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBkYXRhKTsKK30KKwordm9pZCBSZWdFeHBNYXRjaGVz
QXJyYXk6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUmVnRXhwQ29u
c3RydWN0b3JQcml2YXRlKiBkYXRhKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2Jh
bERhdGEsIGRhdGEtPmxhc3ROdW1TdWJQYXR0ZXJucyArIDEsIENyZWF0ZUluaXRpYWxpemVkKTsK
ICAgICBSZWdFeHBDb25zdHJ1Y3RvclByaXZhdGUqIGQgPSBuZXcgUmVnRXhwQ29uc3RydWN0b3JQ
cml2YXRlOwogICAgIGQtPmlucHV0ID0gZGF0YS0+bGFzdElucHV0OwogICAgIGQtPmxhc3RJbnB1
dCA9IGRhdGEtPmxhc3RJbnB1dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKaW5kZXggZWQyMWJjODllNWUyN2QzNjFlNjUzMzllNGQ0
M2Q2YTE2ZWFhNGRmMi4uODdkNTljNzE0ZWI1NGRmMjgxNzNkZmVkZWJkZWQ1NDZmNjUxYzNhYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0Fy
cmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0Fy
cmF5LmgKQEAgLTM3LDYgKzM3LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KICAgICAg
ICAgdmlydHVhbCB+UmVnRXhwTWF0Y2hlc0FycmF5KCk7CiAKKyAgICBwcm90ZWN0ZWQ6CisgICAg
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiwgUmVnRXhwQ29uc3RydWN0b3JQ
cml2YXRlKiBkYXRhKTsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKaW5kZXggMmMxMjY1NTkyZTg2ODUzNDQ5
MjhlYzRkZTExZGZmMTkwMDQxNDI5Ny4uODQxZDkzOTQxMTdhYjA5MTE3MzhkMGM0ODVlM2ZlNTBi
NWExZGQxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmpl
Y3QuY3BwCkBAIC02Niw2ICs2NiwxMiBAQCBSZWdFeHBPYmplY3Q6OlJlZ0V4cE9iamVjdChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUgogICAgIDog
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogICAgICwg
ZChhZG9wdFB0cihuZXcgUmVnRXhwT2JqZWN0RGF0YShnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEo
KSwgdGhpcywgcmVnRXhwKSkpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0KTsK
K30KKwordm9pZCBSZWdFeHBPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5n
bG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8p
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
T2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaApp
bmRleCA3M2YyMTU0OTI2NzAwNzliNTkzOTJhMjhlNWM2MTNmM2NkZjBiZTEzLi5iY2U0NTVhZjgx
MmY5MWJhYmIyMjYwNzBhZDIwZTllMDQ2ZjI0MTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBPYmplY3QuaApAQCAtNzQsNiArNzQsNyBAQCBuYW1lc3BhY2UgSlND
IHsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgUmVnRXhwT2JqZWN0KEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlKiwgUmVnRXhwKik7CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNH
bG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dCB8IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZh
bEFjdGl2YXRpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZh
bEFjdGl2YXRpb24uY3BwCmluZGV4IDk2ZDk0ZDg0ZWFiYjUyNjA1OTY5N2ZlMzM2ZGFhYjc4MjEz
NTRiNTQuLmU2NjZkZWUxNTc5MmI3ZmJlODk3ZTYwZDJjNTAzZDYyM2I3NmZkODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlv
bi5jcHAKQEAgLTMxLDcgKzMxLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiBTdHJpY3RFdmFsQWN0aXZh
dGlvbjo6U3RyaWN0RXZhbEFjdGl2YXRpb24oRXhlY1N0YXRlKiBleGVjKQogICAgIDogSlNOb25G
aW5hbE9iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmdsb2JhbERhdGEoKS5zdHJpY3RF
dmFsQWN0aXZhdGlvblN0cnVjdHVyZS5nZXQoKSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihleGVj
LT5nbG9iYWxEYXRhKCkpOwogfQogCiBib29sIFN0cmljdEV2YWxBY3RpdmF0aW9uOjpkZWxldGVQ
cm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5oCmluZGV4IDc2OTgx
ZmRiNDI4OTEzYzY3MDY0MWY4MGI3YmRiMTFiNWYxYWY4MTQuLjhhYTIyMzRjODdjNTE1OWJlNTlk
NjIwYzJhZDgxYTQwZTM5NjhmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uaApAQCAtMzYsNyArMzYsOSBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgU3RyaWN0RXZhbEFjdGl2YXRpb24qIGNyZWF0ZShFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8U3RyaWN0RXZhbEFj
dGl2YXRpb24+KCpleGVjLT5oZWFwKCkpKSBTdHJpY3RFdmFsQWN0aXZhdGlvbihleGVjKTsKKyAg
ICAgICAgU3RyaWN0RXZhbEFjdGl2YXRpb24qIGFjdGl2YXRpb24gPSBuZXcgKGFsbG9jYXRlQ2Vs
bDxTdHJpY3RFdmFsQWN0aXZhdGlvbj4oKmV4ZWMtPmhlYXAoKSkpIFN0cmljdEV2YWxBY3RpdmF0
aW9uKGV4ZWMpOworICAgICAgICBhY3RpdmF0aW9uLT5maW5pc2hDcmVhdGlvbihleGVjLT5nbG9i
YWxEYXRhKCkpOworICAgICAgICByZXR1cm4gYWN0aXZhdGlvbjsKICAgICB9CiAKICAgICB2aXJ0
dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKaW5kZXgg
MWQwYzdhYmY5OGQwODdjMGI1MTdiNTIwMjQ2ZTJhOGVmZWIzMDc2Ni4uYjhmYWQ5ZTQ5NzM3N2Fj
YTc0NTcwMTNjZGEzNzAzYjhmMjcwNTkzMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdPYmplY3QuY3BwCkBAIC0zMiw2ICszMiwxMiBAQCBjb25zdCBDbGFzc0lu
Zm8gU3RyaW5nT2JqZWN0OjpzX2luZm8gPSB7ICJTdHJpbmciLCAmSlNXcmFwcGVyT2JqZWN0Ojpz
X2luZm8sIDAsCiBTdHJpbmdPYmplY3Q6OlN0cmluZ09iamVjdChKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1N0cmluZyogc3RyaW5nKQogICAgIDogSlNX
cmFwcGVyT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlv
bihnbG9iYWxEYXRhLCBzdHJpbmcpOworfQorCit2b2lkIFN0cmluZ09iamVjdDo6ZmluaXNoQ3Jl
YXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1N0cmluZyogc3RyaW5nKQoreworICAg
IEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIEFTU0VSVChpbmhlcml0cygm
c19pbmZvKSk7CiAgICAgc2V0SW50ZXJuYWxWYWx1ZShnbG9iYWxEYXRhLCBzdHJpbmcpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAppbmRleCA3ZDEz
NWMxZTQxMjJmYWU3ZmFmZjE4ZGIyZTFiYTM3ZDc1Y2Q0NTVmLi4wYjBjMjAwNjQ4YmViZjhhZTY0
YjVjNzc5ZDFhNzU2M2MxOTY1YmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdPYmplY3QuaApAQCAtNjAsNiArNjAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgfQogCiAgICAgcHJvdGVjdGVkOgorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xv
YmFsRGF0YSYsIEpTU3RyaW5nKik7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFBy
b3BlcnR5TmFtZXMgfCBKU1dyYXBwZXJPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogICAgICAgICBT
dHJpbmdPYmplY3QoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiwgSlNTdHJpbmcqKTsKICAgICB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKaW5kZXggMTBhNjg2ZGNjNjk4MTBmNmM0ZjVmN2RhMTc3
ZTVhZjAwZTRhYmQ3YS4uNzY5ZTQ0MDg5Y2JmMDhiN2IxMDY1YTA5MTk3ZmNlYWRjODVlN2FmZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDgtMzAgIE1h
cmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBVbnppcCBp
bml0aWFsaXphdGlvbiBsaXN0cyBhbmQgY29uc3RydWN0b3JzIGluIEpTQ2VsbCBoaWVyYXJjaHkg
KDQvNykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3
MTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29t
cGxldGVkIHRoZSBmb3VydGggbGV2ZWwgb2YgdGhlIHJlZmFjdG9yaW5nIHRvIGFkZCBmaW5pc2hD
cmVhdGlvbigpIAorICAgICAgICBtZXRob2RzIHRvIGFsbCBjbGFzc2VzIHdpdGhpbiB0aGUgSlND
ZWxsIGhpZXJhcmNoeSB3aXRoIG5vbi10cml2aWFsIAorICAgICAgICBjb25zdHJ1Y3RvciBib2Rp
ZXMuCisKKyAgICAgICAgVGhpcyBwcmltYXJpbHkgY29uc2lzdHMgb2YgcHVzaGluZyB0aGUgY2Fs
bHMgdG8gZmluaXNoQ3JlYXRpb24oKSBkb3duIAorICAgICAgICBpbnRvIHRoZSBjb25zdHJ1Y3Rv
cnMgb2YgdGhlIHN1YmNsYXNzZXMgb2YgdGhlIHNlY29uZCBsZXZlbCBvZiB0aGUgaGllcmFyY2h5
IAorICAgICAgICBhcyB3ZWxsIGFzIHB1bGxpbmcgdGhlIGZpbmlzaENyZWF0aW9uKCkgY2FsbHMg
b3V0IGludG8gdGhlIGNsYXNzJ3MgY29ycmVzcG9uZGluZworICAgICAgICBjcmVhdGUoKSBtZXRo
b2QgaWYgaXQgaGFzIG9uZS4gIERvaW5nIGJvdGggc2ltdWx0YW5lb3VzbHkgYWxsb3dzIHVzIHRv
IAorICAgICAgICBtYWludGFpbiB0aGUgaW52YXJpYW50IHRoYXQgdGhlIGZpbmlzaENyZWF0aW9u
KCkgbWV0aG9kIGNoYWluIGlzIGNhbGxlZCBleGFjdGx5IAorICAgICAgICBvbmNlIGR1cmluZyB0
aGUgY3JlYXRpb24gb2YgYW4gb2JqZWN0LCBzaW5jZSBjYWxsaW5nIGl0IGFueSBvdGhlciBudW1i
ZXIgb2YgCisgICAgICAgIHRpbWVzICgwLCAyLCBvciBtb3JlKSB3aWxsIGNhdXNlIGFuIGFzc2Vy
dGlvbiBmYWlsdXJlLgorCisgICAgICAgICogVXNlck9iamVjdEltcC5jcHA6CisgICAgICAgIChV
c2VyT2JqZWN0SW1wOjpVc2VyT2JqZWN0SW1wKToKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1wLmg6
CisgICAgICAgIChVc2VyT2JqZWN0SW1wOjpjcmVhdGUpOgorCiAyMDExLTA4LTI5ICBNYXJrIEhh
aG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgVW56aXAgaW5pdGlh
bGl6YXRpb24gbGlzdHMgYW5kIGNvbnN0cnVjdG9ycyBpbiBKU0NlbGwgaGllcmFyY2h5ICgzLzcp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKaW5kZXggMGQ0ZDQ1YWY3MmY4
YzI3NGQyMDMwZmJlM2I4NmJhZWM5ZTRmZDIxNi4uYWQzNjkzYjNhZDEzMDVlMGE5YzI0NmViNmM5
OTgxMzM2MWUwZjRiZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmpl
Y3RJbXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcApA
QCAtMzgsNyArMzgsNiBAQCBVc2VyT2JqZWN0SW1wOjpVc2VyT2JqZWN0SW1wKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTVQogICAgIDogSlNOb25GaW5h
bE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiAgICAgLCBmSlNVc2VyT2JqZWN0KChKU1Vz
ZXJPYmplY3QqKXVzZXJPYmplY3QtPlJldGFpbigpKQogewotICAgIGZpbmlzaENyZWF0aW9uKGds
b2JhbERhdGEpOwogfQogCiBVc2VyT2JqZWN0SW1wOjp+VXNlck9iamVjdEltcCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oIGIvU291cmNlL0phdmFT
Y3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaAppbmRleCA4ZWU4ZTJhNzA0N2Y4NjlhMjk3MjY1Y2Mx
YzI2YzNmMzZmOTA4YTgwLi4xNTk2MDcwMGNmYWM1YWEwNDQzYTg5YmE4NjM4NGNiN2QxNjc3ZTE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKQEAgLTQwLDcgKzQwLDkgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIFVzZXJPYmplY3RJbXAqIGNyZWF0ZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1VzZXJPYmplY3QqIHVzZXJPYmpl
Y3QpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8VXNlck9iamVjdElt
cD4oZ2xvYmFsRGF0YS5oZWFwKSkgVXNlck9iamVjdEltcChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUs
IHVzZXJPYmplY3QpOworICAgICAgICBVc2VyT2JqZWN0SW1wKiBvYmplY3QgPSBuZXcgKGFsbG9j
YXRlQ2VsbDxVc2VyT2JqZWN0SW1wPihnbG9iYWxEYXRhLmhlYXApKSBVc2VyT2JqZWN0SW1wKGds
b2JhbERhdGEsIHN0cnVjdHVyZSwgdXNlck9iamVjdCk7CisgICAgICAgIG9iamVjdC0+ZmluaXNo
Q3JlYXRpb24oZ2xvYmFsRGF0YSk7CisgICAgICAgIHJldHVybiBvYmplY3Q7CiAgICAgfQogICAg
IAogICAgIHZpcnR1YWwgflVzZXJPYmplY3RJbXAoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKaW5kZXggMDBmYWMwYTdlZTEwZDE3Mzc2N2Rk
M2VjODVmNjhlOTc5NjA4MjVmNy4uNWQwZDQzNmNjOTY4NzNhZDlmYTAzOTVmMzU1Y2VhZWUzMjE1
Mzg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dT
aGVsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVs
bC5jcHAKQEAgLTQzLDExICs0MywxMCBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTRE9N
V2luZG93U2hlbGwpOwogCiBjb25zdCBDbGFzc0luZm8gSlNET01XaW5kb3dTaGVsbDo6c19pbmZv
ID0geyAiSlNET01XaW5kb3dTaGVsbCIsICZCYXNlOjpzX2luZm8sIDAsIDAgfTsKIAotSlNET01X
aW5kb3dTaGVsbDo6SlNET01XaW5kb3dTaGVsbChQYXNzUmVmUHRyPERPTVdpbmRvdz4gd2luZG93
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCkKK0pTRE9NV2lu
ZG93U2hlbGw6OkpTRE9NV2luZG93U2hlbGwoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIERPTVdyYXBw
ZXJXb3JsZCogd29ybGQpCiAgICAgOiBCYXNlKCp3b3JsZC0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1
cmUpCiAgICAgLCBtX3dvcmxkKHdvcmxkKQogewotICAgIGZpbmlzaENyZWF0aW9uKCp3b3JsZC0+
Z2xvYmFsRGF0YSgpLCB3aW5kb3cpOwogfQogCiB2b2lkIEpTRE9NV2luZG93U2hlbGw6OmZpbmlz
aENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUGFzc1JlZlB0cjxET01XaW5kb3c+
IHdpbmRvdykKQEAgLTE4MSw2ICsxODAsMTMgQEAgdm9pZCogSlNET01XaW5kb3dTaGVsbDo6b3Bl
cmF0b3IgbmV3KHNpemVfdCBzaXplKQogICAgIHJldHVybiBoZWFwLmFsbG9jYXRlKHNpemUpOwog
fQogCitKU0RPTVdpbmRvd1NoZWxsKiBKU0RPTVdpbmRvd1NoZWxsOjpjcmVhdGUoUGFzc1JlZlB0
cjxET01XaW5kb3c+IHdpbmRvdywgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRE9NV3JhcHBl
cldvcmxkKiB3b3JsZCkKK3sKKyAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IG5ldyBKU0RP
TVdpbmRvd1NoZWxsKHN0cnVjdHVyZSwgd29ybGQpOworICAgIHNoZWxsLT5maW5pc2hDcmVhdGlv
bigqd29ybGQtPmdsb2JhbERhdGEoKSwgd2luZG93KTsKKyAgICByZXR1cm4gc2hlbGw7IAorfQor
CiAvLyAtLS0tCiAvLyBDb252ZXJzaW9uIG1ldGhvZHMKIC8vIC0tLS0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAppbmRleCA1NDU5NjYxMmM3ZGE1MTIy
YTM3NzU2NWVhNGEwYmUxN2U3MzAxMzA0Li4zMDI4MzRmZmM2Nzk1NDM0ZGJlNDdmNDNlZTkyZTY2
YTY2N2I0Y2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd1NoZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dT
aGVsbC5oCkBAIC01NSw3ICs1NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBE
T01XaW5kb3cqIGltcGwoKSBjb25zdDsKIAotICAgICAgICB2b2lkKiBvcGVyYXRvciBuZXcoc2l6
ZV90KTsKKyAgICAgICAgc3RhdGljIEpTRE9NV2luZG93U2hlbGwqIGNyZWF0ZShQYXNzUmVmUHRy
PERPTVdpbmRvdz4sIEpTQzo6U3RydWN0dXJlKiwgRE9NV3JhcHBlcldvcmxkKik7CiAKICAgICAg
ICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpIAogICAgICAgICB7CkBAIC02
NSw5ICs2NSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIERPTVdyYXBwZXJXb3Js
ZCogd29ybGQoKSB7IHJldHVybiBtX3dvcmxkLmdldCgpOyB9CiAKICAgICBwcm90ZWN0ZWQ6Cisg
ICAgICAgIEpTRE9NV2luZG93U2hlbGwoSlNDOjpTdHJ1Y3R1cmUqLCBET01XcmFwcGVyV29ybGQq
KTsKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OkpTR2xvYmFsRGF0YSYsIFBhc3NS
ZWZQdHI8RE9NV2luZG93Pik7CiAKICAgICBwcml2YXRlOgorICAgICAgICB2b2lkKiBvcGVyYXRv
ciBuZXcoc2l6ZV90KTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc1Zp
c2l0Q2hpbGRyZW4gfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1
Y3R1cmVGbGFnczsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlbihKU0M6OlNs
b3RWaXNpdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdyYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCmlu
ZGV4IDlhNGFjYTVjNTFiOGNmZWI3NTMwYjJhNmUwZTc5ODQ1MWZkODU4ZTYuLjFiODIxOTcwM2Nm
OTM5MjBkMGI4NzdjNzZkNzc2NWU3YWJmMTBiNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV3JhcHBlci5oCkBAIC01OSw2ICs1OSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAg
Ly8gbmV3IEphdmFTY3JpcHQgb2JqZWN0cyBvbiBkZXRhY2hlZCB3aW5kb3dzIGR1ZSB0byBET01X
aW5kb3c6OmRvY3VtZW50KCkKICAgICAgICAgLy8gbmVlZGluZyB0byByZWFjaCB0aHJvdWdoIHRo
ZSBmcmFtZSB0byBnZXQgdG8gdGhlIERvY3VtZW50Ki4gIFNlZSBidWcgMjc2NDAuCiAgICAgICAg
IC8vIEFTU0VSVChnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAg
ICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmpl
Y3QpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHAKaW5kZXggODcwMjlkMWRiMDEyMzE0MjNiMWU4OGM1YWM1Zjk1MTQwY2Q5
NjE2YS4uZDI1YzcyMmE0OTVjMzVkMWRkYTFmYmE2NTY1MWJlNDc0MmYwMmU0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTEwOCw3
ICsxMDgsNyBAQCBKU0RPTVdpbmRvd1NoZWxsKiBTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVXaW5k
b3dTaGVsbChET01XcmFwcGVyV29ybGQqIHdvcmxkKQogewogICAgIEFTU0VSVCghbV93aW5kb3dT
aGVsbHMuY29udGFpbnMod29ybGQpKTsKICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IEpTRE9N
V2luZG93U2hlbGw6OmNyZWF0ZVN0cnVjdHVyZSgqd29ybGQtPmdsb2JhbERhdGEoKSwganNOdWxs
KCkpOwotICAgIFN0cm9uZzxKU0RPTVdpbmRvd1NoZWxsPiB3aW5kb3dTaGVsbCgqd29ybGQtPmds
b2JhbERhdGEoKSwgbmV3IEpTRE9NV2luZG93U2hlbGwobV9mcmFtZS0+ZG9tV2luZG93KCksIHN0
cnVjdHVyZSwgd29ybGQpKTsKKyAgICBTdHJvbmc8SlNET01XaW5kb3dTaGVsbD4gd2luZG93U2hl
bGwoKndvcmxkLT5nbG9iYWxEYXRhKCksIEpTRE9NV2luZG93U2hlbGw6OmNyZWF0ZShtX2ZyYW1l
LT5kb21XaW5kb3coKSwgc3RydWN0dXJlLCB3b3JsZCkpOwogICAgIFN0cm9uZzxKU0RPTVdpbmRv
d1NoZWxsPiB3aW5kb3dTaGVsbDIod2luZG93U2hlbGwpOwogICAgIG1fd2luZG93U2hlbGxzLmFk
ZCh3b3JsZCwgd2luZG93U2hlbGwpOwogICAgIHdvcmxkLT5kaWRDcmVhdGVXaW5kb3dTaGVsbCh0
aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KaW5kZXggMGMwMWZjN2YyMjAxNmU0MDJjZjU5OWJjMmRiZjEyNjExY2MzNWQ0Yi4u
ZWYzOTBjNWE2Mzk5MjUxZGViN2RkMWEzOTNhMmU2ZWNmYmE4YWYxMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTEwNTcs
NyArMTA1Nyw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgdmlydHVhbCB2b2lkIGRlZmluZUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpT
Qzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0KiBnZXR0ZXJGdW5jdGlv
biwgdW5zaWduZWQgYXR0cmlidXRlcyk7XG4iKSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJDdXN0b21Qcm90b3R5cGVEZWZpbmVHZXR0ZXIifTsKIAogICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICJcbnByaXZhdGU6XG4iKTsKLSAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
ICR7Y2xhc3NOYW1lfVByb3RvdHlwZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJl
KSA6IEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgc3RydWN0dXJlKSB7IH1cbiIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJHtj
bGFzc05hbWV9UHJvdG90eXBlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpIDog
SlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKSB7IGZp
bmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCk7IH1cbiIpOwogCiAgICAgIyBz
dHJ1Y3R1cmUgZmxhZ3MKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHJvdGVjdGVkOlxuIik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW50ZXJmYWNlLmgKaW5kZXggYTEyMjRiYzYxMjYxNTgzMmFkOTJjNTVjYTZkNGE0ZjIy
YjJiZmI0Zi4uY2M0ZjVmZTk0MGI4NDRhYzMxMGViMjM5NTA1NzNlZTMwZDQwZDg4YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVy
ZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJbnRlcmZhY2UuaApAQCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRl
OgotICAgIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OlN0cnVjdHVyZSog
c3RydWN0dXJlKSA6IEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIGds
b2JhbE9iamVjdCwgc3RydWN0dXJlKSB7IH0KKyAgICBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUo
SlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgOiBKU0M6OkpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpIHsgZmluaXNoQ3JlYXRpb24oZ2xvYmFs
RGF0YSwgZ2xvYmFsT2JqZWN0KTsgfQogcHJvdGVjdGVkOgogICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCmluZGV4IDcwY2M3NWU0MjQxM2Y1OGZl
MmIwNzRjZmFlMmU5YmEwMjM5OTAzZWIuLjFkMzQwOTVkZmJkOTNiOWExOGJjOGQ1NTk4YmZlNzRi
MGY3YWFiNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApA
QCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIEpTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkgOiBKU0M6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxEYXRhLCBnbG9i
YWxPYmplY3QsIHN0cnVjdHVyZSkgeyB9CisgICAgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
clByb3RvdHlwZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlKSA6IEpTQzo6SlNP
YmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkgeyBmaW5pc2hDcmVh
dGlvbihnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QpOyB9CiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKaW5kZXggYTEwNDQ0OWIx
NWJhZjkwMTQwZjczMGMzZTlkYjIwNGNlYmFkZmQyNi4uNDM4MDJlNTEwZGExZWYyZjEzYTA4MTVi
Mjk5NGIxMTE1MTJkZjAyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaApAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAgICAg
fQogCiBwcml2YXRlOgotICAgIEpTVGVzdE9ialByb3RvdHlwZShKU0M6OkpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OlN0cnVj
dHVyZSogc3RydWN0dXJlKSA6IEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbERh
dGEsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKSB7IH0KKyAgICBKU1Rlc3RPYmpQcm90b3R5cGUo
SlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgOiBKU0M6OkpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpIHsgZmluaXNoQ3JlYXRpb24oZ2xvYmFs
RGF0YSwgZ2xvYmFsT2JqZWN0KTsgfQogcHJvdGVjdGVkOgogICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwg
QmFzZTo6U3RydWN0dXJlRmxhZ3M7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCmluZGV4IDYyNDAwZGViMTRhNzFjNjM1NmM0NjA4
ZmIzMWMzMWE0MmRlZWJiMTYuLjZmYjVhMjI3NWU2N2Y0NWI5ZTBkMzEwMTJkZmRhZmFiM2E1Y2Q3
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlLmgKQEAgLTc4LDcgKzc4LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAg
ICBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGUoSlNDOjpKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgOiBKU0M6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dChnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkgeyB9CisgICAgSlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlKEpTQzo6SlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6U3RydWN0
dXJlKiBzdHJ1Y3R1cmUpIDogSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsRGF0
YSwgc3RydWN0dXJlKSB7IGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCk7
IH0KIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29i
amNfcnVudGltZS5oCmluZGV4IGQ4MDE5MDEwNjc1OWUzMTYwZGY1M2U4YjNiMWRmMDc0NjUwYzc2
ZWUuLjE3NTNjMGJjN2VlMDk2MTI4M2FjY2RiNmY5YzVkN2VhMmZmYzU0MjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5oCkBAIC0xMTYsNiArMTE2LDkgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90
eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RD
b3VudCwgJnNfaW5mbyk7CiAgICAgfQogCitwcm90ZWN0ZWQ6CisgICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihKU0dsb2JhbE9iamVjdCopOworCiBwcml2YXRlOgogICAgIE9iamNGYWxsYmFja09iamVj
dEltcChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIE9iamNJbnN0YW5jZSosIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNPYmplY3Q6OlN0cnVj
dHVyZUZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19y
dW50aW1lLm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCmlu
ZGV4IDc1MGJjN2VlZmRlMWUzOGExMzY3NmNlYWYwOTIyZGU3MWY4NTk5ZGYuLmRmMGU3MWM3ZmVj
YjYyZTE2Zjc1ZGE5MTIwMzFmYTk2YjFhMmE3YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
b2JqYy9vYmpjX3J1bnRpbWUubW0KQEAgLTIwMSw2ICsyMDEsMTIgQEAgT2JqY0ZhbGxiYWNrT2Jq
ZWN0SW1wOjpPYmpjRmFsbGJhY2tPYmplY3RJbXAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWMKICAgICAsIF9pbnN0YW5jZShpKQogICAgICwgX2l0ZW0ocHJvcGVydHlOYW1lKQog
eworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgT2JqY0ZhbGxi
YWNrT2JqZWN0SW1wOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgp
LCBnbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAppbmRleCBiNWY3YTA3OGIyYzAwY2Y4
ZGZkYzgwOTBjN2FmODQwMjEyNGQ2NTdiLi5lMDFhMTVmMzdjYzkxYzQ1OGVkYTE0MWM3NDg2ZDhj
MjY5YzZkY2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJh
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC00
MCw2ICs0MCwxMiBAQCBjb25zdCBDbGFzc0luZm8gUnVudGltZUFycmF5OjpzX2luZm8gPSB7ICJS
dW50aW1lQXJyYXkiLCAmSlNBcnJheTo6c19pbmZvLCAwLCAwCiBSdW50aW1lQXJyYXk6OlJ1bnRp
bWVBcnJheShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBCaW5kaW5nczo6
QXJyYXkqIGFycmF5KQogICAgIDogSlNBcnJheShleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVy
ZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIGFycmF5KTsKK30K
Kwordm9pZCBSdW50aW1lQXJyYXk6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgQmluZGluZ3M6OkFycmF5KiBhcnJheSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bihnbG9iYWxEYXRhKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHNldFN1
YmNsYXNzRGF0YShhcnJheSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9hcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaApp
bmRleCBjYjdiYzYzNTc3NmQ4ZWJjOTEwMzk1MzIwYWVmZGU0MmJjYjkwNmQ3Li44ZDhmNWFlNmJm
NjhhNjMzODY1ZDBkMDJiZjY0M2Y5NWU0NGE4OTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX2FycmF5LmgKQEAgLTc0LDYgKzc0LDggQEAgcHVibGljOgogICAgIH0KIAogcHJvdGVjdGVk
OgorICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiwgQmluZGluZ3M6OkFycmF5
Kik7CisKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlk
ZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNBcnJh
eTo6U3RydWN0dXJlRmxhZ3M7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfb2JqZWN0LmNwcAppbmRleCBmNGQwYmFkZTVlOGJmYWE1OWQzYjkxNzAwMWEzZTQwNmJmNTk1
OTc3Li45NjY0MGYwMDhmYWMxYWM0NzE3NjRmZjg1ZTNiOGY2NDViOTJiZjJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKQEAgLTQxLDYgKzQxLDEyIEBAIFJ1bnRp
bWVPYmplY3Q6OlJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlCiAgICAgOiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFs
T2JqZWN0LCBzdHJ1Y3R1cmUpCiAgICAgLCBtX2luc3RhbmNlKGluc3RhbmNlKQogeworICAgIGZp
bmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgUnVudGltZU9iamVjdDo6Zmlu
aXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpm
aW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsK
ICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX29iamVjdC5oCmluZGV4IDg2MjJlMzExZjI2NjA4YzU0NmRlODZlMGNmNGEzZDU1ODUz
OTkyYTIuLjk5ZTA2ZTAxYzViYWY3ODA3N2ZiOWE0YmRkZjkzYTVhNDRkOGMzYmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCkBAIC03NCw2ICs3NCw3IEBAIHB1YmxpYzoK
IAogcHJvdGVjdGVkOgogICAgIFJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmUqLCBQYXNzUmVmUHRyPEluc3RhbmNlPik7CisgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldFBy
b3BlcnR5TmFtZXMgfCBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwog
CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL0pTTlBPYmplY3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCmluZGV4IDMzZWRiZTkyMmQ2Yjg1ZDY4OTcwODU1
Yzk3MTVkZGE4MzEwOWI2YzQuLjIyOTEwZjVjYTQ3Njc2NjVhYTM4ZmM4ZWM0ZGNkY2U5NWZhZmRh
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKQEAgLTU1LDYgKzU1LDEyIEBAIEpTTlBPYmplY3Q6OkpT
TlBPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTlBSdW50aW1lT2JqZWN0TWFw
KiBvYmplY3RNCiAgICAgLCBtX29iamVjdE1hcChvYmplY3RNYXApCiAgICAgLCBtX25wT2JqZWN0
KG5wT2JqZWN0KQogeworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7Cit9CisKK3Zv
aWQgSlNOUE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEo
KSwgZ2xvYmFsT2JqZWN0KTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogCiAgICAg
Ly8gV2Ugc2hvdWxkIG5ldmVyIGhhdmUgYW4gTlBKU09iamVjdCBpbnNpZGUgYSBKU05QT2JqZWN0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QT2JqZWN0LmgKaW5kZXggMmVhMTIyODJiMWIzYWVmZWYxNjlmMjM3MTU3NzY0YTY0YTU3
YWQyMi4uNzU4MjJjM2M1OTY3M2Q4Y2RiN2E0N2JlYmM4NjFkM2JkOGI2OWJkYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9i
amVjdC5oCkBAIC01Nyw2ICs1Nyw5IEBAIHB1YmxpYzoKIAogICAgIE5QT2JqZWN0KiBucE9iamVj
dCgpIGNvbnN0IHsgcmV0dXJuIG1fbnBPYmplY3Q7IH0KIAorcHJvdGVjdGVkOgorICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCopOworCiBwcml2YXRlOgogICAgIEpT
TlBPYmplY3QoSlNDOjpKU0dsb2JhbE9iamVjdCosIE5QUnVudGltZU9iamVjdE1hcCosIE5QT2Jq
ZWN0KiwgSlNDOjpTdHJ1Y3R1cmUqKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106051</attachid>
            <date>2011-09-01 15:54:46 -0700</date>
            <delta_ts>2011-09-01 16:48:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67174-20110901155445.patch</filename>
            <type>text/plain</type>
            <size>101884</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQzMjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcAppbmRleCBmYTlkMjE2ZGQxMTI1MDEyN2Vl
Njg1ZmUxZWM4ZDU5ZmYyNjhjOTllLi45NTA0YWQ4MGQ4NTNmM2M2NTVmODQyOGQ3ZDE2YTY1ZmVj
YjgzMDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuY3BwCkBAIC00Myw2ICs0MywxMiBAQCBKU0NhbGxiYWNrQ29uc3RydWN0b3I6
OkpTQ2FsbGJhY2tDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
YwogICAgICwgbV9jbGFzcyhqc0NsYXNzKQogICAgICwgbV9jYWxsYmFjayhjYWxsYmFjaykKIHsK
KyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QsIGpzQ2xhc3MpOworfQorCit2b2lkIEpT
Q2FsbGJhY2tDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDbGFzc1JlZiBqc0NsYXNzKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChp
bmhlcml0cygmc19pbmZvKSk7CiAgICAgaWYgKG1fY2xhc3MpCiAgICAgICAgIEpTQ2xhc3NSZXRh
aW4oanNDbGFzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2Fs
bGJhY2tDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
Q29uc3RydWN0b3IuaAppbmRleCA0MGFhYmNmMTkyMTMxZDQxNDdiMDc4Mzg5OTkwOTlmOGExZTUx
ZWRhLi45MTE5MWRiNWY5Njc5OWUyMGNhNDZlOTEwMTRlNWVhNGFjNjY4Y2Q3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmgKQEAgLTUy
LDYgKzUyLDcgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgSlNDYWxsYmFja0NvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgSlNDbGFzc1JlZiwgSlNPYmplY3RDYWxs
QXNDb25zdHJ1Y3RvckNhbGxiYWNrKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
T2JqZWN0KiwgSlNDbGFzc1JlZik7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdz
OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmpl
Y3QuaAppbmRleCBlZTk5MGEwMmZjZmI5OTRjMWQ0ODFlMjc4NTdlY2MzODA4MDBjNmI1Li45YzJm
MzlmYjA3NGJlNjlkMDU4MzExMDVkYjcxZDA1NzU3MTg5YTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTI0LDE2ICsxMjQsMjEgQEAgcHJv
dGVjdGVkOgogICAgIC8vIGZ1bmN0aW9uYWxpdHkgaGVyZS4KICAgICB2b2lkKiBvcGVyYXRvciBu
ZXcoc2l6ZV90LCB2b2lkKiBwdHIpIHsgcmV0dXJuIHB0cjsgfQogCisgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopOworICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oKTsKKwogcHVibGljOgogICAgIHR5cGVkZWYgUGFyZW50IEJhc2U7CiAKICAgICBzdGF0
aWMgSlNDYWxsYmFja09iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTQ2xhc3NSZWYgY2xhc3NS
ZWYsIHZvaWQqIGRhdGEpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8
SlNDYWxsYmFja09iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIEpTQ2FsbGJhY2tPYmplY3QoZXhlYywg
Z2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGNsYXNzUmVmLCBkYXRhKTsKKyAgICAgICAgSlNDYWxs
YmFja09iamVjdCogY2FsbGJhY2tPYmplY3QgPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0NhbGxiYWNr
T2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgSlNDYWxsYmFja09iamVjdChleGVjLCBnbG9iYWxPYmpl
Y3QsIHN0cnVjdHVyZSwgY2xhc3NSZWYsIGRhdGEpOworICAgICAgICByZXR1cm4gY2FsbGJhY2tP
YmplY3Q7CiAgICAgfQogICAgIHN0YXRpYyBKU0NhbGxiYWNrT2JqZWN0KiBjcmVhdGUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU0NsYXNzUmVmIGNsYXNzUmVmLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0NhbGxiYWNr
T2JqZWN0PihnbG9iYWxEYXRhLmhlYXApKSBKU0NhbGxiYWNrT2JqZWN0KGdsb2JhbERhdGEsIGNs
YXNzUmVmLCBzdHJ1Y3R1cmUpOworICAgICAgICBKU0NhbGxiYWNrT2JqZWN0KiBjYWxsYmFja09i
amVjdCA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTQ2FsbGJhY2tPYmplY3Q+KGdsb2JhbERhdGEuaGVh
cCkpIEpTQ2FsbGJhY2tPYmplY3QoZ2xvYmFsRGF0YSwgY2xhc3NSZWYsIHN0cnVjdHVyZSk7Cisg
ICAgICAgIHJldHVybiBjYWxsYmFja09iamVjdDsKICAgICB9CiAKICAgICB2b2lkIHNldFByaXZh
dGUodm9pZCogZGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
Q2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlND
YWxsYmFja09iamVjdEZ1bmN0aW9ucy5oCmluZGV4IDY5MTBlNTZmZjhjYTQ5OTRiNjMzNmE4N2Fk
ODZlZDBlMTY4YzdjYTYuLmMzMTIzYmRmNjdlOGQzZjcyMDRhNjcxODcyMmMwMzRmYTFhZmI4MDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1
bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVj
dEZ1bmN0aW9ucy5oCkBAIC01NCw4ICs1NCw3IEBAIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6
SlNDYWxsYmFja09iamVjdChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAg
ICAgOiBQYXJlbnQoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiAgICAgLCBtX2NhbGxiYWNrT2Jq
ZWN0RGF0YShhZG9wdFB0cihuZXcgSlNDYWxsYmFja09iamVjdERhdGEoZGF0YSwganNDbGFzcykp
KQogewotICAgIEFTU0VSVChQYXJlbnQ6OmluaGVyaXRzKCZzX2luZm8pKTsKLSAgICBpbml0KGV4
ZWMpOworICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiB9CiAKIC8vIEds
b2JhbCBvYmplY3QgY29uc3RydWN0b3IuCkBAIC02NSw2ICs2NCwyMSBAQCBKU0NhbGxiYWNrT2Jq
ZWN0PFBhcmVudD46OkpTQ2FsbGJhY2tPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0NsYXNzUmVmCiAgICAgOiBQYXJlbnQoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogICAgICwgbV9j
YWxsYmFja09iamVjdERhdGEoYWRvcHRQdHIobmV3IEpTQ2FsbGJhY2tPYmplY3REYXRhKDAsIGpz
Q2xhc3MpKSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbigpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3Mg
UGFyZW50Pgordm9pZCBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OmZpbmlzaENyZWF0aW9uKEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNl
OjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0
KTsKKyAgICBBU1NFUlQoUGFyZW50Ojppbmhlcml0cygmc19pbmZvKSk7CisgICAgaW5pdChleGVj
KTsKK30KKworLy8gVGhpcyBpcyBqdXN0IGZvciBHbG9iYWwgb2JqZWN0LCBzbyB3ZSBjYW4gYXNz
dW1lIHRoYXQgQmFzZTo6ZmluaXNoQ3JlYXRpb24gaXMgSlNHbG9iYWxPYmplY3Q6OmNvbnN0cnVj
dG9yQm9keS4KK3RlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Cit2b2lkIEpTQ2FsbGJhY2tPYmplY3Q8
UGFyZW50Pjo6ZmluaXNoQ3JlYXRpb24oKQorewogICAgIEFTU0VSVChQYXJlbnQ6OmluaGVyaXRz
KCZzX2luZm8pKTsKICAgICBBU1NFUlQoUGFyZW50Ojppc0dsb2JhbE9iamVjdCgpKTsKICAgICBp
bml0KHN0YXRpY19jYXN0PEpTR2xvYmFsT2JqZWN0Kj4odGhpcyktPmdsb2JhbEV4ZWMoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3YTcwYTQ4NTQ0MzAxM2M4ZDBlMjIwN2Y5YTEyZWM2
NTVmZTYzN2RmLi45MTY5MGU5YjBiNzE4MTM5NjQ1ZTg5MjgyMzliNDBmMmE5ZjBhYjczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNDggQEAKKzIwMTEtMDktMDEgIE1hcmsg
SGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBVbnppcCBpbml0
aWFsaXphdGlvbiBsaXN0cyBhbmQgY29uc3RydWN0b3JzIGluIEpTQ2VsbCBoaWVyYXJjaHkgKDQv
NykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MTc0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29tcGxl
dGVkIHRoZSBmb3VydGggbGV2ZWwgb2YgdGhlIHJlZmFjdG9yaW5nIHRvIGFkZCBmaW5pc2hDcmVh
dGlvbigpIAorICAgICAgICBtZXRob2RzIHRvIGFsbCBjbGFzc2VzIHdpdGhpbiB0aGUgSlNDZWxs
IGhpZXJhcmNoeSB3aXRoIG5vbi10cml2aWFsIAorICAgICAgICBjb25zdHJ1Y3RvciBib2RpZXMu
CisKKyAgICAgICAgVGhpcyBwcmltYXJpbHkgY29uc2lzdHMgb2YgcHVzaGluZyB0aGUgY2FsbHMg
dG8gZmluaXNoQ3JlYXRpb24oKSBkb3duIAorICAgICAgICBpbnRvIHRoZSBjb25zdHJ1Y3RvcnMg
b2YgdGhlIHN1YmNsYXNzZXMgb2YgdGhlIHNlY29uZCBsZXZlbCBvZiB0aGUgaGllcmFyY2h5IAor
ICAgICAgICBhcyB3ZWxsIGFzIHB1bGxpbmcgdGhlIGZpbmlzaENyZWF0aW9uKCkgY2FsbHMgb3V0
IGludG8gdGhlIGNsYXNzJ3MgY29ycmVzcG9uZGluZworICAgICAgICBjcmVhdGUoKSBtZXRob2Qg
aWYgaXQgaGFzIG9uZS4gIERvaW5nIGJvdGggc2ltdWx0YW5lb3VzbHkgYWxsb3dzIHVzIHRvIAor
ICAgICAgICBtYWludGFpbiB0aGUgaW52YXJpYW50IHRoYXQgdGhlIGZpbmlzaENyZWF0aW9uKCkg
bWV0aG9kIGNoYWluIGlzIGNhbGxlZCBleGFjdGx5IAorICAgICAgICBvbmNlIGR1cmluZyB0aGUg
Y3JlYXRpb24gb2YgYW4gb2JqZWN0LCBzaW5jZSBjYWxsaW5nIGl0IGFueSBvdGhlciBudW1iZXIg
b2YgCisgICAgICAgIHRpbWVzICgwLCAyLCBvciBtb3JlKSB3aWxsIGNhdXNlIGFuIGFzc2VydGlv
biBmYWlsdXJlLgorCisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6SlNDYWxsYmFja0NvbnN0cnVjdG9y
KToKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbik6
CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIEFQSS9K
U0NhbGxiYWNrT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q6OmNyZWF0
ZSk6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaDoKKyAgICAgICAg
KEpTQzo6OjpKU0NhbGxiYWNrT2JqZWN0KToKKyAgICAgICAgKEpTQzo6OjpmaW5pc2hDcmVhdGlv
bik6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuSlNWQUxVRTY0b25seS5leHA6CisgICAgICAg
ICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWY6CisgICAgICAgICogZGVidWdnZXIvRGVi
dWdnZXJBY3RpdmF0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXJBY3RpdmF0aW9uOjpE
ZWJ1Z2dlckFjdGl2YXRpb24pOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246OmNy
ZWF0ZSk6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmg6CisgICAgICAg
ICogcnVudGltZS9Bcmd1bWVudHMuaDoKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzOjpjcmVhdGUp
OgorICAgICAgICAoSlNDOjpBcmd1bWVudHM6OmNyZWF0ZU5vUGFyYW1ldGVycyk6CisgICAgICAg
IChKU0M6OkFyZ3VtZW50czo6QXJndW1lbnRzKToKKyAgICAgICAgKiBydW50aW1lL0FycmF5UHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6QXJyYXlQcm90b3R5cGU6OkFycmF5UHJvdG90eXBl
KToKKyAgICAgICAgKEpTQzo6QXJyYXlQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAg
ICAgKiBydW50aW1lL0FycmF5UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9Cb29sZWFu
T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6Qm9vbGVhbk9iamVjdDo6Qm9vbGVhbk9iamVjdCk6
CisgICAgICAgIChKU0M6OkJvb2xlYW5PYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAg
KiBydW50aW1lL0Jvb2xlYW5PYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0RhdGVJbnN0YW5j
ZS5jcHA6CisgICAgICAgIChKU0M6OkRhdGVJbnN0YW5jZTo6RGF0ZUluc3RhbmNlKToKKyAgICAg
ICAgKEpTQzo6RGF0ZUluc3RhbmNlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGlt
ZS9EYXRlSW5zdGFuY2UuaDoKKyAgICAgICAgKiBydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwOgor
ICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpFcnJvckluc3RhbmNlKToKKyAgICAgICAgKiBy
dW50aW1lL0Vycm9ySW5zdGFuY2UuaDoKKyAgICAgICAgKEpTQzo6RXJyb3JJbnN0YW5jZTo6Y3Jl
YXRlKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpT
Qzo6RXJyb3JQcm90b3R5cGU6OkVycm9yUHJvdG90eXBlKToKKyAgICAgICAgKEpTQzo6RXJyb3JQ
cm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0Vycm9yUHJvdG90
eXBlLmg6CisgICAgICAgICogcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcDoKKyAgICAgICAg
KEpTQzo6SW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvcjo6SW50ZXJydXB0ZWRFeGVjdXRpb25FcnJv
cik6CisgICAgICAgIChKU0M6OkludGVycnVwdGVkRXhlY3V0aW9uRXJyb3I6OmNyZWF0ZSk6Cisg
ICAgICAgIChKU0M6OlRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcjo6VGVybWluYXRlZEV4ZWN1dGlv
bkVycm9yKToKKyAgICAgICAgKEpTQzo6VGVybWluYXRlZEV4ZWN1dGlvbkVycm9yOjpjcmVhdGUp
OgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5jcHA6CisgICAgICAgIChKU0M6OkV2YWxF
eGVjdXRhYmxlOjpFdmFsRXhlY3V0YWJsZSk6CisgICAgICAgIChKU0M6OlByb2dyYW1FeGVjdXRh
YmxlOjpQcm9ncmFtRXhlY3V0YWJsZSk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9uRXhlY3V0YWJs
ZTo6RnVuY3Rpb25FeGVjdXRhYmxlKToKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuaDoK
KyAgICAgICAgKEpTQzo6TmF0aXZlRXhlY3V0YWJsZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6
TmF0aXZlRXhlY3V0YWJsZTo6TmF0aXZlRXhlY3V0YWJsZSk6CisgICAgICAgIChKU0M6OkV2YWxF
eGVjdXRhYmxlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpQcm9ncmFtRXhlY3V0YWJsZTo6Y3Jl
YXRlKToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVjdXRhYmxlOjpjcmVhdGUpOgorICAgICAg
ICAqIHJ1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkludGVybmFs
RnVuY3Rpb246OkludGVybmFsRnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpJbnRlcm5hbEZ1bmN0
aW9uOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9u
Lmg6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpK
U0FjdGl2YXRpb246OkpTQWN0aXZhdGlvbik6CisgICAgICAgIChKU0M6OkpTQWN0aXZhdGlvbjo6
ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0aW9uLmg6CisgICAg
ICAgICogcnVudGltZS9KU0FycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6SlNBcnJheTo6SlNBcnJh
eSk6CisgICAgICAgICogcnVudGltZS9KU0FycmF5Lmg6CisgICAgICAgIChKU0M6OkpTQXJyYXk6
OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9KU0J5dGVBcnJheS5jcHA6CisgICAgICAgIChK
U0M6OkpTQnl0ZUFycmF5OjpKU0J5dGVBcnJheSk6CisgICAgICAgICogcnVudGltZS9KU0J5dGVB
cnJheS5oOgorICAgICAgICAoSlNDOjpKU0J5dGVBcnJheTo6Y3JlYXRlKToKKyAgICAgICAgKiBy
dW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpKU0Z1bmN0
aW9uKToKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjpjcmVh
dGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6
SlNHbG9iYWxPYmplY3Q6OkpTR2xvYmFsT2JqZWN0KToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxP
YmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTTm90QW5PYmplY3Qu
aDoKKyAgICAgICAgKEpTQzo6SlNOb3RBbk9iamVjdDo6SlNOb3RBbk9iamVjdCk6CisgICAgICAg
IChKU0M6OkpTTm90QW5PYmplY3Q6OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9KU09OT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPTk9iamVjdDo6SlNPTk9iamVjdCk6CisgICAgICAg
IChKU0M6OkpTT05PYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pT
T05PYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6SlNPYmplY3RXaXRo
R2xvYmFsT2JqZWN0KToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oOgorICAgICAgICAo
SlNDOjpKU1N0YXRpY1Njb3BlT2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpKU1N0YXRp
Y1Njb3BlT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTU3RhdGljU2Nv
cGVPYmplY3Q6OkpTU3RhdGljU2NvcGVPYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNWYXJp
YWJsZU9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU1ZhcmlhYmxlT2JqZWN0OjpKU1ZhcmlhYmxl
T2JqZWN0KToKKyAgICAgICAgKiBydW50aW1lL0pTV3JhcHBlck9iamVjdC5oOgorICAgICAgICAo
SlNDOjpKU1dyYXBwZXJPYmplY3Q6OkpTV3JhcHBlck9iamVjdCk6CisgICAgICAgICogcnVudGlt
ZS9NYXRoT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6TWF0aE9iamVjdDo6TWF0aE9iamVjdCk6
CisgICAgICAgIChKU0M6Ok1hdGhPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBy
dW50aW1lL01hdGhPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL051bWJlck9iamVjdC5jcHA6
CisgICAgICAgIChKU0M6Ok51bWJlck9iamVjdDo6TnVtYmVyT2JqZWN0KToKKyAgICAgICAgKEpT
Qzo6TnVtYmVyT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9OdW1i
ZXJPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHA6CisgICAg
ICAgIChKU0M6Ok9iamVjdFByb3RvdHlwZTo6T2JqZWN0UHJvdG90eXBlKToKKyAgICAgICAgKiBy
dW50aW1lL09iamVjdFByb3RvdHlwZS5oOgorICAgICAgICAoSlNDOjpPYmplY3RQcm90b3R5cGU6
OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChKU0M6OlJlZ0V4cE1hdGNoZXNBcnJheTo6UmVnRXhwTWF0Y2hlc0FycmF5KToKKyAgICAg
ICAgKEpTQzo6UmVnRXhwTWF0Y2hlc0FycmF5OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICog
cnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaDoKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cE9iamVjdDo6UmVnRXhwT2JqZWN0KToKKyAg
ICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVu
dGltZS9SZWdFeHBPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0
aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaWN0RXZhbEFjdGl2YXRpb246OlN0cmljdEV2YWxB
Y3RpdmF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmg6Cisg
ICAgICAgIChKU0M6OlN0cmljdEV2YWxBY3RpdmF0aW9uOjpjcmVhdGUpOgorICAgICAgICAqIHJ1
bnRpbWUvU3RyaW5nT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5nT2JqZWN0OjpTdHJp
bmdPYmplY3QpOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToK
KyAgICAgICAgKiBydW50aW1lL1N0cmluZ09iamVjdC5oOgorCiAyMDExLTA5LTAxICBBZGEgQ2hh
biAgPGFkYWNoYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEV4cG9ydCBmYXN0TWFsbG9jU3RhdGlz
dGljcyBhbmQgSGVhcDo6b2JqZWN0VHlwZUNvdW50cyBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY3MTYwLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLkpTVkFMVUU2NG9ubHkuZXhwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLkpTVkFMVUU2NG9ubHkuZXhwCmluZGV4IGVhYTlmNTEzOWYyMmUw
M2M4MGVkN2NmNDc5MmU0OGRhZjkxNmE2MTEuLjEzOTU5N2Y5Y2IwN2M1ZDQ4YmVkMTg5ODRlYzQ3
NDdmNGI0ZjM0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS5KU1ZBTFVFNjRvbmx5LmV4cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuSlNWQUxVRTY0b25seS5leHAKQEAgLTEgKzEsMiBAQAotX19aTjNKU0MxMEpTRnVu
Y3Rpb25DMUVQTlNfOUV4ZWNTdGF0ZUVQTlNfMTRKU0dsb2JhbE9iamVjdEVQTlNfOVN0cnVjdHVy
ZUVpUktOU18xMElkZW50aWZpZXJFUEZQdlMyX0UKKworCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmV4cAppbmRleCA5ZjRhM2JkY2EyMTNiM2I1YjUyZjU4ZmY0NmIxYjM3MGIw
ZDg1ZGU3Li4yNzQ1YTQ3MWQ0ZDE4MjNkNDFkOTMyZGUwNDY2ZjhjN2FlOThkOWNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKQEAgLTExMCwxMyArMTEwLDE3IEBA
IF9fWk4zSlNDMTBJZGVudGlmaWVyNGZyb21FUE5TXzlFeGVjU3RhdGVFaQogX19aTjNKU0MxMElk
ZW50aWZpZXI0ZnJvbUVQTlNfOUV4ZWNTdGF0ZUVqCiBfX1pOM0pTQzEwSWRlbnRpZmllcjVlcXVh
bEVQS04zV1RGMTBTdHJpbmdJbXBsRVBLYwogX19aTjNKU0MxMElkZW50aWZpZXI4dG9VSW50MzJF
UktOU183VVN0cmluZ0VSYgorX19aTjNKU0MxMEpTRnVuY3Rpb24xNGZpbmlzaENyZWF0aW9uRVBO
U185RXhlY1N0YXRlRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBOU18xOEZ1bmN0aW9uRXhlY3V0YWJs
ZUVQTlNfMTRTY29wZUNoYWluTm9kZUUKK19fWk4zSlNDMTBKU0Z1bmN0aW9uMTRmaW5pc2hDcmVh
dGlvbkVQTlNfOUV4ZWNTdGF0ZUVQTlNfMTRKU0dsb2JhbE9iamVjdEVpUktOU18xMElkZW50aWZp
ZXJFUE5TXzE0RXhlY3V0YWJsZUJhc2VFCiBfX1pOM0pTQzEwSlNGdW5jdGlvbjRuYW1lRVBOU185
RXhlY1N0YXRlRQorX19aTjNKU0MxMEpTRnVuY3Rpb242Y3JlYXRlRVBOU185RXhlY1N0YXRlRVBO
U18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRWlSS05TXzEwSWRlbnRpZmllckVQRlB2
UzJfRQogX19aTjNKU0MxMEpTRnVuY3Rpb242c19pbmZvRQorX19aTjNKU0MxMEpTRnVuY3Rpb25D
MUVQTlNfOUV4ZWNTdGF0ZUVQTlNfMTRKU0dsb2JhbE9iamVjdEVQTlNfOVN0cnVjdHVyZUUKIF9f
Wk4zSlNDMTB0aHJvd0Vycm9yRVBOU185RXhlY1N0YXRlRU5TXzdKU1ZhbHVlRQogX19aTjNKU0Mx
MHRocm93RXJyb3JFUE5TXzlFeGVjU3RhdGVFUE5TXzhKU09iamVjdEUKIF9fWk4zSlNDMTFKU0J5
dGVBcnJheTEzc19kZWZhdWx0SW5mb0UKIF9fWk4zSlNDMTFKU0J5dGVBcnJheTE1Y3JlYXRlU3Ry
dWN0dXJlRVJOU18xMkpTR2xvYmFsRGF0YUVOU183SlNWYWx1ZUVQS05TXzlDbGFzc0luZm9FCi1f
X1pOM0pTQzExSlNCeXRlQXJyYXk2Y3JlYXRlRVBOU185RXhlY1N0YXRlRVBOU185U3RydWN0dXJl
RVBOM1dURjlCeXRlQXJyYXlFCitfX1pOM0pTQzExSlNCeXRlQXJyYXlDMUVQTlNfOUV4ZWNTdGF0
ZUVQTlNfOVN0cnVjdHVyZUVQTjNXVEY5Qnl0ZUFycmF5RQogX19aTjNKU0MxMVBhcnNlckFyZW5h
NXJlc2V0RXYKIF9fWk4zSlNDMTFjaGVja1N5bnRheEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwU291
cmNlQ29kZUUKIF9fWk4zSlNDMTFjcmVhdGVFcnJvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzdVU3Ry
aW5nRQpAQCAtMTMzLDYgKzEzNyw3IEBAIF9fWk4zSlNDMTJKU0dsb2JhbERhdGExNGR1bXBTYW1w
bGVEYXRhRVBOU185RXhlY1N0YXRlRQogX19aTjNKU0MxMkpTR2xvYmFsRGF0YTE0cmVzZXREYXRl
Q2FjaGVFdgogX19aTjNKU0MxMkpTR2xvYmFsRGF0YTE0c2hhcmVkSW5zdGFuY2VFdgogX19aTjNK
U0MxMkpTR2xvYmFsRGF0YTE1ZHVtcFJlZ0V4cFRyYWNlRXYKK19fWk4zSlNDMTJKU0dsb2JhbERh
dGExNWdldEhvc3RGdW5jdGlvbkVQRlB2UE5TXzlFeGVjU3RhdGVFRQogX19aTjNKU0MxMkpTR2xv
YmFsRGF0YTIyY2xlYXJCdWlsdGluU3RydWN0dXJlc0V2CiAjaWZuZGVmIE5ERUJVRwogX19aTjNK
U0MxMkpTR2xvYmFsRGF0YTIzcmVsZWFzZUV4ZWN1dGFibGVNZW1vcnlFdgpAQCAtMTk2LDcgKzIw
MSw3IEBAIF9fWk4zSlNDMTdCeXRlY29kZUdlbmVyYXRvcjIxc2V0RHVtcHNHZW5lcmF0ZWRDb2Rl
RWIKIF9fWk4zSlNDMTdQcm9wZXJ0eU5hbWVBcnJheTNhZGRFUE4zV1RGMTBTdHJpbmdJbXBsRQog
X19aTjNKU0MxN2NvbnN0cnVjdEZ1bmN0aW9uRVBOU185RXhlY1N0YXRlRVBOU18xNEpTR2xvYmFs
T2JqZWN0RVJLTlNfN0FyZ0xpc3RFUktOU18xMElkZW50aWZpZXJFUktOU183VVN0cmluZ0VpCiBf
X1pOM0pTQzE3Y3JlYXRlU3ludGF4RXJyb3JFUE5TXzlFeGVjU3RhdGVFUktOU183VVN0cmluZ0UK
LV9fWk4zSlNDMThEZWJ1Z2dlckFjdGl2YXRpb25DMUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzhK
U09iamVjdEUKK19fWk4zSlNDMThEZWJ1Z2dlckFjdGl2YXRpb242Y3JlYXRlRVJOU18xMkpTR2xv
YmFsRGF0YUVQTlNfOEpTT2JqZWN0RQogX19aTjNKU0MxOFByb3BlcnR5RGVzY3JpcHRvcjExc2V0
V3JpdGFibGVFYgogX19aTjNKU0MxOFByb3BlcnR5RGVzY3JpcHRvcjEyc2V0VW5kZWZpbmVkRXYK
IF9fWk4zSlNDMThQcm9wZXJ0eURlc2NyaXB0b3IxM3NldERlc2NyaXB0b3JFTlNfN0pTVmFsdWVF
agpAQCAtMjE5LDggKzIyNCw5IEBAIF9fWk4zSlNDMjNBYnN0cmFjdFNhbXBsaW5nQ291bnRlcjRk
dW1wRXYKIF9fWk4zSlNDMjNvYmplY3RQcm90b0Z1bmNUb1N0cmluZ0VQTlNfOUV4ZWNTdGF0ZUUK
IF9fWk4zSlNDMjNzZXRVcFN0YXRpY0Z1bmN0aW9uU2xvdEVQTlNfOUV4ZWNTdGF0ZUVQS05TXzlI
YXNoRW50cnlFUE5TXzhKU09iamVjdEVSS05TXzEwSWRlbnRpZmllckVSTlNfMTJQcm9wZXJ0eVNs
b3RFCiBfX1pOM0pTQzI0RHluYW1pY0dsb2JhbE9iamVjdFNjb3BlQzFFUk5TXzEySlNHbG9iYWxE
YXRhRVBOU18xNEpTR2xvYmFsT2JqZWN0RQorX19aTjNKU0MyNEpTT2JqZWN0V2l0aEdsb2JhbE9i
amVjdDE0ZmluaXNoQ3JlYXRpb25FUk5TXzEySlNHbG9iYWxEYXRhRVBOU18xNEpTR2xvYmFsT2Jq
ZWN0RQorX19aTjNKU0MyNEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEMyRVJOU18xMkpTR2xvYmFs
RGF0YUVQTlNfOVN0cnVjdHVyZUUKIF9fWk4zSlNDMjRKU09iamVjdFdpdGhHbG9iYWxPYmplY3RD
MkVQTlNfMTRKU0dsb2JhbE9iamVjdEVQTlNfOVN0cnVjdHVyZUUKLV9fWk4zSlNDMjRKU09iamVj
dFdpdGhHbG9iYWxPYmplY3RDMkVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzE0SlNHbG9iYWxPYmpl
Y3RFUE5TXzlTdHJ1Y3R1cmVFCiBfX1pOM0pTQzI0Y3JlYXRlU3RhY2tPdmVyZmxvd0Vycm9yRVBO
U185RXhlY1N0YXRlRQogX19aTjNKU0MyNWV2YWx1YXRlSW5HbG9iYWxDYWxsRnJhbWVFUktOU183
VVN0cmluZ0VSTlNfN0pTVmFsdWVFUE5TXzE0SlNHbG9iYWxPYmplY3RFCiBfX1pOM0pTQzM1Y3Jl
YXRlSW50ZXJydXB0ZWRFeGVjdXRpb25FeGNlcHRpb25FUE5TXzEySlNHbG9iYWxEYXRhRQpAQCAt
MjY5LDEyICsyNzUsMTUgQEAgX19aTjNKU0M2SlNMb2NrQzFFUE5TXzlFeGVjU3RhdGVFCiBfX1pO
M0pTQzZSZWdFeHBEMUV2CiBfX1pOM0pTQzZSZWdFeHA2Y3JlYXRlRVJOU18xMkpTR2xvYmFsRGF0
YUVSS05TXzdVU3RyaW5nRU5TXzExUmVnRXhwRmxhZ3NFCiBfX1pOM0pTQzdKU0FycmF5MTN2aXNp
dENoaWxkcmVuRVJOU18xMVNsb3RWaXNpdG9yRQorX19aTjNKU0M3SlNBcnJheTE0ZmluaXNoQ3Jl
YXRpb25FUk5TXzEySlNHbG9iYWxEYXRhRQorX19aTjNKU0M3SlNBcnJheTE0ZmluaXNoQ3JlYXRp
b25FUk5TXzEySlNHbG9iYWxEYXRhRVJLTlNfN0FyZ0xpc3RFCiBfX1pOM0pTQzdKU0FycmF5MTVz
ZXRTdWJjbGFzc0RhdGFFUHYKIF9fWk4zSlNDN0pTQXJyYXkxOGdldE93blByb3BlcnR5U2xvdEVQ
TlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQorX19aTjNKU0M3SlNBcnJheTZjcmVh
dGVFUk5TXzEySlNHbG9iYWxEYXRhRVBOU185U3RydWN0dXJlRVJLTlNfN0FyZ0xpc3RFCitfX1pO
M0pTQzdKU0FycmF5NmNyZWF0ZUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFCiBf
X1pOM0pTQzdKU0FycmF5NnNfaW5mb0UKIF9fWk4zSlNDN0pTQXJyYXk5c2V0TGVuZ3RoRWoKIF9f
Wk4zSlNDN0pTQXJyYXlDMUVSTlNfMTJKU0dsb2JhbERhdGFFUE5TXzlTdHJ1Y3R1cmVFCi1fX1pO
M0pTQzdKU0FycmF5QzFFUk5TXzEySlNHbG9iYWxEYXRhRVBOU185U3RydWN0dXJlRVJLTlNfN0Fy
Z0xpc3RFCiBfX1pOM0pTQzdKU0FycmF5QzJFUk5TXzEySlNHbG9iYWxEYXRhRVBOU185U3RydWN0
dXJlRQogX19aTjNKU0M3SlNBcnJheUQyRXYKIF9fWk4zSlNDN0pTVmFsdWUxM2lzVmFsaWRDYWxs
ZWVFdgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
cHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LmRlZgppbmRleCAwZGY3ZjZkZDdkMDUzYTZlZDFhMWIyN2U0OTA0Yzk3NTdiYzEyYmRkLi4yYmUz
ZWNlNTY4ZWQ2ZTQ1ZTY0MTgzNDBmNWIyMGEzZjY3NmVlNWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLmRlZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
dmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtOSwxMSArOSwxMSBA
QCBFWFBPUlRTCiAgICAgPz8wRHluYW1pY0dsb2JhbE9iamVjdFNjb3BlQEpTQ0BAUUFFQEFBVkpT
R2xvYmFsRGF0YUAxQFBBVkpTR2xvYmFsT2JqZWN0QDFAQFogIAogICAgID8/MEludGVybmFsRnVu
Y3Rpb25ASlNDQEBJQUVAUEFWSlNHbG9iYWxEYXRhQDFAUEFWSlNHbG9iYWxPYmplY3RAMUBQQVZT
dHJ1Y3R1cmVAMUBBQlZJZGVudGlmaWVyQDFAQFoKICAgICA/PzBKU0FycmF5QEpTQ0BASUFFQEFB
VkpTR2xvYmFsRGF0YUAxQFBBVlN0cnVjdHVyZUAxQEBaCi0gICAgPz8wSlNBcnJheUBKU0NAQElB
RUBBQVZKU0dsb2JhbERhdGFAMUBQQVZTdHJ1Y3R1cmVAMUBBQlZBcmdMaXN0QDFAQFoKLSAgICA/
PzBKU0Z1bmN0aW9uQEpTQ0BAQUFFQFBBVkV4ZWNTdGF0ZUAxQFBBVkpTR2xvYmFsT2JqZWN0QDFA
UEFWU3RydWN0dXJlQDFASEFCVklkZW50aWZpZXJAMUBQNklfSjBAWkBaCisgICAgPz8wSlNCeXRl
QXJyYXlASlNDQEBBQUVAUEFWRXhlY1N0YXRlQDFAUEFWU3RydWN0dXJlQDFAUEFWQnl0ZUFycmF5
QFdURkBAQFoKKyAgICA/PzBKU0Z1bmN0aW9uQEpTQ0BAQUFFQFBBVkV4ZWNTdGF0ZUAxQFBBVkpT
R2xvYmFsT2JqZWN0QDFAUEFWU3RydWN0dXJlQDFAQFoKICAgICA/PzBKU0xvY2tASlNDQEBRQUVA
UEFWRXhlY1N0YXRlQDFAQFoKLSAgICA/PzBKU09iamVjdFdpdGhHbG9iYWxPYmplY3RASlNDQEBJ
QUVAQUFWSlNHbG9iYWxEYXRhQDFAUEFWSlNHbG9iYWxPYmplY3RAMUBQQVZTdHJ1Y3R1cmVAMUBA
WgogICAgID8/MEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdEBKU0NAQElBRUBQQVZKU0dsb2JhbE9i
amVjdEAxQFBBVlN0cnVjdHVyZUAxQEBaCisgICAgPz8wSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0
QEpTQ0BASUFFQEFBVkpTR2xvYmFsRGF0YUAxQFBBVlN0cnVjdHVyZUAxQEBaCiAgICAgPz8wTUQ1
QFdURkBAUUFFQFhaCiAgICAgPz8wTXV0ZXhAV1RGQEBRQUVAWFoKICAgICA/PzBSZWZDb3VudGVk
TGVha0NvdW50ZXJAV1RGQEBRQUVAUEJEQFoKQEAgLTk1LDcgKzk1LDkgQEAgRVhQT1JUUwogICAg
ID9jb252ZXJ0VVRGMTZUb1VURjhAVW5pY29kZUBXVEZAQFlBP0FXNENvbnZlcnNpb25SZXN1bHRA
MTJAUEFQQl9XUEJfV1BBUEFEUEFEX05AWgogICAgID9jb252ZXJ0VVRGOFRvVVRGMTZAVW5pY29k
ZUBXVEZAQFlBP0FXNENvbnZlcnNpb25SZXN1bHRAMTJAUEFQQkRQQkRQQVBBX1dQQV9XX05AWgog
ICAgID9jcmVhdGVAQnl0ZUFycmF5QFdURkBAU0E/QVY/JFBhc3NSZWZQdHJAVkJ5dGVBcnJheUBX
VEZAQEAyQElAWgotICAgID9jcmVhdGVASlNCeXRlQXJyYXlASlNDQEBTQVBBVjEyQFBBVkV4ZWNT
dGF0ZUAyQFBBVlN0cnVjdHVyZUAyQFBBVkJ5dGVBcnJheUBXVEZAQEBaCisgICAgP2NyZWF0ZUBK
U0FycmF5QEpTQ0BAU0FQQVYxMkBBQVZKU0dsb2JhbERhdGFAMkBQQVZTdHJ1Y3R1cmVAMkBAWgor
ICAgID9jcmVhdGVASlNBcnJheUBKU0NAQFNBUEFWMTJAQUFWSlNHbG9iYWxEYXRhQDJAUEFWU3Ry
dWN0dXJlQDJAQUJWQXJnTGlzdEAyQEBaCisgICAgP2NyZWF0ZUBKU0Z1bmN0aW9uQEpTQ0BAU0FQ
QVYxMkBQQVZFeGVjU3RhdGVAMkBQQVZKU0dsb2JhbE9iamVjdEAyQFBBVlN0cnVjdHVyZUAyQEhB
QlZJZGVudGlmaWVyQDJAUDZJX0owQFpAWgogICAgID9jcmVhdGVASlNHbG9iYWxEYXRhQEpTQ0BA
U0E/QVY/JFBhc3NSZWZQdHJAVkpTR2xvYmFsRGF0YUBKU0NAQEBXVEZAQFc0VGhyZWFkU3RhY2tU
eXBlQDJAVzRIZWFwU2l6ZUAyQEBaCiAgICAgP2NyZWF0ZUBPcGFxdWVKU1N0cmluZ0BAU0E/QVY/
JFBhc3NSZWZQdHJAVU9wYXF1ZUpTU3RyaW5nQEBAV1RGQEBBQlZVU3RyaW5nQEpTQ0BAQFoKICAg
ICA/Y3JlYXRlQFJlZ0V4cEBKU0NAQFNBUEFWMTJAQUFWSlNHbG9iYWxEYXRhQDJAQUJWVVN0cmlu
Z0AyQFc0UmVnRXhwRmxhZ3NAMkBAWgpAQCAtMTY4LDYgKzE3MCwxMCBAQCBFWFBPUlRTCiAgICAg
P2Zhc3RaZXJvZWRNYWxsb2NAV1RGQEBZQVBBWElAWgogICAgID9maWxsR2V0dGVyUHJvcGVydHlT
bG90QEpTT2JqZWN0QEpTQ0BAUUFFWEFBVlByb3BlcnR5U2xvdEAyQFBBVj8kV3JpdGVCYXJyaWVy
QmFzZUBXNFVua25vd25ASlNDQEBAMkBAWgogICAgID9maW5hbGl6ZUBXZWFrSGFuZGxlT3duZXJA
SlNDQEBVQUVYVj8kSGFuZGxlQFc0VW5rbm93bkBKU0NAQEAyQFBBWEBaCisgICAgP2ZpbmlzaENy
ZWF0aW9uQEpTQXJyYXlASlNDQEBJQUVYQUFWSlNHbG9iYWxEYXRhQDJAQFoKKyAgICA/ZmluaXNo
Q3JlYXRpb25ASlNBcnJheUBKU0NAQElBRVhBQVZKU0dsb2JhbERhdGFAMkBBQlZBcmdMaXN0QDJA
QFoKKyAgICA/ZmluaXNoQ3JlYXRpb25ASlNGdW5jdGlvbkBKU0NAQElBRVhQQVZFeGVjU3RhdGVA
MkBQQVZKU0dsb2JhbE9iamVjdEAyQEhBQlZJZGVudGlmaWVyQDJAUEFWRXhlY3V0YWJsZUJhc2VA
MkBAWgorICAgID9maW5pc2hDcmVhdGlvbkBKU09iamVjdFdpdGhHbG9iYWxPYmplY3RASlNDQEBJ
QUVYQUFWSlNHbG9iYWxEYXRhQDJAUEFWSlNHbG9iYWxPYmplY3RAMkBAWgogICAgID9mb2N1c0BQ
cm9maWxlQEpTQ0BAUUFFWFBCVlByb2ZpbGVOb2RlQDJAQFoKICAgICA/ZnJvbUBJZGVudGlmaWVy
QEpTQ0BAU0E/QVYxMkBQQVZFeGVjU3RhdGVAMkBIQFoKICAgICA/ZnJvbUBJZGVudGlmaWVyQEpT
Q0BAU0E/QVYxMkBQQVZFeGVjU3RhdGVAMkBJQFoKQEAgLTE3Nyw2ICsxODMsNyBAQCBFWFBPUlRT
CiAgICAgP2dldEBTdHJ1Y3R1cmVASlNDQEBRQUVJQUFWSlNHbG9iYWxEYXRhQDJAUEFWU3RyaW5n
SW1wbEBXVEZAQEFBSUFBUEFWSlNDZWxsQDJAQFoKICAgICA/Z2V0Q2FsbERhdGFASlNDZWxsQEpT
Q0BAVUFFP0FXNENhbGxUeXBlQDJAQUFUQ2FsbERhdGFAMkBAWgogICAgID9nZXRDb25zdHJ1Y3RE
YXRhQEpTQ2VsbEBKU0NAQFVBRT9BVzRDb25zdHJ1Y3RUeXBlQDJAQUFUQ29uc3RydWN0RGF0YUAy
QEBaCisgICAgP2dldEhvc3RGdW5jdGlvbkBKU0dsb2JhbERhdGFASlNDQEBRQUVQQVZOYXRpdmVF
eGVjdXRhYmxlQDJAUDZJX0pQQVZFeGVjU3RhdGVAMkBAWkBaCiAgICAgP2dldEpTTnVtYmVyQEpT
Q2VsbEBKU0NAQFVBRT9BVkpTVmFsdWVAMkBYWgogICAgID9nZXRPYmplY3RASlNDZWxsQEpTQ0BA
UUFFUEFWSlNPYmplY3RAMkBYWgogICAgID9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JASlNHbG9i
YWxPYmplY3RASlNDQEBVQUVfTlBBVkV4ZWNTdGF0ZUAyQEFCVklkZW50aWZpZXJAMkBBQVZQcm9w
ZXJ0eURlc2NyaXB0b3JAMkBAWgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcAppbmRleCBhZThhNWFjZDZhODU3MGFkNzM3Y2Uw
ZTAwY2M5ZDVhNjhhOTQwOWRkLi5hNzEwMWRjYjZiYWE0MGZmNGZlMGVmYTMyZDFkNTViNjhhOTQx
NGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJB
Y3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJBY3RpdmF0aW9uLmNwcApAQCAtMzAsMTAgKzMwLDE2IEBACiAKIG5hbWVzcGFjZSBKU0Mgewog
Ci1EZWJ1Z2dlckFjdGl2YXRpb246OkRlYnVnZ2VyQWN0aXZhdGlvbihKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTT2JqZWN0KiBhY3RpdmF0aW9uKQorRGVidWdnZXJBY3RpdmF0aW9uOjpEZWJ1
Z2dlckFjdGl2YXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogICAgIDogSlNOb25GaW5h
bE9iamVjdChnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLmRlYnVnZ2VyQWN0aXZhdGlvblN0cnVjdHVy
ZS5nZXQoKSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBhY3RpdmF0aW9uKTsK
K30KKworRGVidWdnZXJBY3RpdmF0aW9uKiBEZWJ1Z2dlckFjdGl2YXRpb246OmNyZWF0ZShKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTT2JqZWN0KiBvYmplY3QpCit7CisgICAgRGVidWdnZXJB
Y3RpdmF0aW9uKiBhY3RpdmF0aW9uID0gbmV3IChhbGxvY2F0ZUNlbGw8RGVidWdnZXJBY3RpdmF0
aW9uPihnbG9iYWxEYXRhLmhlYXApKSBEZWJ1Z2dlckFjdGl2YXRpb24oZ2xvYmFsRGF0YSk7Cisg
ICAgYWN0aXZhdGlvbi0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgb2JqZWN0KTsKKyAgICBy
ZXR1cm4gYWN0aXZhdGlvbjsKIH0KIAogdm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246OmZpbmlzaENy
ZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNPYmplY3QqIGFjdGl2YXRpb24pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0
aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9u
LmgKaW5kZXggMzQ0NGJkODRlNWU2YzBhNGM0ZmQyY2M4MDlmN2RmMjhjNWQ4ZDUzMy4uZDgzYjJm
NzBmYzRiMGI4YWE1OTlkZjQxNGM1ZjA3MmFjZDk4NGQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaApAQCAtMzQsMTIgKzM0
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpTTm9u
RmluYWxPYmplY3QgQmFzZTsKIAotICAgICAgICBzdGF0aWMgRGVidWdnZXJBY3RpdmF0aW9uKiBj
cmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU09iamVjdCogb2JqZWN0KQotICAgICAg
ICB7Ci0gICAgICAgICAgICBEZWJ1Z2dlckFjdGl2YXRpb24qIGFjdGl2YXRpb24gPSBuZXcgKGFs
bG9jYXRlQ2VsbDxEZWJ1Z2dlckFjdGl2YXRpb24+KGdsb2JhbERhdGEuaGVhcCkpIERlYnVnZ2Vy
QWN0aXZhdGlvbihnbG9iYWxEYXRhLCBvYmplY3QpOwotICAgICAgICAgICAgcmV0dXJuIGFjdGl2
YXRpb247Ci0gICAgICAgIH0KLQorICAgICAgICBzdGF0aWMgRGVidWdnZXJBY3RpdmF0aW9uKiBj
cmVhdGUoSlNHbG9iYWxEYXRhJiwgSlNPYmplY3QqKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHZp
c2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImKTsKICAgICAgICAgdmlydHVhbCBVU3RyaW5nIGNsYXNz
TmFtZSgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7
CkBAIC02NCw3ICs1OSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKEpTR2xvYmFsRGF0YSYsIEpTT2JqZWN0KiBhY3RpdmF0aW9uKTsKIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIERlYnVnZ2VyQWN0aXZhdGlvbihKU0dsb2JhbERhdGEmLCBKU09iamVjdCop
OworICAgICAgICBEZWJ1Z2dlckFjdGl2YXRpb24oSlNHbG9iYWxEYXRhJik7CiAgICAgICAgIFdy
aXRlQmFycmllcjxKU0FjdGl2YXRpb24+IG1fYWN0aXZhdGlvbjsKICAgICB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCmluZGV4IDA5ZDU1ZjIxNjM1NTU0MWU0
YmRkZmIyMjI1ODFiNzZmMDkzMTg4N2UuLjdkMGFmM2RlNGYyODVmZDRiNjZjMDhhMWZiYzdlODFl
NTI0ZGMxZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3Vt
ZW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCkBA
IC02NCwxMiArNjQsMTQgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBBcmd1bWVu
dHMqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQogICAgICAgICB7CiAgICAgICAgICAgICBBcmd1bWVudHMqIGFyZ3VtZW50cyA9IG5ldyAoYWxs
b2NhdGVDZWxsPEFyZ3VtZW50cz4oZ2xvYmFsRGF0YS5oZWFwKSkgQXJndW1lbnRzKGNhbGxGcmFt
ZSk7CisgICAgICAgICAgICBhcmd1bWVudHMtPmZpbmlzaENyZWF0aW9uKGNhbGxGcmFtZSk7CiAg
ICAgICAgICAgICByZXR1cm4gYXJndW1lbnRzOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAg
ICBzdGF0aWMgQXJndW1lbnRzKiBjcmVhdGVOb1BhcmFtZXRlcnMoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKICAgICAgICAgewogICAgICAgICAgICAgQXJn
dW1lbnRzKiBhcmd1bWVudHMgPSBuZXcgKGFsbG9jYXRlQ2VsbDxBcmd1bWVudHM+KGdsb2JhbERh
dGEuaGVhcCkpIEFyZ3VtZW50cyhjYWxsRnJhbWUsIE5vUGFyYW1ldGVycyk7CisgICAgICAgICAg
ICBhcmd1bWVudHMtPmZpbmlzaENyZWF0aW9uKGNhbGxGcmFtZSwgTm9QYXJhbWV0ZXJzKTsKICAg
ICAgICAgICAgIHJldHVybiBhcmd1bWVudHM7CiAgICAgICAgIH0KIApAQCAtMTY2LDE0ICsxNjgs
MTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIDogSlNOb25GaW5hbE9iamVjdChjYWxsRnJh
bWUtPmdsb2JhbERhdGEoKSwgY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmFyZ3Vt
ZW50c1N0cnVjdHVyZSgpKQogICAgICAgICAsIGQoYWRvcHRQdHIobmV3IEFyZ3VtZW50c0RhdGEp
KQogICAgIHsKLSAgICAgICAgZmluaXNoQ3JlYXRpb24oY2FsbEZyYW1lKTsKICAgICB9CiAKICAg
ICBpbmxpbmUgQXJndW1lbnRzOjpBcmd1bWVudHMoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIE5vUGFy
YW1ldGVyc1R5cGUpCiAgICAgICAgIDogSlNOb25GaW5hbE9iamVjdChjYWxsRnJhbWUtPmdsb2Jh
bERhdGEoKSwgY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmFyZ3VtZW50c1N0cnVj
dHVyZSgpKQogICAgICAgICAsIGQoYWRvcHRQdHIobmV3IEFyZ3VtZW50c0RhdGEpKQogICAgIHsK
LSAgICAgICAgZmluaXNoQ3JlYXRpb24oY2FsbEZyYW1lLCBOb1BhcmFtZXRlcnMpOwogICAgIH0K
ICAgICAKICAgICBpbmxpbmUgdm9pZCBBcmd1bWVudHM6OmZpbmlzaENyZWF0aW9uKENhbGxGcmFt
ZSogY2FsbEZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQ
cm90b3R5cGUuY3BwCmluZGV4IDc4Y2UwMTJkMWI4NWNmNGM2NDcwNTIwZDNlMDYzOGNmNmM3NWI5
OGMuLjk5Njc0YmIyM2I0OTgxOGIyZjNhMzQ4NGMyNjZlMDEzOWQ4NmVmNDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTExNyw2
ICsxMTcsMTIgQEAgY29uc3QgQ2xhc3NJbmZvIEFycmF5UHJvdG90eXBlOjpzX2luZm8gPSB7IkFy
cmF5IiwgJkpTQXJyYXk6OnNfaW5mbywgMCwgRXhlY1N0YXQKIEFycmF5UHJvdG90eXBlOjpBcnJh
eVByb3RvdHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKICAgICA6IEpTQXJyYXkoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHN0cnVjdHVy
ZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QpOworfQorCit2b2lkIEFycmF5
UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQor
eworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpKTsK
ICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHB1dEFub255bW91c1ZhbHVlKGds
b2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCAwLCBnbG9iYWxPYmplY3QpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKaW5kZXggMTI0YzYxYWM0
ZGM3OTgzODVkZWVhNzg3ZGQ2NGQ1YmNiNmZiYTI1OC4uOWE2MjhlMGM2OTNjYTlkNzdlNzc2YTg2
YTk5ZDgyYTMwNWI3YzdiOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJyYXlQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheVByb3RvdHlwZS5oCkBAIC00OSw2ICs0OSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICB9CiAKICAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9i
YWxPYmplY3QqKTsKKwogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQW5vbnltb3VzU2xv
dENvdW50ID0gSlNBcnJheTo6QW5vbnltb3VzU2xvdENvdW50ICsgMTsKICAgICB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwCmluZGV4IGUy
NGEzMGE0YmI1NGFlNTAwZWQwZTlkNzE2NWZjOWNlN2E1ZDlhNjMuLmI5ZTMzZGM0ODQyOThiNmNl
ZTY3NGUxOGQ1NGE4N2Y2MmRhZGZkNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Jvb2xlYW5PYmplY3QuY3BwCkBAIC0zMCw2ICszMCwxMiBAQCBjb25zdCBDbGFzc0lu
Zm8gQm9vbGVhbk9iamVjdDo6c19pbmZvID0geyAiQm9vbGVhbiIsICZKU1dyYXBwZXJPYmplY3Q6
OnNfaW5mbywgMAogQm9vbGVhbk9iamVjdDo6Qm9vbGVhbk9iamVjdChKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNXcmFwcGVyT2JqZWN0KGds
b2JhbERhdGEsIHN0cnVjdHVyZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsK
K30KKwordm9pZCBCb29sZWFuT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAg
QVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQm9vbGVhbk9iamVjdC5oCmluZGV4IDcwZWQxMjYxMmNmZTk1NzM3YTAxM2UwZDdj
NzQ2MzFjYjljMDY3ZWUuLjg0NjEwZDliODFmNTBlMWRhYjhkODM0MTVkZDQ3NTI4NTQ4OTdlNWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5PYmplY3Qu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuT2JqZWN0LmgKQEAg
LTI4LDYgKzI4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgQm9vbGVhbk9iamVjdCA6
IHB1YmxpYyBKU1dyYXBwZXJPYmplY3QgewogICAgIHByb3RlY3RlZDoKICAgICAgICAgQm9vbGVh
bk9iamVjdChKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqKTsKKyAgICAgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihKU0dsb2JhbERhdGEmKTsKIAogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBK
U1dyYXBwZXJPYmplY3QgQmFzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0RhdGVJbnN0YW5jZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlSW5zdGFuY2UuY3BwCmluZGV4IGQ4Y2EwNzI0OTFiODU4M2RmYzgxZTEyOTVhMmQ4YjM5MmE2
NDQ3ZGYuLjZkZjMwZDcyMDE4ODE4NmRlMTIyMTAzZTBkODgwZTdmODJmZmYzNGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlLmNwcApAQCAtMzcsMTUg
KzM3LDI3IEBAIGNvbnN0IENsYXNzSW5mbyBEYXRlSW5zdGFuY2U6OnNfaW5mbyA9IHsiRGF0ZSIs
ICZKU1dyYXBwZXJPYmplY3Q6OnNfaW5mbywgMCwgMH07CiBEYXRlSW5zdGFuY2U6OkRhdGVJbnN0
YW5jZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNXcmFw
cGVyT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogewotICAgIEFTU0VSVChp
bmhlcml0cygmc19pbmZvKSk7Ci0gICAgc2V0SW50ZXJuYWxWYWx1ZShleGVjLT5nbG9iYWxEYXRh
KCksIGpzTmFOKCkpOworICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CiB9
CiAKIERhdGVJbnN0YW5jZTo6RGF0ZUluc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIGRvdWJsZSB0aW1lKQogICAgIDogSlNXcmFwcGVyT2JqZWN0KGV4ZWMtPmds
b2JhbERhdGEoKSwgc3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2Jh
bERhdGEoKSwgdGltZSk7Cit9CisKK3ZvaWQgRGF0ZUluc3RhbmNlOjpmaW5pc2hDcmVhdGlvbihK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xv
YmFsRGF0YSk7CisgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKKyAgICBzZXRJbnRlcm5h
bFZhbHVlKGdsb2JhbERhdGEsIGpzTmFOKCkpOworfQorCit2b2lkIERhdGVJbnN0YW5jZTo6Zmlu
aXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBkb3VibGUgdGltZSkKK3sKKyAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICBBU1NFUlQoaW5oZXJpdHMo
JnNfaW5mbykpOwotICAgIHNldEludGVybmFsVmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBqc051
bWJlcih0aW1lQ2xpcCh0aW1lKSkpOworICAgIHNldEludGVybmFsVmFsdWUoZ2xvYmFsRGF0YSwg
anNOdW1iZXIodGltZUNsaXAodGltZSkpKTsKIH0KIAogY29uc3QgR3JlZ29yaWFuRGF0ZVRpbWUq
IERhdGVJbnN0YW5jZTo6Y2FsY3VsYXRlR3JlZ29yaWFuRGF0ZVRpbWUoRXhlY1N0YXRlKiBleGVj
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUlu
c3RhbmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaApp
bmRleCBhZjJkZmEwNTBiMzMyNTZiMjM4YzlkMzBkNmNjMmZhZWNiZGEzNjFiLi5kNTIwMWVlMTky
ODg2OTg3ODExN2EwNmFjZmZjYWI1ZjliMDhmOTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EYXRlSW5zdGFuY2UuaApAQCAtMzMsNiArMzMsOCBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIERhdGVJbnN0YW5jZShFeGVjU3RhdGUqLCBTdHJ1
Y3R1cmUqLCBkb3VibGUpOwogICAgICAgICBEYXRlSW5zdGFuY2UoRXhlY1N0YXRlKiwgU3RydWN0
dXJlKik7CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJik7CisgICAg
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiwgZG91YmxlKTsKICAgICAgICAg
CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpTV3JhcHBlck9iamVjdCBCYXNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAppbmRleCAz
ZTAzMzdiODk0ZDM1MzdhZTEyZWY1OTViYTk1OTFkODNlNWFkMjBmLi40ZjVlNmUyZjU2ODQ4MDYx
ZDhlMTM5ZDViMTc5NWY4NTcwOWRiZTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvckluc3RhbmNlLmNwcApAQCAtMjksMjYgKzI5LDYgQEAgRXJyb3JJbnN0YW5j
ZTo6RXJyb3JJbnN0YW5jZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiAg
ICAgLCBtX2FwcGVuZFNvdXJjZVRvTWVzc2FnZShmYWxzZSkKIHsKLSAgICBmaW5pc2hDcmVhdGlv
bihnbG9iYWxEYXRhLCBVU3RyaW5nKCIiLCAwKSk7Ci19Ci0KLUVycm9ySW5zdGFuY2U6OkVycm9y
SW5zdGFuY2UoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
Y29uc3QgVVN0cmluZyYgbWVzc2FnZSkKLSAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0
YSwgc3RydWN0dXJlKQotICAgICwgbV9hcHBlbmRTb3VyY2VUb01lc3NhZ2UoZmFsc2UpCi17Ci0g
ICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgbWVzc2FnZSk7Ci19Ci0KLUVycm9ySW5zdGFu
Y2UqIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBjb25zdCBVU3RyaW5nJiBtZXNzYWdlKQotewotICAgIHJldHVybiBu
ZXcgKGFsbG9jYXRlQ2VsbDxFcnJvckluc3RhbmNlPihnbG9iYWxEYXRhLmhlYXApKSBFcnJvcklu
c3RhbmNlKGdsb2JhbERhdGEsIHN0cnVjdHVyZSwgbWVzc2FnZSk7Ci19Ci0KLUVycm9ySW5zdGFu
Y2UqIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBKU1ZhbHVlIG1lc3NhZ2UpCi17Ci0gICAgaWYgKG1lc3NhZ2UuaXNVbmRlZmluZWQo
KSkKLSAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEVycm9ySW5zdGFuY2U+KCpleGVj
LT5oZWFwKCkpKSBFcnJvckluc3RhbmNlKGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKTsK
LSAgICByZXR1cm4gY3JlYXRlKGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlLCBtZXNzYWdl
LnRvU3RyaW5nKGV4ZWMpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKaW5kZXggMDZhOTUzMjEzY2E1YmU1
YjQ1MWEzZGM4YTExZTkyZGFhMTI3NmY5Mi4uOWM2YTdhNzc1OTEyNjYyYTk5MmY0ZDU3MjAzM2Qw
ZDZiZmFkYzY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JJbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5z
dGFuY2UuaApAQCAtMzYsOSArMzYsMjEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBy
ZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCBUeXBlSW5mbyhP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7
CiAgICAgICAgIH0KIAotICAgICAgICBzdGF0aWMgRXJyb3JJbnN0YW5jZSogY3JlYXRlKEpTR2xv
YmFsRGF0YSYsIFN0cnVjdHVyZSosIGNvbnN0IFVTdHJpbmcmKTsKLSAgICAgICAgc3RhdGljIEVy
cm9ySW5zdGFuY2UqIGNyZWF0ZShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmUqLCBKU1ZhbHVlIG1lc3Nh
Z2UpOwotCisgICAgICAgIHN0YXRpYyBFcnJvckluc3RhbmNlKiBjcmVhdGUoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgVVN0cmluZyYgbWVzc2Fn
ZSkKKyAgICAgICAgeworICAgICAgICAgICAgRXJyb3JJbnN0YW5jZSogaW5zdGFuY2UgPSBuZXcg
KGFsbG9jYXRlQ2VsbDxFcnJvckluc3RhbmNlPihnbG9iYWxEYXRhLmhlYXApKSBFcnJvckluc3Rh
bmNlKGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7CisgICAgICAgICAgICBpbnN0YW5jZS0+ZmluaXNo
Q3JlYXRpb24oZ2xvYmFsRGF0YSwgbWVzc2FnZSk7CisgICAgICAgICAgICByZXR1cm4gaW5zdGFu
Y2U7CisgICAgICAgIH0KKyAgICAgICAgc3RhdGljIEVycm9ySW5zdGFuY2UqIGNyZWF0ZShFeGVj
U3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1ZhbHVlIG1lc3NhZ2UpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGlmIChtZXNzYWdlLmlzVW5kZWZpbmVkKCkpIHsKKyAgICAgICAg
ICAgICAgICBFcnJvckluc3RhbmNlKiBpbnN0YW5jZSA9IG5ldyAoYWxsb2NhdGVDZWxsPEVycm9y
SW5zdGFuY2U+KCpleGVjLT5oZWFwKCkpKSBFcnJvckluc3RhbmNlKGV4ZWMtPmdsb2JhbERhdGEo
KSwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgICAgICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRpb24o
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBVU3RyaW5nKCIiLCAwKSk7CisgICAgICAgICAgICAgICAgcmV0
dXJuIGluc3RhbmNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZShl
eGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSwgbWVzc2FnZS50b1N0cmluZyhleGVjKSk7Cisg
ICAgICAgIH0KIAogICAgICAgICBib29sIGFwcGVuZFNvdXJjZVRvTWVzc2FnZSgpIHsgcmV0dXJu
IG1fYXBwZW5kU291cmNlVG9NZXNzYWdlOyB9CiAgICAgICAgIHZvaWQgc2V0QXBwZW5kU291cmNl
VG9NZXNzYWdlKCkgeyBtX2FwcGVuZFNvdXJjZVRvTWVzc2FnZSA9IHRydWU7IH0KQEAgLTQ4LDcg
KzYwLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIGV4cGxp
Y2l0IEVycm9ySW5zdGFuY2UoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKik7Ci0gICAgICAgIGV4
cGxpY2l0IEVycm9ySW5zdGFuY2UoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiwgY29uc3QgVVN0
cmluZyYpOwogCiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBjb25zdCBVU3RyaW5nJiBtZXNzYWdlKQogICAgICAgICB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKaW5kZXggMzg2MDY4YmMz
ZTc4ZjdiYmRkYjI0YzM0N2M5ZDFmZmQ3Y2VkYTgxMS4uNjk4Njc1MjRjNGNlN2VmNWM3NjNiNmE1
MjcyZTcxNmNlODQ5NTc5YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXJyb3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9yUHJvdG90eXBlLmNwcApAQCAtNTMsMTEgKzUzLDEyIEBAIEFTU0VSVF9DTEFTU19GSVRT
X0lOX0NFTEwoRXJyb3JQcm90b3R5cGUpOwogRXJyb3JQcm90b3R5cGU6OkVycm9yUHJvdG90eXBl
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCiAgICAgOiBFcnJvckluc3RhbmNlKGV4ZWMtPmdsb2JhbERhdGEoKSwgc3Ry
dWN0dXJlKQogewotICAgIGNvbnN0cnVjdG9yQm9keShleGVjLCBnbG9iYWxPYmplY3QpOworICAg
IGZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiB9CiAKLXZvaWQgRXJyb3JQcm90
b3R5cGU6OmNvbnN0cnVjdG9yQm9keShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCit2b2lkIEVycm9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CisgICAgQmFzZTo6Zmlu
aXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCAiIik7CiAgICAgQVNTRVJUKGluaGVyaXRz
KCZzX2luZm8pKTsKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkubmFtZSwganNOb250cml2aWFsU3RyaW5nKGV4ZWMsICJFcnJvciIpLCBEb250
RW51bSk7CiAgICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCks
IDAsIGdsb2JhbE9iamVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvclByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JQcm90b3R5cGUuaAppbmRleCA5ODM1NzJiNjIyM2E3YmQzOGZjM2U1YWExODU2OWJjMDg0NDBl
ZDc4Li5kN2IxNTIyNWM4MThmMTJkZDFiNDYzZmUxZjU0NzA4Y2RmY2Y0OWE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmgKQEAgLTQ1LDcgKzQ1
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIEVycm9yUHJv
dG90eXBlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7Ci0gICAgICAg
IHZvaWQgY29uc3RydWN0b3JCb2R5KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0Kik7CisgICAg
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKTsKIAog
ICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3QgfCBFcnJvckluc3RhbmNlOjpTdHJ1Y3R1cmVGbGFnczsKICAgICAg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFub255bW91c1Nsb3RDb3VudCA9IEVycm9ySW5zdGFu
Y2U6OkFub255bW91c1Nsb3RDb3VudCArIDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCmluZGV4IGI1OGQ4OTUxN2UzN2VkYmFiMjc5
NDAzMDExMTZmZTNjMjIzYzM0ODIuLjRiYzRmYWUwNjA0Y2I2MjE4YmQ5NDBlYzJhZjM0YWVkYWRh
M2RmMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlv
bkhlbHBlcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlv
bkhlbHBlcnMuY3BwCkBAIC00Niw3ICs0Niw2IEBAIHByaXZhdGU6CiAgICAgSW50ZXJydXB0ZWRF
eGVjdXRpb25FcnJvcihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCiAgICAgICAgIDogSlNOb25G
aW5hbE9iamVjdChnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLmludGVycnVwdGVkRXhlY3V0aW9uRXJy
b3JTdHJ1Y3R1cmUuZ2V0KCkpCiAgICAgewotICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxE
YXRhKTsKICAgICB9CiAKIHB1YmxpYzoKQEAgLTU0LDcgKzUzLDkgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIEludGVycnVwdGVkRXhlY3V0aW9uRXJyb3IqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SW50ZXJy
dXB0ZWRFeGVjdXRpb25FcnJvcj4oZ2xvYmFsRGF0YS5oZWFwKSkgSW50ZXJydXB0ZWRFeGVjdXRp
b25FcnJvcihnbG9iYWxEYXRhKTsKKyAgICAgICAgSW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvciog
ZXJyb3IgPSBuZXcgKGFsbG9jYXRlQ2VsbDxJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yPihnbG9i
YWxEYXRhLmhlYXApKSBJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yKGdsb2JhbERhdGEpOworICAg
ICAgICBlcnJvci0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CisgICAgICAgIHJldHVybiBl
cnJvcjsKICAgICB9CiAKICAgICB2aXJ0dWFsIENvbXBsVHlwZSBleGNlcHRpb25UeXBlKCkgY29u
c3QgeyByZXR1cm4gSW50ZXJydXB0ZWQ7IH0KQEAgLTcyLDcgKzczLDYgQEAgcHJpdmF0ZToKICAg
ICBUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3IoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogICAg
ICAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS50ZXJtaW5hdGVk
RXhlY3V0aW9uRXJyb3JTdHJ1Y3R1cmUuZ2V0KCkpCiAgICAgewotICAgICAgICBmaW5pc2hDcmVh
dGlvbihnbG9iYWxEYXRhKTsKICAgICB9CiAKIHB1YmxpYzoKQEAgLTgwLDcgKzgwLDkgQEAgcHVi
bGljOgogCiAgICAgc3RhdGljIFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvciogY3JlYXRlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRl
Q2VsbDxUZXJtaW5hdGVkRXhlY3V0aW9uRXJyb3I+KGdsb2JhbERhdGEuaGVhcCkpIFRlcm1pbmF0
ZWRFeGVjdXRpb25FcnJvcihnbG9iYWxEYXRhKTsKKyAgICAgICAgVGVybWluYXRlZEV4ZWN1dGlv
bkVycm9yKiBlcnJvciA9IG5ldyAoYWxsb2NhdGVDZWxsPFRlcm1pbmF0ZWRFeGVjdXRpb25FcnJv
cj4oZ2xvYmFsRGF0YS5oZWFwKSkgVGVybWluYXRlZEV4ZWN1dGlvbkVycm9yKGdsb2JhbERhdGEp
OworICAgICAgICBlcnJvci0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CisgICAgICAgIHJl
dHVybiBlcnJvcjsKICAgICB9CiAKICAgICB2aXJ0dWFsIENvbXBsVHlwZSBleGNlcHRpb25UeXBl
KCkgY29uc3QgeyByZXR1cm4gVGVybWluYXRlZDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FeGVjdXRhYmxlLmNwcAppbmRleCAzODk3ZTkzNjhiMmY5MDc5YWE1YjkyZjJmZDQw
MjE3Y2U2MGUwMGUyLi41NjE3NTIyMzA5NmEyZjI2MjM1Y2U3YjA3MTRlOTY2M2RlYzk4MTU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcApAQCAtMTI3
LDcgKzEyNyw2IEBAIGNvbnN0IENsYXNzSW5mbyBFdmFsRXhlY3V0YWJsZTo6c19pbmZvID0geyAi
RXZhbEV4ZWN1dGFibGUiLCAmU2NyaXB0RXhlY3V0YWJsZTo6CiBFdmFsRXhlY3V0YWJsZTo6RXZh
bEV4ZWN1dGFibGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJv
b2wgaW5TdHJpY3RDb250ZXh0KQogICAgIDogU2NyaXB0RXhlY3V0YWJsZShleGVjLT5nbG9iYWxE
YXRhKCkuZXZhbEV4ZWN1dGFibGVTdHJ1Y3R1cmUuZ2V0KCksIGV4ZWMsIHNvdXJjZSwgaW5TdHJp
Y3RDb250ZXh0KQogewotICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CiB9
CiAKIEV2YWxFeGVjdXRhYmxlOjp+RXZhbEV4ZWN1dGFibGUoKQpAQCAtMTM5LDcgKzEzOCw2IEBA
IGNvbnN0IENsYXNzSW5mbyBQcm9ncmFtRXhlY3V0YWJsZTo6c19pbmZvID0geyAiUHJvZ3JhbUV4
ZWN1dGFibGUiLCAmU2NyaXB0RXhlY3V0CiBQcm9ncmFtRXhlY3V0YWJsZTo6UHJvZ3JhbUV4ZWN1
dGFibGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UpCiAgICAgOiBT
Y3JpcHRFeGVjdXRhYmxlKGV4ZWMtPmdsb2JhbERhdGEoKS5wcm9ncmFtRXhlY3V0YWJsZVN0cnVj
dHVyZS5nZXQoKSwgZXhlYywgc291cmNlLCBmYWxzZSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihl
eGVjLT5nbG9iYWxEYXRhKCkpOwogfQogCiBQcm9ncmFtRXhlY3V0YWJsZTo6flByb2dyYW1FeGVj
dXRhYmxlKCkKQEAgLTE0OCw3ICsxNDYsNyBAQCBQcm9ncmFtRXhlY3V0YWJsZTo6flByb2dyYW1F
eGVjdXRhYmxlKCkKIAogY29uc3QgQ2xhc3NJbmZvIEZ1bmN0aW9uRXhlY3V0YWJsZTo6c19pbmZv
ID0geyAiRnVuY3Rpb25FeGVjdXRhYmxlIiwgJlNjcmlwdEV4ZWN1dGFibGU6OnNfaW5mbywgMCwg
MCB9OwogCi1GdW5jdGlvbkV4ZWN1dGFibGU6OkZ1bmN0aW9uRXhlY3V0YWJsZShKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUm
IHNvdXJjZSwgYm9vbCBmb3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyogcGFy
YW1ldGVycywgYm9vbCBpblN0cmljdENvbnRleHQsIGludCBmaXJzdExpbmUsIGludCBsYXN0TGlu
ZSkKK0Z1bmN0aW9uRXhlY3V0YWJsZTo6RnVuY3Rpb25FeGVjdXRhYmxlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29kZSYgc291
cmNlLCBib29sIGZvcmNlVXNlc0FyZ3VtZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJzKiBwYXJhbWV0
ZXJzLCBib29sIGluU3RyaWN0Q29udGV4dCkKICAgICA6IFNjcmlwdEV4ZWN1dGFibGUoZ2xvYmFs
RGF0YS5mdW5jdGlvbkV4ZWN1dGFibGVTdHJ1Y3R1cmUuZ2V0KCksIGdsb2JhbERhdGEsIHNvdXJj
ZSwgaW5TdHJpY3RDb250ZXh0KQogICAgICwgbV9udW1DYXB0dXJlZFZhcmlhYmxlcygwKQogICAg
ICwgbV9mb3JjZVVzZXNBcmd1bWVudHMoZm9yY2VVc2VzQXJndW1lbnRzKQpAQCAtMTU2LDEwICsx
NTQsOSBAQCBGdW5jdGlvbkV4ZWN1dGFibGU6OkZ1bmN0aW9uRXhlY3V0YWJsZShKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpZQogICAgICwgbV9uYW1lKG5hbWUpCiAgICAg
LCBtX3N5bWJvbFRhYmxlKDApCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgbmFt
ZSwgZmlyc3RMaW5lLCBsYXN0TGluZSk7CiB9CiAKLUZ1bmN0aW9uRXhlY3V0YWJsZTo6RnVuY3Rp
b25FeGVjdXRhYmxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29u
c3QgU291cmNlQ29kZSYgc291cmNlLCBib29sIGZvcmNlVXNlc0FyZ3VtZW50cywgRnVuY3Rpb25Q
YXJhbWV0ZXJzKiBwYXJhbWV0ZXJzLCBib29sIGluU3RyaWN0Q29udGV4dCwgaW50IGZpcnN0TGlu
ZSwgaW50IGxhc3RMaW5lKQorRnVuY3Rpb25FeGVjdXRhYmxlOjpGdW5jdGlvbkV4ZWN1dGFibGUo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25zdCBTb3VyY2VDb2Rl
JiBzb3VyY2UsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMqIHBh
cmFtZXRlcnMsIGJvb2wgaW5TdHJpY3RDb250ZXh0KQogICAgIDogU2NyaXB0RXhlY3V0YWJsZShl
eGVjLT5nbG9iYWxEYXRhKCkuZnVuY3Rpb25FeGVjdXRhYmxlU3RydWN0dXJlLmdldCgpLCBleGVj
LCBzb3VyY2UsIGluU3RyaWN0Q29udGV4dCkKICAgICAsIG1fbnVtQ2FwdHVyZWRWYXJpYWJsZXMo
MCkKICAgICAsIG1fZm9yY2VVc2VzQXJndW1lbnRzKGZvcmNlVXNlc0FyZ3VtZW50cykKQEAgLTE2
Nyw3ICsxNjQsNiBAQCBGdW5jdGlvbkV4ZWN1dGFibGU6OkZ1bmN0aW9uRXhlY3V0YWJsZShFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsCiAgICAgLCBtX25hbWUobmFtZSkK
ICAgICAsIG1fc3ltYm9sVGFibGUoMCkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9i
YWxEYXRhKCksIG5hbWUsIGZpcnN0TGluZSwgbGFzdExpbmUpOwogfQogCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAppbmRleCA1ZmFkYmI4MTI0MWEwY2UzZTEz
ODMxODU4OGFmNDIxMTY3ZmExYjY5Li42MzliYmU0NzAwYWYzMzQzNDI0MWQxNTUwOGFkZDdkNDFh
NzJhMTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRh
YmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCkBA
IC0xNzYsMTYgKzE3NiwyMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIE5hdGl2
ZUV4ZWN1dGFibGUqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIE1hY3JvQXNzZW1i
bGVyQ29kZVB0ciBjYWxsVGh1bmssIE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIgY29uc3RydWN0VGh1bmssIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKQog
ICAgICAgICB7CiAgICAgICAgICAgICBOYXRpdmVFeGVjdXRhYmxlKiBleGVjdXRhYmxlOwotICAg
ICAgICAgICAgaWYgKCFjYWxsVGh1bmspCi0gICAgICAgICAgICAgICAgZXhlY3V0YWJsZSA9IG5l
dyAoYWxsb2NhdGVDZWxsPE5hdGl2ZUV4ZWN1dGFibGU+KGdsb2JhbERhdGEuaGVhcCkpIE5hdGl2
ZUV4ZWN1dGFibGUoZ2xvYmFsRGF0YSwgSklUQ29kZSgpLCBmdW5jdGlvbiwgSklUQ29kZSgpLCBj
b25zdHJ1Y3Rvcik7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZXhlY3V0YWJs
ZSA9IG5ldyAoYWxsb2NhdGVDZWxsPE5hdGl2ZUV4ZWN1dGFibGU+KGdsb2JhbERhdGEuaGVhcCkp
IE5hdGl2ZUV4ZWN1dGFibGUoZ2xvYmFsRGF0YSwgSklUQ29kZTo6SG9zdEZ1bmN0aW9uKGNhbGxU
aHVuayksIGZ1bmN0aW9uLCBKSVRDb2RlOjpIb3N0RnVuY3Rpb24oY29uc3RydWN0VGh1bmspLCBj
b25zdHJ1Y3Rvcik7CisgICAgICAgICAgICBpZiAoIWNhbGxUaHVuaykgeworICAgICAgICAgICAg
ICAgIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxOYXRpdmVFeGVjdXRhYmxlPihnbG9i
YWxEYXRhLmhlYXApKSBOYXRpdmVFeGVjdXRhYmxlKGdsb2JhbERhdGEsIGZ1bmN0aW9uLCBjb25z
dHJ1Y3Rvcik7CisgICAgICAgICAgICAgICAgZXhlY3V0YWJsZS0+ZmluaXNoQ3JlYXRpb24oZ2xv
YmFsRGF0YSwgSklUQ29kZSgpLCBKSVRDb2RlKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8TmF0aXZlRXhlY3V0
YWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkgTmF0aXZlRXhlY3V0YWJsZShnbG9iYWxEYXRhLCBmdW5j
dGlvbiwgY29uc3RydWN0b3IpOworICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENy
ZWF0aW9uKGdsb2JhbERhdGEsIEpJVENvZGU6Okhvc3RGdW5jdGlvbihjYWxsVGh1bmspLCBKSVRD
b2RlOjpIb3N0RnVuY3Rpb24oY29uc3RydWN0VGh1bmspKTsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIHJldHVybiBleGVjdXRhYmxlOwogICAgICAgICB9CiAjZWxzZQogICAgICAgICBzdGF0
aWMgTmF0aXZlRXhlY3V0YWJsZSogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgTmF0
aXZlRnVuY3Rpb24gZnVuY3Rpb24sIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKQogICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8TmF0aXZlRXhlY3V0YWJs
ZT4oZ2xvYmFsRGF0YS5oZWFwKSkgTmF0aXZlRXhlY3V0YWJsZShnbG9iYWxEYXRhLCBmdW5jdGlv
biwgY29uc3RydWN0b3IpOworICAgICAgICAgICAgTmF0aXZlRXhlY3V0YWJsZSogZXhlY3V0YWJs
ZSA9IG5ldyAoYWxsb2NhdGVDZWxsPE5hdGl2ZUV4ZWN1dGFibGU+KGdsb2JhbERhdGEuaGVhcCkp
IE5hdGl2ZUV4ZWN1dGFibGUoZ2xvYmFsRGF0YSwgZnVuY3Rpb24sIGNvbnN0cnVjdG9yKTsKKyAg
ICAgICAgICAgIGV4ZWN1dGFibGUtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOworICAgICAg
ICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CiAgICAgICAgIH0KICNlbmRpZgogCkBAIC0yMTEsMTIg
KzIxNiwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAKICAgICBwcml2YXRlOgogI2lmIEVOQUJMRShK
SVQpCi0gICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
SVRDb2RlIGNhbGxUaHVuaywgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIEpJVENvZGUgY29uc3Ry
dWN0VGh1bmssIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKQorICAgICAgICBOYXRpdmVFeGVj
dXRhYmxlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24s
IE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yKQogICAgICAgICAgICAgOiBFeGVjdXRhYmxlQmFz
ZShnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLm5hdGl2ZUV4ZWN1dGFibGVTdHJ1Y3R1cmUuZ2V0KCks
IE5VTV9QQVJBTUVURVJTX0lTX0hPU1QpCiAgICAgICAgICAgICAsIG1fZnVuY3Rpb24oZnVuY3Rp
b24pCiAgICAgICAgICAgICAsIG1fY29uc3RydWN0b3IoY29uc3RydWN0b3IpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGNhbGxUaHVuaywgY29uc3Ry
dWN0VGh1bmspOwogICAgICAgICB9CiAjZWxzZQogICAgICAgICBOYXRpdmVFeGVjdXRhYmxlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIE5hdGl2ZUZ1
bmN0aW9uIGNvbnN0cnVjdG9yKQpAQCAtMjI0LDcgKzIyOCw2IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICAgICAgLCBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQogICAgICAgICAgICAgLCBtX2NvbnN0
cnVjdG9yKGNvbnN0cnVjdG9yKQogICAgICAgICB7Ci0gICAgICAgICAgICBmaW5pc2hDcmVhdGlv
bihnbG9iYWxEYXRhKTsKICAgICAgICAgfQogI2VuZGlmCiAKQEAgLTMxNyw2ICszMjAsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIEV2YWxFeGVjdXRhYmxlKiBjcmVhdGUoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJvb2wgaXNJblN0cmljdENv
bnRleHQpIAogICAgICAgICB7CiAgICAgICAgICAgICBFdmFsRXhlY3V0YWJsZSogZXhlY3V0YWJs
ZSA9IG5ldyAoYWxsb2NhdGVDZWxsPEV2YWxFeGVjdXRhYmxlPigqZXhlYy0+aGVhcCgpKSkgRXZh
bEV4ZWN1dGFibGUoZXhlYywgc291cmNlLCBpc0luU3RyaWN0Q29udGV4dCk7CisgICAgICAgICAg
ICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOwogICAgICAg
ICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CiAgICAgICAgIH0KIApAQCAtMzU0LDYgKzM1OCw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgUHJvZ3JhbUV4ZWN1dGFibGUqIGNyZWF0
ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSkKICAgICAgICAgewog
ICAgICAgICAgICAgUHJvZ3JhbUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRl
Q2VsbDxQcm9ncmFtRXhlY3V0YWJsZT4oKmV4ZWMtPmhlYXAoKSkpIFByb2dyYW1FeGVjdXRhYmxl
KGV4ZWMsIHNvdXJjZSk7CisgICAgICAgICAgICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlvbihl
eGVjLT5nbG9iYWxEYXRhKCkpOwogICAgICAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CiAgICAg
ICAgIH0KIApAQCAtNDEyLDEzICs0MTcsMTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAg
c3RhdGljIEZ1bmN0aW9uRXhlY3V0YWJsZSogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBib29sIGZvcmNlVXNl
c0FyZ3VtZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzLCBib29sIGlzSW5TdHJp
Y3RDb250ZXh0LCBpbnQgZmlyc3RMaW5lLCBpbnQgbGFzdExpbmUpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2NhdGVDZWxs
PEZ1bmN0aW9uRXhlY3V0YWJsZT4oKmV4ZWMtPmhlYXAoKSkpIEZ1bmN0aW9uRXhlY3V0YWJsZShl
eGVjLCBuYW1lLCBzb3VyY2UsIGZvcmNlVXNlc0FyZ3VtZW50cywgcGFyYW1ldGVycywgaXNJblN0
cmljdENvbnRleHQsIGZpcnN0TGluZSwgbGFzdExpbmUpOworICAgICAgICAgICAgRnVuY3Rpb25F
eGVjdXRhYmxlKiBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8RnVuY3Rpb25FeGVjdXRh
YmxlPigqZXhlYy0+aGVhcCgpKSkgRnVuY3Rpb25FeGVjdXRhYmxlKGV4ZWMsIG5hbWUsIHNvdXJj
ZSwgZm9yY2VVc2VzQXJndW1lbnRzLCBwYXJhbWV0ZXJzLCBpc0luU3RyaWN0Q29udGV4dCk7Cisg
ICAgICAgICAgICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCks
IG5hbWUsIGZpcnN0TGluZSwgbGFzdExpbmUpOwogICAgICAgICAgICAgcmV0dXJuIGV4ZWN1dGFi
bGU7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgRnVuY3Rpb25FeGVjdXRhYmxlKiBjcmVh
dGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25z
dCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBh
cmFtZXRlcnMqIHBhcmFtZXRlcnMsIGJvb2wgaXNJblN0cmljdENvbnRleHQsIGludCBmaXJzdExp
bmUsIGludCBsYXN0TGluZSkKICAgICAgICAgewotICAgICAgICAgICAgRnVuY3Rpb25FeGVjdXRh
YmxlKiBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8RnVuY3Rpb25FeGVjdXRhYmxlPihn
bG9iYWxEYXRhLmhlYXApKSBGdW5jdGlvbkV4ZWN1dGFibGUoZ2xvYmFsRGF0YSwgbmFtZSwgc291
cmNlLCBmb3JjZVVzZXNBcmd1bWVudHMsIHBhcmFtZXRlcnMsIGlzSW5TdHJpY3RDb250ZXh0LCBm
aXJzdExpbmUsIGxhc3RMaW5lKTsKKyAgICAgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhl
Y3V0YWJsZSA9IG5ldyAoYWxsb2NhdGVDZWxsPEZ1bmN0aW9uRXhlY3V0YWJsZT4oZ2xvYmFsRGF0
YS5oZWFwKSkgRnVuY3Rpb25FeGVjdXRhYmxlKGdsb2JhbERhdGEsIG5hbWUsIHNvdXJjZSwgZm9y
Y2VVc2VzQXJndW1lbnRzLCBwYXJhbWV0ZXJzLCBpc0luU3RyaWN0Q29udGV4dCk7CisgICAgICAg
ICAgICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBuYW1lLCBmaXJzdExp
bmUsIGxhc3RMaW5lKTsKICAgICAgICAgICAgIHJldHVybiBleGVjdXRhYmxlOwogICAgICAgICB9
CiAKQEAgLTUzOSw4ICs1NDYsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKEpTR2xvYmFsRGF0YSYsIGNvbnN0
IElkZW50aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmLCBib29sIGZvcmNlVXNlc0FyZ3Vt
ZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJzKiwgYm9vbCwgaW50IGZpcnN0TGluZSwgaW50IGxhc3RM
aW5lKTsKLSAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmLCBib29sIGZvcmNlVXNlc0FyZ3VtZW50cywg
RnVuY3Rpb25QYXJhbWV0ZXJzKiwgYm9vbCwgaW50IGZpcnN0TGluZSwgaW50IGxhc3RMaW5lKTsK
KyAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKEpTR2xvYmFsRGF0YSYsIGNvbnN0IElkZW50aWZp
ZXImIG5hbWUsIGNvbnN0IFNvdXJjZUNvZGUmLCBib29sIGZvcmNlVXNlc0FyZ3VtZW50cywgRnVu
Y3Rpb25QYXJhbWV0ZXJzKiwgYm9vbCk7CisgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZShFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25zdCBTb3VyY2VDb2RlJiwgYm9vbCBm
b3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0aW9uUGFyYW1ldGVycyosIGJvb2wpOwogCiAgICAgICAg
IEpTT2JqZWN0KiBjb21waWxlRm9yQ2FsbEludGVybmFsKEV4ZWNTdGF0ZSosIFNjb3BlQ2hhaW5O
b2RlKiwgRXhlY1N0YXRlKiBjYWxsZWVBcmdzRXhlYyk7CiAgICAgICAgIEpTT2JqZWN0KiBjb21w
aWxlRm9yQ29uc3RydWN0SW50ZXJuYWwoRXhlY1N0YXRlKiwgU2NvcGVDaGFpbk5vZGUqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVybmFsRnVuY3Rpb24u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAK
aW5kZXggYmNhMTc0NzEzMmQ0Yzk3MzE3ZDU3Y2Q4MGU0OTFkNDg2MjhhY2U5MC4uMDdjMGY3ZjVi
ZjY1YTNlNzU2YjUxYzI0MDM3Y2FjYzMzYzQyZTYyMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50ZXJuYWxGdW5jdGlvbi5jcHAKQEAgLTQ0LDcgKzQ0LDE0IEBA
IEludGVybmFsRnVuY3Rpb246OkludGVybmFsRnVuY3Rpb24oVlB0clN0ZWFsaW5nSGFja1R5cGUp
CiBJbnRlcm5hbEZ1bmN0aW9uOjpJbnRlcm5hbEZ1bmN0aW9uKEpTR2xvYmFsRGF0YSogZ2xvYmFs
RGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IGNvbnN0IElkZW50aWZpZXImIG5hbWUpCiAgICAgOiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Qo
Z2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiB7Ci0gICAgY29uc3RydWN0b3JCb2R5KCpnbG9iYWxE
YXRhLCBuYW1lKTsKKyAgICBmaW5pc2hDcmVhdGlvbigqZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0
LCBuYW1lKTsKK30KKwordm9pZCBJbnRlcm5hbEZ1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbihKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0
IElkZW50aWZpZXImIG5hbWUpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0
YSwgZ2xvYmFsT2JqZWN0KTsKKyAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOworICAgIHB1
dERpcmVjdChnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzU3Ry
aW5nKCZnbG9iYWxEYXRhLCBuYW1lLmlzTnVsbCgpID8gIiIgOiBuYW1lLnVzdHJpbmcoKSksIERv
bnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsKIH0KIAogY29uc3QgVVN0cmluZyYgSW50
ZXJuYWxGdW5jdGlvbjo6bmFtZShFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRlcm5hbEZ1bmN0aW9uLmgKaW5kZXggMTQzNmYzMmQ2ZTdhN2Rl
MjhmNTRmOTEwOTAzYmQxZjc4MTA3MGU2NS4uNjA2N2JlOGRiZmRkYjM3Y2E0NjA3OTgxYTczMDhh
NTgzODA2ODVjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
ZXJuYWxGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGVy
bmFsRnVuY3Rpb24uaApAQCAtNTQsMTEgKzU0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAg
ICAgSW50ZXJuYWxGdW5jdGlvbihKU0dsb2JhbERhdGEqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZSosIGNvbnN0IElkZW50aWZpZXImKTsKIAotICAgICAgICB2b2lkIGNvbnN0cnVjdG9yQm9k
eShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXImIG5hbWUpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgICAgICAg
ICBwdXREaXJlY3QoZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBq
c1N0cmluZygmZ2xvYmFsRGF0YSwgbmFtZS5pc051bGwoKSA/ICIiIDogbmFtZS51c3RyaW5nKCkp
LCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBEb250RW51bSk7Ci0gICAgICAgIH0KKyAgICAgICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBKU0dsb2JhbE9iamVjdCosIGNvbnN0
IElkZW50aWZpZXImIG5hbWUpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBDYWxs
VHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCmluZGV4IDUwMjg5MDJjOTkyZDE0YTEyNTRhNzNh
MGRkYzY5Yzk5ZjdmYTBiNjIuLjVjOTlkN2E2NTQzOGQxY2U3OWRjN2NiNTA1YTg1NzdhM2Y2OTdi
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlv
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNw
cApAQCAtNDYsNiArNDYsMTIgQEAgSlNBY3RpdmF0aW9uOjpKU0FjdGl2YXRpb24oQ2FsbEZyYW1l
KiBjYWxsRnJhbWUsIEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVuY3Rpb25FeGUKICAgICAsIG1fcmVx
dWlyZXNEeW5hbWljQ2hlY2tzKGZ1bmN0aW9uRXhlY3V0YWJsZS0+dXNlc0V2YWwoKSkKICAgICAs
IG1fYXJndW1lbnRzUmVnaXN0ZXIoZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRCeXRlY29k
ZSgpLmFyZ3VtZW50c1JlZ2lzdGVyKCkpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oY2FsbEZyYW1l
KTsKK30KKwordm9pZCBKU0FjdGl2YXRpb246OmZpbmlzaENyZWF0aW9uKENhbGxGcmFtZSogY2Fs
bEZyYW1lKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGNhbGxGcmFtZS0+Z2xvYmFsRGF0
YSgpKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogCiAgICAgLy8gV2UgaGF2ZSB0
byBtYW51YWxseSByZWYgYW5kIGRlcmVmIHRoZSBzeW1ib2wgdGFibGUgYXMgSlNWYXJpYWJsZU9i
amVjdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0
aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAppbmRl
eCBmMTU5MWFhYTE4MGVhZTEzZjM1ZjU5MjA2NDg0MjA5YmIzZjhlMGFkLi5kYTJlNDY1NWUwNjk0
ZjdjNTkzZDNhZjE3MWQ2MDBmZDA3MDY2MjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0FjdGl2YXRpb24uaApAQCAtNzcsNiArNzcsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90bykgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5v
bnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsgfQogCiAgICAgcHJvdGVjdGVkOgorICAgICAgICB2
b2lkIGZpbmlzaENyZWF0aW9uKENhbGxGcmFtZSopOwogICAgICAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgU3RydWN0dXJlRmxhZ3MgPSBJc0Vudmlyb25tZW50UmVjb3JkIHwgT3ZlcnJpZGVzR2V0
T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFBy
b3BlcnR5TmFtZXMgfCBKU1ZhcmlhYmxlT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCmluZGV4IDE4
NWQ3YWViNmJmYzQ1MjkxNmJiZmViYjE3MTA0ZGIwNzY3NWQ5MzIuLjRiMGNhYTIyMTY4MmY2YzY4
YTYwNWU4YWY5ZTU0MDY2NThjMDMyY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQXJyYXkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQXJyYXkuY3BwCkBAIC0xMzQsMTkgKzEzNCw2IEBAIEpTQXJyYXk6OkpTQXJyYXkoVlB0clN0
ZWFsaW5nSGFja1R5cGUpCiBKU0FycmF5OjpKU0FycmF5KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERh
dGEsIHN0cnVjdHVyZSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKLX0KLQot
SlNBcnJheTo6SlNBcnJheShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCB1bnNpZ25lZCBpbml0aWFsTGVuZ3RoLCBBcnJheUNyZWF0aW9uTW9kZSBjcmVhdGlv
bk1vZGUpCi0gICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKLXsK
LSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBpbml0aWFsTGVuZ3RoLCBjcmVhdGlvbk1v
ZGUpOwotfQotCi1KU0FycmF5OjpKU0FycmF5KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IEFyZ0xpc3QmIGxpc3QpCi0gICAgOiBKU05vbkZpbmFs
T2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKLXsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9i
YWxEYXRhLCBsaXN0KTsKIH0KIAogdm9pZCBKU0FycmF5OjpmaW5pc2hDcmVhdGlvbihKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgK
aW5kZXggZThlMWZhOTJkNWZkNDAxOTMxZTc4MjM1ZDMyNjU0MTM5ZDY2ZGZlNi4uYmEyZTE3Y2Vh
Yzk5OGYwM2Q3Y2FiMDU5YjM5OWQ4NDljMTM1Mjk0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQXJyYXkuaApAQCAtNjIsOCArNjIsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAg
IHByb3RlY3RlZDoKICAgICAgICAgZXhwbGljaXQgSlNBcnJheShKU0dsb2JhbERhdGEmLCBTdHJ1
Y3R1cmUqKTsKLSAgICAgICAgSlNBcnJheShKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqLCB1bnNp
Z25lZCBpbml0aWFsTGVuZ3RoLCBBcnJheUNyZWF0aW9uTW9kZSk7Ci0gICAgICAgIEpTQXJyYXko
SlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiwgY29uc3QgQXJnTGlzdCYgaW5pdGlhbFZhbHVlcyk7
CiAKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmKTsKICAgICAgICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCB1bnNpZ25lZCBpbml0aWFsTGVuZ3Ro
LCBBcnJheUNyZWF0aW9uTW9kZSk7CkBAIC03NywxOSArNzUsMjUgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKICAgICAgICAgc3RhdGljIEpTQXJyYXkqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
bmV3IChhbGxvY2F0ZUNlbGw8SlNBcnJheT4oZ2xvYmFsRGF0YS5oZWFwKSkgSlNBcnJheShnbG9i
YWxEYXRhLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgSlNBcnJheSogYXJyYXkgPSBuZXcgKGFs
bG9jYXRlQ2VsbDxKU0FycmF5PihnbG9iYWxEYXRhLmhlYXApKSBKU0FycmF5KGdsb2JhbERhdGEs
IHN0cnVjdHVyZSk7CisgICAgICAgICAgICBhcnJheS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0
YSk7CisgICAgICAgICAgICByZXR1cm4gYXJyYXk7CiAgICAgICAgIH0KLSAgICAgICAgCisKICAg
ICAgICAgc3RhdGljIEpTQXJyYXkqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0
cnVjdHVyZSogc3RydWN0dXJlLCB1bnNpZ25lZCBpbml0aWFsTGVuZ3RoLCBBcnJheUNyZWF0aW9u
TW9kZSBjcmVhdGVNb2RlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxv
Y2F0ZUNlbGw8SlNBcnJheT4oZ2xvYmFsRGF0YS5oZWFwKSkgSlNBcnJheShnbG9iYWxEYXRhLCBz
dHJ1Y3R1cmUsIGluaXRpYWxMZW5ndGgsIGNyZWF0ZU1vZGUpOworICAgICAgICAgICAgSlNBcnJh
eSogYXJyYXkgPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0FycmF5PihnbG9iYWxEYXRhLmhlYXApKSBK
U0FycmF5KGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7CisgICAgICAgICAgICBhcnJheS0+ZmluaXNo
Q3JlYXRpb24oZ2xvYmFsRGF0YSwgaW5pdGlhbExlbmd0aCwgY3JlYXRlTW9kZSk7CisgICAgICAg
ICAgICByZXR1cm4gYXJyYXk7CiAgICAgICAgIH0KLSAgICAgICAgCisKICAgICAgICAgc3RhdGlj
IEpTQXJyYXkqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBjb25zdCBBcmdMaXN0JiBpbml0aWFsVmFsdWVzKQogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SlNBcnJheT4oZ2xvYmFsRGF0YS5oZWFwKSkg
SlNBcnJheShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUsIGluaXRpYWxWYWx1ZXMpOworICAgICAgICAg
ICAgSlNBcnJheSogYXJyYXkgPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0FycmF5PihnbG9iYWxEYXRh
LmhlYXApKSBKU0FycmF5KGdsb2JhbERhdGEsIHN0cnVjdHVyZSk7CisgICAgICAgICAgICBhcnJh
eS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgaW5pdGlhbFZhbHVlcyk7CisgICAgICAgICAg
ICByZXR1cm4gYXJyYXk7CiAgICAgICAgIH0KLSAgICAgICAgCisKICAgICAgICAgdmlydHVhbCBi
b29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCmluZGV4IGJiZTc2MzJhMmUy
MWEzOTk3ZDQ3MzVlZjY2Y2QxZDNmNzY3MWEwNzkuLjRlZTY1NGMwZjMyOTEzM2UxNDlhZDljZWRm
NTJjZTkyY2UxZDVhMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQnl0ZUFycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5
dGVBcnJheS5jcHAKQEAgLTM5LDE0ICszOSw4IEBAIEpTQnl0ZUFycmF5OjpKU0J5dGVBcnJheShF
eGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBCeXRlQXJyYXkqIHN0b3JhCiAg
ICAgOiBKU05vbkZpbmFsT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogICAg
ICwgbV9zdG9yYWdlKHN0b3JhZ2UpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZXhlYyk7CiB9CiAg
ICAgICAgIAotSlNCeXRlQXJyYXkqIEpTQnl0ZUFycmF5OjpjcmVhdGUoRXhlY1N0YXRlKiBleGVj
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQnl0ZUFycmF5KiBzdG9yYWdlKQotewotICAgIHJldHVy
biBuZXcgKGFsbG9jYXRlQ2VsbDxKU0J5dGVBcnJheT4oKmV4ZWMtPmhlYXAoKSkpIEpTQnl0ZUFy
cmF5KGV4ZWMsIHN0cnVjdHVyZSwgc3RvcmFnZSk7Ci19Ci0KICNpZiAhQVNTRVJUX0RJU0FCTEVE
CiBKU0J5dGVBcnJheTo6fkpTQnl0ZUFycmF5KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0J5dGVBcnJheS5oCmluZGV4IDI4ZWJkN2QwZjU4ZWNiNDRhYTJiMTZlNzA0NmQ0
OGQ5MzI0YWUxMWQuLmIyMWQzNzEyNTQxZjdiOTRlZTNhOTNkNDdhM2VkMjliZTYzNjdhMzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaApAQCAtNzksNyAr
NzksMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTQnl0ZUFycmF5KEV4ZWNTdGF0ZSos
IFN0cnVjdHVyZSosIEJ5dGVBcnJheSogc3RvcmFnZSk7CiAgICAgICAgIAogICAgIHB1YmxpYzoK
LSAgICAgICAgc3RhdGljIEpTQnl0ZUFycmF5KiBjcmVhdGUoRXhlY1N0YXRlKiwgU3RydWN0dXJl
KiwgQnl0ZUFycmF5Kik7CisgICAgICAgIHN0YXRpYyBKU0J5dGVBcnJheSogY3JlYXRlKEV4ZWNT
dGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEJ5dGVBcnJheSogc3RvcmFnZSkKKyAg
ICAgICAgeworICAgICAgICAgICAgSlNCeXRlQXJyYXkqIGFycmF5ID0gbmV3IChhbGxvY2F0ZUNl
bGw8SlNCeXRlQXJyYXk+KCpleGVjLT5oZWFwKCkpKSBKU0J5dGVBcnJheShleGVjLCBzdHJ1Y3R1
cmUsIHN0b3JhZ2UpOworICAgICAgICAgICAgYXJyYXktPmZpbmlzaENyZWF0aW9uKGV4ZWMpOwor
ICAgICAgICAgICAgcmV0dXJuIGFycmF5OworICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIFN0
cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYsIEpTVmFsdWUgcHJvdG90eXBl
LCBjb25zdCBKU0M6OkNsYXNzSW5mbyogPSAmc19kZWZhdWx0SW5mbyk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAKaW5kZXggNDk5YWViNmQyNzQ4YzI5
NDA4OTBiYzJiYmM3ZGQ4ZGE4NjRlYmVlZC4uZGFmNGNhOTU4Mjk3ZjMxODdjN2E2Y2NjY2Y0Mzk2
MDU4MGM4ZWNkZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNG
dW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlv
bi5jcHAKQEAgLTYxLDIxICs2MSwxMSBAQCBKU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKFZQdHJTdGVh
bGluZ0hhY2tUeXBlKQogewogfQogCi1KU0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSog
ZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIE5hdGl2ZUV4ZWN1dGFibGUqIHRo
dW5rKQorSlNGdW5jdGlvbjo6SlNGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogQmFzZShnbG9i
YWxPYmplY3QsIHN0cnVjdHVyZSkKICAgICAsIG1fZXhlY3V0YWJsZSgpCiAgICAgLCBtX3Njb3Bl
Q2hhaW4oZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBnbG9iYWxPYmplY3QtPmdsb2JhbFNjb3Bl
Q2hhaW4oKSkKIHsKLSAgICBjb25zdHJ1Y3RvckJvZHkoZXhlYywgbGVuZ3RoLCBuYW1lLCB0aHVu
ayk7Ci19Ci0KLUpTRnVuY3Rpb246OkpTRnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50IGxlbmd0aCwg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSwgTmF0aXZlRnVuY3Rpb24gZnVuYykKLSAgICA6IEJhc2Uo
Z2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCi0gICAgLCBtX2V4ZWN1dGFibGUoKQotICAgICwgbV9z
Y29wZUNoYWluKGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgZ2xvYmFsT2JqZWN0LT5nbG9iYWxT
Y29wZUNoYWluKCkpCi17Ci0gICAgLy8gQ2FuJ3QgZG8gdGhpcyBkdXJpbmcgaW5pdGlhbGl6YXRp
b24gYmVjYXVzZSBnZXRIb3N0RnVuY3Rpb24gbWlnaHQgZG8gYSBHQyBhbGxvY2F0aW9uLgotICAg
IGNvbnN0cnVjdG9yQm9keShleGVjLCBsZW5ndGgsIG5hbWUsICBleGVjLT5nbG9iYWxEYXRhKCku
Z2V0SG9zdEZ1bmN0aW9uKGZ1bmMpKTsKIH0KIAogSlNGdW5jdGlvbjo6SlNGdW5jdGlvbihFeGVj
U3RhdGUqIGV4ZWMsIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgU2NvcGVDaGFpbk5v
ZGUqIHNjb3BlQ2hhaW5Ob2RlKQpAQCAtODMsMTkgKzczLDI1IEBAIEpTRnVuY3Rpb246OkpTRnVu
Y3Rpb24oRXhlY1N0YXRlKiBleGVjLCBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIFNj
b3BlQ2hhCiAgICAgLCBtX2V4ZWN1dGFibGUoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBleGVj
dXRhYmxlKQogICAgICwgbV9zY29wZUNoYWluKGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcywgc2Nv
cGVDaGFpbk5vZGUpCiB7Ci0gICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKLSAgICBzZXRT
dHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzY29wZUNoYWluTm9kZS0+Z2xvYmFsT2JqZWN0
LT5uYW1lZEZ1bmN0aW9uU3RydWN0dXJlKCkpOwotICAgIHB1dERpcmVjdE9mZnNldChleGVjLT5n
bG9iYWxEYXRhKCksIHNjb3BlQ2hhaW5Ob2RlLT5nbG9iYWxPYmplY3QtPmZ1bmN0aW9uTmFtZU9m
ZnNldCgpLCBleGVjdXRhYmxlLT5uYW1lVmFsdWUoKSk7CiB9CiAKLWlubGluZSB2b2lkIEpTRnVu
Y3Rpb246OmNvbnN0cnVjdG9yQm9keShFeGVjU3RhdGUqIGV4ZWMsIGludCBsZW5ndGgsIGNvbnN0
IElkZW50aWZpZXImIG5hbWUsIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlKQordm9pZCBKU0Z1
bmN0aW9uOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEV4ZWN1dGFi
bGVCYXNlKiBleGVjdXRhYmxlKQogeworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9i
amVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChpbmhlcml0cygm
c19pbmZvKSk7CiAgICAgbV9leGVjdXRhYmxlLnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMs
IGV4ZWN1dGFibGUpOwogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmds
b2JhbERhdGEoKS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBqc1N0cmluZyhleGVjLCBuYW1lLmlzTnVs
bCgpID8gIiIgOiBuYW1lLnVzdHJpbmcoKSksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRF
bnVtKTsKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5h
bWVzKCkubGVuZ3RoLCBqc051bWJlcihsZW5ndGgpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBE
b250RW51bSk7CiB9CiAKK3ZvaWQgSlNGdW5jdGlvbjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBGdW5jdGlvbkV4ZWN1dGFibGUq
IGV4ZWN1dGFibGUsIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluTm9kZSkKK3sKKyAgICBCYXNl
OjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0
KTsKKyAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOworICAgIHNldFN0cnVjdHVyZShleGVj
LT5nbG9iYWxEYXRhKCksIHNjb3BlQ2hhaW5Ob2RlLT5nbG9iYWxPYmplY3QtPm5hbWVkRnVuY3Rp
b25TdHJ1Y3R1cmUoKSk7CisgICAgcHV0RGlyZWN0T2Zmc2V0KGV4ZWMtPmdsb2JhbERhdGEoKSwg
c2NvcGVDaGFpbk5vZGUtPmdsb2JhbE9iamVjdC0+ZnVuY3Rpb25OYW1lT2Zmc2V0KCksIGV4ZWN1
dGFibGUtPm5hbWVWYWx1ZSgpKTsKK30KKwogSlNGdW5jdGlvbjo6fkpTRnVuY3Rpb24oKQogewog
ICAgIEFTU0VSVCh2cHRyKCkgPT0gSlNHbG9iYWxEYXRhOjpqc0Z1bmN0aW9uVlB0cik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKaW5kZXggOGI3M2IwYmUyZjJh
Mjk5N2Q5MDkwNjAxMjk3MzBkMGRmNTBhMGRkNy4uNTU5M2I4YWFiYjcwMGU4ZDk1MTg4OTU2ZTdm
NmIyYTM3MmUwY2QyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rp
b24uaApAQCAtNDYsMjQgKzQ2LDMzIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBmcmllbmQg
Y2xhc3MgREZHOjpKSVRDb2RlR2VuZXJhdG9yOwogICAgICAgICBmcmllbmQgY2xhc3MgSlNHbG9i
YWxEYXRhOwogCi0gICAgICAgIEpTRnVuY3Rpb24oRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3Qq
LCBTdHJ1Y3R1cmUqLCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiwgTmF0aXZlRnVuY3Rp
b24pOwotICAgICAgICBKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlKiwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYsIE5hdGl2ZUV4ZWN1dGFibGUq
KTsKKyAgICAgICAgSlNGdW5jdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZSopOwogICAgICAgICBKU0Z1bmN0aW9uKEV4ZWNTdGF0ZSosIEZ1bmN0aW9uRXhlY3V0YWJs
ZSosIFNjb3BlQ2hhaW5Ob2RlKik7CiAgICAgICAgIAogICAgIHB1YmxpYzoKICAgICAgICAgdHlw
ZWRlZiBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QgQmFzZTsKIAotICAgICAgICBzdGF0aWMgSlNG
dW5jdGlvbiogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXIm
IGlkZW50LCBOYXRpdmVGdW5jdGlvbiBuYXRpdmVGdW5jKQorICAgICAgICBzdGF0aWMgSlNGdW5j
dGlvbiogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGludCBsZW5ndGgsIGNvbnN0IElkZW50aWZpZXImIG5h
bWUsIE5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmN0aW9uKQogICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SlNGdW5jdGlvbj4oKmV4ZWMtPmhlYXAoKSkpIEpT
RnVuY3Rpb24oZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGxlbmd0aCwgaWRlbnQsIG5h
dGl2ZUZ1bmMpOworICAgICAgICAgICAgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUgPSAoRXhl
Y3V0YWJsZUJhc2UqKWV4ZWMtPmdsb2JhbERhdGEoKS5nZXRIb3N0RnVuY3Rpb24obmF0aXZlRnVu
Y3Rpb24pOworICAgICAgICAgICAgSlNGdW5jdGlvbiogZnVuY3Rpb24gPSBuZXcgKGFsbG9jYXRl
Q2VsbDxKU0Z1bmN0aW9uPigqZXhlYy0+aGVhcCgpKSkgSlNGdW5jdGlvbihleGVjLCBnbG9iYWxP
YmplY3QsIHN0cnVjdHVyZSk7CisgICAgICAgICAgICAvLyBDYW4ndCBkbyB0aGlzIGR1cmluZyBp
bml0aWFsaXphdGlvbiBiZWNhdXNlIGdldEhvc3RGdW5jdGlvbiBtaWdodCBkbyBhIEdDIGFsbG9j
YXRpb24uCisgICAgICAgICAgICBmdW5jdGlvbi0+ZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFs
T2JqZWN0LCBsZW5ndGgsIG5hbWUsIGV4ZWN1dGFibGUpOworICAgICAgICAgICAgcmV0dXJuIGZ1
bmN0aW9uOwogICAgICAgICB9Ci0gICAgICAgIHN0YXRpYyBKU0Z1bmN0aW9uKiBjcmVhdGUoRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIE5hdGl2ZUV4ZWN1
dGFibGUqIG5hdGl2ZUV4ZWMpCisKKyAgICAgICAgc3RhdGljIEpTRnVuY3Rpb24qIGNyZWF0ZShF
eGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSog
c3RydWN0dXJlLCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBOYXRpdmVFeGVj
dXRhYmxlKiBuYXRpdmVFeGVjdXRhYmxlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
bmV3IChhbGxvY2F0ZUNlbGw8SlNGdW5jdGlvbj4oKmV4ZWMtPmhlYXAoKSkpIEpTRnVuY3Rpb24o
ZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGxlbmd0aCwgaWRlbnQsIG5hdGl2ZUV4ZWMp
OworICAgICAgICAgICAgSlNGdW5jdGlvbiogZnVuY3Rpb24gPSBuZXcgKGFsbG9jYXRlQ2VsbDxK
U0Z1bmN0aW9uPigqZXhlYy0+aGVhcCgpKSkgSlNGdW5jdGlvbihleGVjLCBnbG9iYWxPYmplY3Qs
IHN0cnVjdHVyZSk7CisgICAgICAgICAgICBmdW5jdGlvbi0+ZmluaXNoQ3JlYXRpb24oZXhlYywg
Z2xvYmFsT2JqZWN0LCBsZW5ndGgsIG5hbWUsIChFeGVjdXRhYmxlQmFzZSopbmF0aXZlRXhlY3V0
YWJsZSk7CisgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb247CiAgICAgICAgIH0KLSAgICAgICAg
c3RhdGljIEpTRnVuY3Rpb24qIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEZ1bmN0aW9uRXhlY3V0
YWJsZSogZnVuY0V4ZWMsIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluKQorCisgICAgICAgIHN0
YXRpYyBKU0Z1bmN0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBGdW5jdGlvbkV4ZWN1dGFi
bGUqIGV4ZWN1dGFibGUsIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluKQogICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SlNGdW5jdGlvbj4oKmV4ZWMtPmhl
YXAoKSkpIEpTRnVuY3Rpb24oZXhlYywgZnVuY0V4ZWMsIHNjb3BlQ2hhaW4pOworICAgICAgICAg
ICAgSlNGdW5jdGlvbiogZnVuY3Rpb24gPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0Z1bmN0aW9uPigq
ZXhlYy0+aGVhcCgpKSkgSlNGdW5jdGlvbihleGVjLCBleGVjdXRhYmxlLCBzY29wZUNoYWluKTsK
KyAgICAgICAgICAgIGZ1bmN0aW9uLT5maW5pc2hDcmVhdGlvbihleGVjLCBzY29wZUNoYWluLT5n
bG9iYWxPYmplY3QuZ2V0KCksIGV4ZWN1dGFibGUsIHNjb3BlQ2hhaW4pOworICAgICAgICAgICAg
cmV0dXJuIGZ1bmN0aW9uOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIH5K
U0Z1bmN0aW9uKCk7CkBAIC0xMjMsNyArMTMyLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHJv
dGVjdGVkOgogICAgICAgICBjb25zdCBzdGF0aWMgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBPdmVy
cmlkZXNWaXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEpTT2JqZWN0
OjpTdHJ1Y3R1cmVGbGFnczsKIAotICAgICAgICB2b2lkIGNvbnN0cnVjdG9yQm9keShFeGVjU3Rh
dGUqLCBpbnQgbGVuZ3RoLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBFeGVjdXRhYmxlQmFzZSop
OworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0
KiwgaW50IGxlbmd0aCwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgRXhlY3V0YWJsZUJhc2UqKTsK
KyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCos
IEZ1bmN0aW9uRXhlY3V0YWJsZSosIFNjb3BlQ2hhaW5Ob2RlKik7CiAKICAgICBwcml2YXRlOgog
ICAgICAgICBleHBsaWNpdCBKU0Z1bmN0aW9uKFZQdHJTdGVhbGluZ0hhY2tUeXBlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IGMyMzBk
NzAyYjUzZmQxN2U1ZTVkYmUyMTQyOWIwMThmOTExMDJkMWMuLjg1YzQyOTY2MzFhZTNlNjNkOTM4
MDM1ZWE3MDgwMDRiZmNlZTA3MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMTU5LDcgKzE1OSw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICAgICAgLCBtX3dlYWtSYW5kb20oc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHJhbmRvbU51
bWJlcigpICogKHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSArIDEuMCkpKQog
ICAgICAgICAgICAgLCBtX2V2YWxFbmFibGVkKHRydWUpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IGNvbnN0cnVjdG9yQm9keSh0aGlzKTsKKyAgICAgICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2Jh
bERhdGEsIHRoaXMpOwogICAgICAgICB9CiAKICAgICAgICAgSlNHbG9iYWxPYmplY3QoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNPYmplY3QqIHRoaXNW
YWx1ZSkKQEAgLTE2OSwxMSArMTY5LDEyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAg
LCBtX3dlYWtSYW5kb20oc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHJhbmRvbU51bWJlcigpICogKHN0
ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSArIDEuMCkpKQogICAgICAgICAgICAg
LCBtX2V2YWxFbmFibGVkKHRydWUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGNvbnN0cnVjdG9y
Qm9keSh0aGlzVmFsdWUpOworICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwg
dGhpc1ZhbHVlKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgY29uc3RydWN0b3JCb2R5KEpT
T2JqZWN0KiB0aGlzVmFsdWUpCisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU09iamVjdCogdGhpc1ZhbHVlKQogICAgICAgICB7CisgICAgICAg
ICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICAgICAgICAgIENPTVBJ
TEVfQVNTRVJUKEpTR2xvYmFsT2JqZWN0OjpBbm9ueW1vdXNTbG90Q291bnQgPT0gMSwgSlNHbG9i
YWxPYmplY3RfaGFzX29ubHlfYV9zaW5nbGVfc2xvdCk7CiAgICAgICAgICAgICBwdXRUaGlzVG9B
bm9ueW1vdXNWYWx1ZSgwKTsKICAgICAgICAgICAgIGluaXQodGhpc1ZhbHVlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAppbmRleCA2N2ZkYTA1MGE2
Mjg4ZDcwYTk0Mjk4Y2UwMmE3MjZkODI4ZTIzMjFkLi4xMzFiYWE3YWYzMjEyNzNjN2RiZTAyMDE2
YzNmN2Y0MDNjNTkzNGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU05vdEFuT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNO
b3RBbk9iamVjdC5oCkBAIC00MSw3ICs0MSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBK
U05vdEFuT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIDogSlNOb25GaW5hbE9i
amVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmdsb2JhbERhdGEoKS5ub3RBbk9iamVjdFN0
cnVjdHVyZS5nZXQoKSkKICAgICAgICAgewotICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24oZXhl
Yy0+Z2xvYmFsRGF0YSgpKTsKICAgICAgICAgfQogICAgICAgICAKICAgICBwdWJsaWM6CkBAIC00
OSw3ICs0OCw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBKU05vdEFuT2Jq
ZWN0KiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gbmV3IChhbGxvY2F0ZUNlbGw8SlNOb3RBbk9iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIEpTTm90
QW5PYmplY3QoZXhlYyk7CisgICAgICAgICAgICBKU05vdEFuT2JqZWN0KiBvYmplY3QgPSBuZXcg
KGFsbG9jYXRlQ2VsbDxKU05vdEFuT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgSlNOb3RBbk9iamVj
dChleGVjKTsKKyAgICAgICAgICAgIG9iamVjdC0+ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFs
RGF0YSgpKTsKKyAgICAgICAgICAgIHJldHVybiBvYmplY3Q7CiAgICAgICAgIH0KIAogICAgICAg
ICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT05PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPTk9iamVjdC5jcHAKaW5kZXggMDViZGUyODE5YTA2ZjkxNDk0ODIwOWJlNDNkMzM2OGM5MDRl
MGYyOC4uMTczMTUyYjI5MTkzZGYyMDI0NTgxMjM3Njc2OGZiZDg5ZGU3MzYwYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKQEAgLTU2LDYgKzU2LDEy
IEBAIG5hbWVzcGFjZSBKU0MgewogSlNPTk9iamVjdDo6SlNPTk9iamVjdChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEpTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKIHsKKyAgICBmaW5pc2hDcmVh
dGlvbihnbG9iYWxPYmplY3QpOworfQorCit2b2lkIEpTT05PYmplY3Q6OmZpbmlzaENyZWF0aW9u
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRp
b24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CiAgICAgQVNTRVJU
KGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPTk9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPTk9iamVjdC5oCmluZGV4IDc3YmY0MzY5OTExYjZlYzQwYjMwYWNkODM0MjczZWRjMzk5MzVl
YWEuLjQ4MGU3NGJkYjgzNDkzNmJkMjlmNzJlNmFjZGUyNDYxN2RlNmE1ZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCiAg
ICAgcHJvdGVjdGVkOgorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0
Kik7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKIAogICAg
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdFdpdGhHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcAppbmRleCA4ODU1MzBmMTBmNzk5MDFkZmY2NDg0
M2E3NDM0MzA0ODhmNWY3YTRmLi44N2IzMjE5YzYzNGJmYTVlYjAyN2E2MzQzZjY1MTExNzQxN2I2
MTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdp
dGhHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0V2l0aEdsb2JhbE9iamVjdC5jcHAKQEAgLTMzLDEzICszMywxMSBAQCBuYW1lc3BhY2Ug
SlNDIHsKIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAg
IDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJl
KQogewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9i
YWxPYmplY3QpOwogfQogCi1KU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OkpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQorSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0
OjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3Ry
dWN0dXJlKQogewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCk7
CiB9CiAKIHZvaWQgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxP
YmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2Jh
bE9iamVjdC5oCmluZGV4IDEzMGUwN2Q2OTA1MmZkMjFmYjJhNzI2ZjEyMjgxN2M4YTc2ZmJjODgu
LjM3OTg0OGI2NTQzNjQ1NDkxYjcyYTQ1YWExY2E1N2M1NDFiMmUyNjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dC5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIEpTT2JqZWN0
V2l0aEdsb2JhbE9iamVjdChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwotICAgIEpTT2Jq
ZWN0V2l0aEdsb2JhbE9iamVjdChKU0dsb2JhbERhdGEmLCBKU0dsb2JhbE9iamVjdCosIFN0cnVj
dHVyZSopOworICAgIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChKU0dsb2JhbERhdGEmLCBTdHJ1
Y3R1cmUqKTsKIAogICAgIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChWUHRyU3RlYWxpbmdIYWNr
VHlwZSkKICAgICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KFZQdHJTdGVhbGluZ0hhY2spCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgK
aW5kZXggYjExOTNmZGJkZWZlZmFlMjFmZjVmNGNjNDMxZDM0MjQ5Y2U2YThhYy4uMjlhNGNhZTkx
NDdhNTc3MzJiOGJmYTgxMTgyNzg0OTEzOTNiZTFjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaApAQCAtMzQsOSArMzQsOSBA
QCBuYW1lc3BhY2UgSlNDewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBKU1ZhcmlhYmxl
T2JqZWN0IEJhc2U7CiAKLSAgICAgICAgc3RhdGljIEpTU3RhdGljU2NvcGVPYmplY3QqIGNyZWF0
ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBKU1ZhbHVlIHZhbHVl
LCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQorICAgICAgICBzdGF0aWMgSlNTdGF0aWNTY29wZU9iamVj
dCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwg
SlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcykKICAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEpTU3RhdGljU2NvcGVPYmplY3Q+KCpleGVjLT5o
ZWFwKCkpKSBKU1N0YXRpY1Njb3BlT2JqZWN0KGV4ZWMsIGlkZW50LCB2YWx1ZSwgYXR0cmlidXRl
cyk7CisgICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SlNTdGF0aWNTY29wZU9i
amVjdD4oKmV4ZWMtPmhlYXAoKSkpIEpTU3RhdGljU2NvcGVPYmplY3QoZXhlYywgaWRlbnRpZmll
ciwgdmFsdWUsIGF0dHJpYnV0ZXMpOwogICAgICAgICB9CiAKICAgICAgICAgdmlydHVhbCB2b2lk
IHZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImKTsKQEAgLTUwLDE0ICs1MCwxOSBAQCBuYW1lc3Bh
Y2UgSlNDewogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyB9CiAKICAgICBwcm90ZWN0ZWQ6Cisg
ICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQorICAg
ICAgICB7CisgICAgICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRh
KCkpOworICAgICAgICAgICAgbV9yZWdpc3RlclN0b3JlLnNldChleGVjLT5nbG9iYWxEYXRhKCks
IHRoaXMsIHZhbHVlKTsKKyAgICAgICAgICAgIHN5bWJvbFRhYmxlKCkuYWRkKGlkZW50aWZpZXIu
aW1wbCgpLCBTeW1ib2xUYWJsZUVudHJ5KC0xLCBhdHRyaWJ1dGVzKSk7CisgICAgICAgIH0KICAg
ICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSXNFbnZpcm9ubWVu
dFJlY29yZCB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc1Zpc2l0Q2hp
bGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNWYXJpYWJsZU9iamVjdDo6U3Ry
dWN0dXJlRmxhZ3M7CiAKICAgICBwcml2YXRlOgotICAgICAgICBKU1N0YXRpY1Njb3BlT2JqZWN0
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIEpTVmFsdWUgdmFsdWUs
IHVuc2lnbmVkIGF0dHJpYnV0ZXMpCisgICAgICAgIEpTU3RhdGljU2NvcGVPYmplY3QoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBKU1ZhbHVlIHZhbHVlLCB1
bnNpZ25lZCBhdHRyaWJ1dGVzKQogICAgICAgICAgICAgOiBKU1ZhcmlhYmxlT2JqZWN0KGV4ZWMt
Pmdsb2JhbERhdGEoKSwgZXhlYy0+Z2xvYmFsRGF0YSgpLnN0YXRpY1Njb3BlU3RydWN0dXJlLmdl
dCgpLCAmbV9zeW1ib2xUYWJsZSwgcmVpbnRlcnByZXRfY2FzdDxSZWdpc3Rlcio+KCZtX3JlZ2lz
dGVyU3RvcmUgKyAxKSkKICAgICAgICAgewotICAgICAgICAgICAgbV9yZWdpc3RlclN0b3JlLnNl
dChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIHZhbHVlKTsKLSAgICAgICAgICAgIHN5bWJvbFRh
YmxlKCkuYWRkKGlkZW50LmltcGwoKSwgU3ltYm9sVGFibGVFbnRyeSgtMSwgYXR0cmlidXRlcykp
OworICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24oZXhlYywgaWRlbnRpZmllciwgdmFsdWUsIGF0
dHJpYnV0ZXMpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBTeW1ib2xUYWJsZSBtX3N5
bWJvbFRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNW
YXJpYWJsZU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJs
ZU9iamVjdC5oCmluZGV4IGY3MWVkMzA5OTQ5YjMxMjM0YWRhZmM4OGU4YTY0YTU4Njk1MjkyMDAu
LjNmMTE4NGI5ZGQ4ODQ2NjMzMDQxMTg5YWZjNWI3Y2UxMDExZDhiZjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmgKQEAgLTc0LDcgKzc0
LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAsIG1fc3ltYm9sVGFibGUoc3ltYm9s
VGFibGUpCiAgICAgICAgICAgICAsIG1fcmVnaXN0ZXJzKHJlaW50ZXJwcmV0X2Nhc3Q8V3JpdGVC
YXJyaWVyPFVua25vd24+Kj4ocmVnaXN0ZXJzKSkKICAgICAgICAgewotICAgICAgICAgICAgZmlu
aXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAgICAgIH0KIAogICAgICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmgKaW5kZXggM2I0MzgzMTI0MzhkYmM3M2Uw
ODYwN2FlM2I2ZjBmZjQ5ZTFhZWRiYS4uM2U1ODlmMjcxNDNlMjRkNzA5ZGIxNjBlZjhlYTE1Yjdl
NjA2NmU4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFw
cGVyT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVy
T2JqZWN0LmgKQEAgLTUzLDcgKzUzLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgaW5saW5lIEpT
V3JhcHBlck9iamVjdDo6SlNXcmFwcGVyT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxE
YXRhLCBzdHJ1Y3R1cmUpCiAgICAgewotICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRh
KTsKICAgICB9CiAKICAgICBpbmxpbmUgSlNWYWx1ZSBKU1dyYXBwZXJPYmplY3Q6OmludGVybmFs
VmFsdWUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TWF0aE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0
LmNwcAppbmRleCBlNGM0YjViZWM4ZGQxZjliODRlNGVmN2IxNmE5MmY1OTBiNTc3MjE5Li41ZWM1
NmEzNmU3Mzc1NTlhMzBkZmIxMjA4YTBjMTNjZWJhOTg3YjZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcApAQCAtODcsNiArODcsMTIgQEAgY29uc3Qg
Q2xhc3NJbmZvIE1hdGhPYmplY3Q6OnNfaW5mbyA9IHsgIk1hdGgiLCAmSlNPYmplY3RXaXRoR2xv
YmFsT2JqZWN0OjpzX2luZm8KIE1hdGhPYmplY3Q6Ok1hdGhPYmplY3QoRXhlY1N0YXRlKiBleGVj
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAg
ICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKIHsK
KyAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QpOworfQorCit2b2lkIE1hdGhP
YmplY3Q6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmds
b2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykp
OwogCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBJ
ZGVudGlmaWVyKGV4ZWMsICJFIiksIGpzTnVtYmVyKGV4cCgxLjApKSwgRG9udERlbGV0ZSB8IERv
bnRFbnVtIHwgUmVhZE9ubHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTWF0aE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9i
amVjdC5oCmluZGV4IDljZmE4ZDAyN2RlM2NmODZkMmQzMjYwNzA3ZmU5N2FkZTI2YTUxZjQuLjdm
YmVkOTBiZmJkMmNiMTE1YWQ4NTI0ZmU0M2VkN2E0ZjYwYWUyOGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKQEAgLTQ3LDYgKzQ3LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKKyAgICAgICAgdm9pZCBmaW5pc2hD
cmVhdGlvbihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopOwogICAgICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Qg
fCBKU09iamVjdDo6U3RydWN0dXJlRmxhZ3M7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5jcHAKaW5kZXggMTM5NDVjNzUwZTI1YjU2NTVl
MTVhZmI2ZjcwNmExNmQxNzQ0NDVjMC4uMjI2NzZkMGZmYThjYzc0NmFkMTZkNmU0MjhmM2JjOGNk
NzBkNzYyZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJPYmpl
Y3QuY3BwCkBAIC0zNCw2ICszNCwxMiBAQCBjb25zdCBDbGFzc0luZm8gTnVtYmVyT2JqZWN0Ojpz
X2luZm8gPSB7ICJOdW1iZXIiLCAmSlNXcmFwcGVyT2JqZWN0OjpzX2luZm8sIDAsCiBOdW1iZXJP
YmplY3Q6Ok51bWJlck9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSog
c3RydWN0dXJlKQogICAgIDogSlNXcmFwcGVyT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkK
IHsKKyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKK30KKwordm9pZCBOdW1iZXJPYmpl
Y3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKK3sKKyAgICBCYXNl
OjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5m
bykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1i
ZXJPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5o
CmluZGV4IDdhYzgxZDYzOGE1MTFlZjg2NWMyMGY4NTMxMzBiOTBiNjFjYWFlMGIuLjkwMWY1ZWI0
YjBmM2I1NDE3ZmRjOTlkMjI1ZWVhMmY3MTM0NTIxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL051bWJlck9iamVjdC5oCkBAIC0yOCw2ICsyOCw3IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgIGNsYXNzIE51bWJlck9iamVjdCA6IHB1YmxpYyBKU1dyYXBwZXJPYmplY3Qgewog
ICAgIHByb3RlY3RlZDoKICAgICAgICAgTnVtYmVyT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFN0cnVj
dHVyZSopOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYpOwogCiAg
ICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpTV3JhcHBlck9iamVjdCBCYXNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKaW5kZXgg
MDg3Y2QyNjBjZjU1ZDNmMTViMzM2NTI1MzZhNTZiYjc3NDAxNzk5ZC4uNTA4OWE1ZmZkYmY3NzNk
MGZmN2U4Njk5MjEzNWQ1NTVhYTI5NTc2NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCkBAIC02MywxMSArNjMsMTAgQEAgY29uc3Qg
Q2xhc3NJbmZvIE9iamVjdFByb3RvdHlwZTo6c19pbmZvID0geyAiT2JqZWN0IiwgJkpTTm9uRmlu
YWxPYmplY3Q6OnNfaW5mbywKIAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChPYmplY3RQcm90
b3R5cGUpOwogCi1PYmplY3RQcm90b3R5cGU6Ok9iamVjdFByb3RvdHlwZShFeGVjU3RhdGUqIGV4
ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3R1Y3R1cmUpCitP
YmplY3RQcm90b3R5cGU6Ok9iamVjdFByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVy
ZSogc3R1Y3R1cmUpCiAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwg
c3R1Y3R1cmUpCiAgICAgLCBtX2hhc05vUHJvcGVydGllc1dpdGhVSW50MzJOYW1lcyh0cnVlKQog
ewotICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsK
IH0KIAogdm9pZCBPYmplY3RQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKaW5kZXggMGEyYzhmZDQ4ZWU3
ZDQ5ZGVhYmY5MWJlZTA1ODYwYjJmZTkzZGEzMS4uNTg0YWMzMGRmY2EyNDc2MDg3MDBkYzA2ZTdm
YWFkZDQxMWRmZjgwNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T2JqZWN0UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0UHJvdG90eXBlLmgKQEAgLTMxLDcgKzMxLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAg
ICAgc3RhdGljIE9iamVjdFByb3RvdHlwZSogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxPYmplY3RQcm90b3R5cGU+KCpl
eGVjLT5oZWFwKCkpKSBPYmplY3RQcm90b3R5cGUoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1
cmUpOworICAgICAgICAgICAgT2JqZWN0UHJvdG90eXBlKiBwcm90b3R5cGUgPSBuZXcgKGFsbG9j
YXRlQ2VsbDxPYmplY3RQcm90b3R5cGU+KCpleGVjLT5oZWFwKCkpKSBPYmplY3RQcm90b3R5cGUo
ZXhlYywgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIHByb3RvdHlwZS0+ZmluaXNoQ3JlYXRpb24o
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOworICAgICAgICAgICAgcmV0dXJuIHBy
b3RvdHlwZTsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19p
bmZvOwpAQCAtNDgsNyArNTAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBKU0dsb2JhbE9iamVjdCopOwogCiAgICAgcHJpdmF0
ZToKLSAgICAgICAgT2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlKik7CisgICAgICAgIE9iamVjdFByb3RvdHlwZShFeGVjU3RhdGUqLCBTdHJ1Y3R1
cmUqKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJiwgSlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5
U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNDc3
OWIyNTZlMDRmNWRjM2MyNWE2YjZjMTQ5NDBjMzYzNjg0ZTRkMy4uYzhhMTMzYjQyNTY4NzMxNWZm
NmU4MjFjMGJhMjdhNTdhMTVhMzNlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcApAQCAtMTA5LDggKzEwOSwxNCBAQCBSZWdF
eHBDb25zdHJ1Y3Rvcjo6UmVnRXhwQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZQogfQogCiBSZWdFeHBNYXRjaGVzQXJyYXk6OlJlZ0V4cE1hdGNo
ZXNBcnJheShFeGVjU3RhdGUqIGV4ZWMsIFJlZ0V4cENvbnN0cnVjdG9yUHJpdmF0ZSogZGF0YSkK
LSAgICA6IEpTQXJyYXkoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCktPnJlZ0V4cE1hdGNoZXNBcnJheVN0cnVjdHVyZSgpLCBkYXRhLT5sYXN0TnVtU3ViUGF0
dGVybnMgKyAxLCBDcmVhdGVJbml0aWFsaXplZCkKKyAgICA6IEpTQXJyYXkoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnJlZ0V4cE1hdGNoZXNBcnJheVN0
cnVjdHVyZSgpKQogeworICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZGF0
YSk7Cit9CisKK3ZvaWQgUmVnRXhwTWF0Y2hlc0FycmF5OjpmaW5pc2hDcmVhdGlvbihKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIFJlZ0V4cENvbnN0cnVjdG9yUHJpdmF0ZSogZGF0YSkKK3sKKyAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBkYXRhLT5sYXN0TnVtU3ViUGF0dGVy
bnMgKyAxLCBDcmVhdGVJbml0aWFsaXplZCk7CiAgICAgUmVnRXhwQ29uc3RydWN0b3JQcml2YXRl
KiBkID0gbmV3IFJlZ0V4cENvbnN0cnVjdG9yUHJpdmF0ZTsKICAgICBkLT5pbnB1dCA9IGRhdGEt
Pmxhc3RJbnB1dDsKICAgICBkLT5sYXN0SW5wdXQgPSBkYXRhLT5sYXN0SW5wdXQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCmluZGV4
IGVkMjFiYzg5ZTVlMjdkMzYxZTY1MzM5ZTRkNDNkNmExNmVhYTRkZjIuLjg3ZDU5YzcxNGViNTRk
ZjI4MTczZGZlZGViZGVkNTQ2ZjY1MWMzYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cE1hdGNoZXNBcnJheS5oCkBAIC0zNyw2ICszNyw5IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB9CiAgICAgICAgIHZpcnR1YWwgflJlZ0V4cE1hdGNoZXNBcnJh
eSgpOwogCisgICAgcHJvdGVjdGVkOgorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xv
YmFsRGF0YSYsIFJlZ0V4cENvbnN0cnVjdG9yUHJpdmF0ZSogZGF0YSk7CisKICAgICBwcml2YXRl
OgogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiAg
ICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3Qu
Y3BwCmluZGV4IDJjMTI2NTU5MmU4Njg1MzQ0OTI4ZWM0ZGUxMWRmZjE5MDA0MTQyOTcuLjg0MWQ5
Mzk0MTE3YWIwOTExNzM4ZDBjNDg1ZTNmZTUwYjVhMWRkMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApAQCAtNjYsNiArNjYsMTIgQEAgUmVn
RXhwT2JqZWN0OjpSZWdFeHBPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIFIKICAgICA6IEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9i
YWxPYmplY3QsIHN0cnVjdHVyZSkKICAgICAsIGQoYWRvcHRQdHIobmV3IFJlZ0V4cE9iamVjdERh
dGEoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHRoaXMsIHJlZ0V4cCkpKQogeworICAgIGZp
bmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgUmVnRXhwT2JqZWN0OjpmaW5p
c2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZp
bmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwog
ICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKaW5kZXggNzNmMjE1NDkyNjcwMDc5YjU5MzkyYTI4
ZTVjNjEzZjNjZGYwYmUxMy4uYmNlNDU1YWY4MTJmOTFiYWJiMjI2MDcwYWQyMGU5ZTA0NmYyNDEx
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKQEAg
LTc0LDYgKzc0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAg
IFJlZ0V4cE9iamVjdChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFJlZ0V4cCopOworICAg
ICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0Kik7CiAgICAgICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4g
fCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6
OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcAppbmRleCA5NmQ5NGQ4
NGVhYmI1MjYwNTk2OTdmZTMzNmRhYWI3ODIxMzU0YjU0Li5lNjY2ZGVlMTU3OTJiN2ZiZTg5N2U2
MGQyYzUwM2Q2MjNiNzZmZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwCkBAIC0zMSw3ICszMSw2IEBAIG5hbWVz
cGFjZSBKU0MgewogU3RyaWN0RXZhbEFjdGl2YXRpb246OlN0cmljdEV2YWxBY3RpdmF0aW9uKEV4
ZWNTdGF0ZSogZXhlYykKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgp
LCBleGVjLT5nbG9iYWxEYXRhKCkuc3RyaWN0RXZhbEFjdGl2YXRpb25TdHJ1Y3R1cmUuZ2V0KCkp
CiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKIH0KIAogYm9vbCBT
dHJpY3RFdmFsQWN0aXZhdGlvbjo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRl
bnRpZmllciYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJp
Y3RFdmFsQWN0aXZhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0
RXZhbEFjdGl2YXRpb24uaAppbmRleCA3Njk4MWZkYjQyODkxM2M2NzA2NDFmODBiN2JkYjExYjVm
MWFmODE0Li44YWEyMjM0Yzg3YzUxNTliZTU5ZDYyMGMyYWQ4MWE0MGUzOTY4ZmI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9u
LmgKQEAgLTM2LDcgKzM2LDkgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFN0cmljdEV2YWxBY3Rp
dmF0aW9uKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5l
dyAoYWxsb2NhdGVDZWxsPFN0cmljdEV2YWxBY3RpdmF0aW9uPigqZXhlYy0+aGVhcCgpKSkgU3Ry
aWN0RXZhbEFjdGl2YXRpb24oZXhlYyk7CisgICAgICAgIFN0cmljdEV2YWxBY3RpdmF0aW9uKiBh
Y3RpdmF0aW9uID0gbmV3IChhbGxvY2F0ZUNlbGw8U3RyaWN0RXZhbEFjdGl2YXRpb24+KCpleGVj
LT5oZWFwKCkpKSBTdHJpY3RFdmFsQWN0aXZhdGlvbihleGVjKTsKKyAgICAgICAgYWN0aXZhdGlv
bi0+ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKKyAgICAgICAgcmV0dXJuIGFj
dGl2YXRpb247CiAgICAgfQogCiAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdPYmplY3QuY3BwCmluZGV4IDFkMGM3YWJmOThkMDg3YzBiNTE3YjUyMDI0NmUy
YThlZmViMzA3NjYuLmI4ZmFkOWU0OTczNzdhY2E3NDU3MDEzY2RhMzcwM2I4ZjI3MDU5MzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcApAQCAt
MzIsNiArMzIsMTIgQEAgY29uc3QgQ2xhc3NJbmZvIFN0cmluZ09iamVjdDo6c19pbmZvID0geyAi
U3RyaW5nIiwgJkpTV3JhcHBlck9iamVjdDo6c19pbmZvLCAwLAogU3RyaW5nT2JqZWN0OjpTdHJp
bmdPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
SlNTdHJpbmcqIHN0cmluZykKICAgICA6IEpTV3JhcHBlck9iamVjdChnbG9iYWxEYXRhLCBzdHJ1
Y3R1cmUpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgc3RyaW5nKTsKK30KKwor
dm9pZCBTdHJpbmdPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNTdHJpbmcqIHN0cmluZykKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxE
YXRhKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogICAgIHNldEludGVybmFsVmFs
dWUoZ2xvYmFsRGF0YSwgc3RyaW5nKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nT2JqZWN0LmgKaW5kZXggN2QxMzVjMWU0MTIyZmFlN2ZhZmYxOGRiMmUxYmEzN2Q3
NWNkNDU1Zi4uMGIwYzIwMDY0OGJlYmY4YWU2NGI1Yzc3OWQxYTc1NjNjMTk2NWJlYyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKQEAgLTYwLDYgKzYw
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKKyAgICAg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBKU1N0cmluZyopOwogICAgICAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Q
cm9wZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNXcmFwcGVyT2JqZWN0
OjpTdHJ1Y3R1cmVGbGFnczsKICAgICAgICAgU3RyaW5nT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFN0
cnVjdHVyZSosIEpTU3RyaW5nKik7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0R2x1ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCmluZGV4
IDEwYTY4NmRjYzY5ODEwZjZjNGY1ZjdkYTE3N2U1YWYwMGU0YWJkN2EuLmU0NGI3ZWFkZjEwZmNl
NjBhMDRkZDMyODU3ODBmYTFhN2NiYTQ0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
R2x1ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI3IEBACisyMDExLTA5LTAxICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0Bh
cHBsZS5jb20+CisKKyAgICAgICAgVW56aXAgaW5pdGlhbGl6YXRpb24gbGlzdHMgYW5kIGNvbnN0
cnVjdG9ycyBpbiBKU0NlbGwgaGllcmFyY2h5ICg0LzcpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbXBsZXRlZCB0aGUgZm91cnRoIGxldmVsIG9mIHRo
ZSByZWZhY3RvcmluZyB0byBhZGQgZmluaXNoQ3JlYXRpb24oKSAKKyAgICAgICAgbWV0aG9kcyB0
byBhbGwgY2xhc3NlcyB3aXRoaW4gdGhlIEpTQ2VsbCBoaWVyYXJjaHkgd2l0aCBub24tdHJpdmlh
bCAKKyAgICAgICAgY29uc3RydWN0b3IgYm9kaWVzLgorCisgICAgICAgIFRoaXMgcHJpbWFyaWx5
IGNvbnNpc3RzIG9mIHB1c2hpbmcgdGhlIGNhbGxzIHRvIGZpbmlzaENyZWF0aW9uKCkgZG93biAK
KyAgICAgICAgaW50byB0aGUgY29uc3RydWN0b3JzIG9mIHRoZSBzdWJjbGFzc2VzIG9mIHRoZSBz
ZWNvbmQgbGV2ZWwgb2YgdGhlIGhpZXJhcmNoeSAKKyAgICAgICAgYXMgd2VsbCBhcyBwdWxsaW5n
IHRoZSBmaW5pc2hDcmVhdGlvbigpIGNhbGxzIG91dCBpbnRvIHRoZSBjbGFzcydzIGNvcnJlc3Bv
bmRpbmcKKyAgICAgICAgY3JlYXRlKCkgbWV0aG9kIGlmIGl0IGhhcyBvbmUuICBEb2luZyBib3Ro
IHNpbXVsdGFuZW91c2x5IGFsbG93cyB1cyB0byAKKyAgICAgICAgbWFpbnRhaW4gdGhlIGludmFy
aWFudCB0aGF0IHRoZSBmaW5pc2hDcmVhdGlvbigpIG1ldGhvZCBjaGFpbiBpcyBjYWxsZWQgZXhh
Y3RseSAKKyAgICAgICAgb25jZSBkdXJpbmcgdGhlIGNyZWF0aW9uIG9mIGFuIG9iamVjdCwgc2lu
Y2UgY2FsbGluZyBpdCBhbnkgb3RoZXIgbnVtYmVyIG9mIAorICAgICAgICB0aW1lcyAoMCwgMiwg
b3IgbW9yZSkgd2lsbCBjYXVzZSBhbiBhc3NlcnRpb24gZmFpbHVyZS4KKworICAgICAgICAqIFVz
ZXJPYmplY3RJbXAuY3BwOgorICAgICAgICAoVXNlck9iamVjdEltcDo6VXNlck9iamVjdEltcCk6
CisgICAgICAgICogVXNlck9iamVjdEltcC5oOgorICAgICAgICAoVXNlck9iamVjdEltcDo6Y3Jl
YXRlKToKKwogMjAxMS0wOC0yOSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVuemlwIGluaXRpYWxpemF0aW9uIGxpc3RzIGFuZCBjb25zdHJ1Y3Rv
cnMgaW4gSlNDZWxsIGhpZXJhcmNoeSAoMy83KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmpl
Y3RJbXAuY3BwCmluZGV4IDBkNGQ0NWFmNzJmOGMyNzRkMjAzMGZiZTNiODZiYWVjOWU0ZmQyMTYu
LmFkMzY5M2IzYWQxMzA1ZTBhOWMyNDZlYjZjOTk4MTMzNjFlMGY0YmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKQEAgLTM4LDcgKzM4LDYgQEAgVXNlck9iamVjdElt
cDo6VXNlck9iamVjdEltcChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBKU1UKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJl
KQogICAgICwgZkpTVXNlck9iamVjdCgoSlNVc2VyT2JqZWN0Kil1c2VyT2JqZWN0LT5SZXRhaW4o
KSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKIH0KIAogVXNlck9iamVjdElt
cDo6flVzZXJPYmplY3RJbXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL1Vz
ZXJPYmplY3RJbXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKaW5k
ZXggOGVlOGUyYTcwNDdmODY5YTI5NzI2NWNjMWMyNmMzZjM2ZjkwOGE4MC4uMTU5NjA3MDBjZmFj
NWFhMDQ0M2E4OWJhODYzODRjYjdkMTY3N2UxNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRHbHVlL1VzZXJPYmplY3RJbXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9i
amVjdEltcC5oCkBAIC00MCw3ICs0MCw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBVc2VyT2Jq
ZWN0SW1wKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgSlNVc2VyT2JqZWN0KiB1c2VyT2JqZWN0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5l
dyAoYWxsb2NhdGVDZWxsPFVzZXJPYmplY3RJbXA+KGdsb2JhbERhdGEuaGVhcCkpIFVzZXJPYmpl
Y3RJbXAoZ2xvYmFsRGF0YSwgc3RydWN0dXJlLCB1c2VyT2JqZWN0KTsKKyAgICAgICAgVXNlck9i
amVjdEltcCogb2JqZWN0ID0gbmV3IChhbGxvY2F0ZUNlbGw8VXNlck9iamVjdEltcD4oZ2xvYmFs
RGF0YS5oZWFwKSkgVXNlck9iamVjdEltcChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUsIHVzZXJPYmpl
Y3QpOworICAgICAgICBvYmplY3QtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOworICAgICAg
ICByZXR1cm4gb2JqZWN0OwogICAgIH0KICAgICAKICAgICB2aXJ0dWFsIH5Vc2VyT2JqZWN0SW1w
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggMjAwZGYzNDViYTJmZWZhOGFlNjFkMjdlYzBiNDEwYTY0ZmQ1Mzkx
NS4uNmQ5ODM5OTcyYWFhNGI1ZTY1NjJkNTFiNjU5MjQyM2E0MmViMzMwMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDU1IEBACisyMDExLTA5LTAxICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVy
Z0BhcHBsZS5jb20+CisKKyAgICAgICAgVW56aXAgaW5pdGlhbGl6YXRpb24gbGlzdHMgYW5kIGNv
bnN0cnVjdG9ycyBpbiBKU0NlbGwgaGllcmFyY2h5ICg0LzcpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzE3NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICBDb21w
bGV0ZWQgdGhlIGZvdXJ0aCBsZXZlbCBvZiB0aGUgcmVmYWN0b3JpbmcgdG8gYWRkIGZpbmlzaENy
ZWF0aW9uKCkgCisgICAgICAgIG1ldGhvZHMgdG8gYWxsIGNsYXNzZXMgd2l0aGluIHRoZSBKU0Nl
bGwgaGllcmFyY2h5IHdpdGggbm9uLXRyaXZpYWwgCisgICAgICAgIGNvbnN0cnVjdG9yIGJvZGll
cy4KKworICAgICAgICBUaGlzIHByaW1hcmlseSBjb25zaXN0cyBvZiBwdXNoaW5nIHRoZSBjYWxs
cyB0byBmaW5pc2hDcmVhdGlvbigpIGRvd24gCisgICAgICAgIGludG8gdGhlIGNvbnN0cnVjdG9y
cyBvZiB0aGUgc3ViY2xhc3NlcyBvZiB0aGUgc2Vjb25kIGxldmVsIG9mIHRoZSBoaWVyYXJjaHkg
CisgICAgICAgIGFzIHdlbGwgYXMgcHVsbGluZyB0aGUgZmluaXNoQ3JlYXRpb24oKSBjYWxscyBv
dXQgaW50byB0aGUgY2xhc3MncyBjb3JyZXNwb25kaW5nCisgICAgICAgIGNyZWF0ZSgpIG1ldGhv
ZCBpZiBpdCBoYXMgb25lLiAgRG9pbmcgYm90aCBzaW11bHRhbmVvdXNseSBhbGxvd3MgdXMgdG8g
CisgICAgICAgIG1haW50YWluIHRoZSBpbnZhcmlhbnQgdGhhdCB0aGUgZmluaXNoQ3JlYXRpb24o
KSBtZXRob2QgY2hhaW4gaXMgY2FsbGVkIGV4YWN0bHkgCisgICAgICAgIG9uY2UgZHVyaW5nIHRo
ZSBjcmVhdGlvbiBvZiBhbiBvYmplY3QsIHNpbmNlIGNhbGxpbmcgaXQgYW55IG90aGVyIG51bWJl
ciBvZiAKKyAgICAgICAgdGltZXMgKDAsIDIsIG9yIG1vcmUpIHdpbGwgY2F1c2UgYW4gYXNzZXJ0
aW9uIGZhaWx1cmUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OkpTRE9NV2luZG93U2hlbGwp
OgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6Y3JlYXRlKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmg6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01XcmFwcGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdyYXBwZXI6OkpTRE9NV3Jh
cHBlcik6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpjcmVhdGVXaW5kb3dTaGVsbCk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5l
cmF0ZUhlYWRlcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdElu
dGVyZmFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlOjpK
U1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpK
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlOjpKU1Rlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyUHJvdG90eXBlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmg6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmpQcm90b3R5cGU6OkpTVGVz
dE9ialByb3RvdHlwZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlOjpKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGUpOgorICAgICAgICAqIGJyaWRnZS9vYmpj
L29iamNfcnVudGltZS5oOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbToK
KyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iamNGYWxsYmFja09iamVjdEltcDo6T2JqY0ZhbGxi
YWNrT2JqZWN0SW1wKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iamNGYWxsYmFja09iamVj
dEltcDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5LmNw
cDoKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpSdW50aW1lQXJyYXkpOgorICAgICAgICAo
SlNDOjpSdW50aW1lQXJyYXk6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBicmlkZ2UvcnVu
dGltZV9hcnJheS5oOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5jcHA6CisgICAg
ICAgIChKU0M6OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0OjpSdW50aW1lT2JqZWN0KToKKyAgICAg
ICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAg
ICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuaDoKKwogMjAxMS0wOS0wMSAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyOTQyNTkp
OiBUd28gdGVzdHMgZG9pbmcgaGl0IHRlc3Rpbmcgd2VyZSBicm9rZW4gYnkgdGhpcyBjaGFuZ2Uu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCmlu
ZGV4IDAwZmFjMGE3ZWUxMGQxNzM3NjdkZDNlYzg1ZjY4ZTk3OTYwODI1ZjcuLjVkMGQ0MzZjYzk2
ODczYWQ5ZmEwMzk1ZjM1NWNlYWVlMzIxNTM4NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCkBAIC00MywxMSArNDMsMTAgQEAgQVNTRVJU
X0NMQVNTX0ZJVFNfSU5fQ0VMTChKU0RPTVdpbmRvd1NoZWxsKTsKIAogY29uc3QgQ2xhc3NJbmZv
IEpTRE9NV2luZG93U2hlbGw6OnNfaW5mbyA9IHsgIkpTRE9NV2luZG93U2hlbGwiLCAmQmFzZTo6
c19pbmZvLCAwLCAwIH07CiAKLUpTRE9NV2luZG93U2hlbGw6OkpTRE9NV2luZG93U2hlbGwoUGFz
c1JlZlB0cjxET01XaW5kb3c+IHdpbmRvdywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIERPTVdyYXBw
ZXJXb3JsZCogd29ybGQpCitKU0RPTVdpbmRvd1NoZWxsOjpKU0RPTVdpbmRvd1NoZWxsKFN0cnVj
dHVyZSogc3RydWN0dXJlLCBET01XcmFwcGVyV29ybGQqIHdvcmxkKQogICAgIDogQmFzZSgqd29y
bGQtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogICAgICwgbV93b3JsZCh3b3JsZCkKIHsKLSAg
ICBmaW5pc2hDcmVhdGlvbigqd29ybGQtPmdsb2JhbERhdGEoKSwgd2luZG93KTsKIH0KIAogdm9p
ZCBKU0RPTVdpbmRvd1NoZWxsOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIFBhc3NSZWZQdHI8RE9NV2luZG93PiB3aW5kb3cpCkBAIC0xODEsNiArMTgwLDEzIEBAIHZv
aWQqIEpTRE9NV2luZG93U2hlbGw6Om9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSkKICAgICByZXR1
cm4gaGVhcC5hbGxvY2F0ZShzaXplKTsKIH0KIAorSlNET01XaW5kb3dTaGVsbCogSlNET01XaW5k
b3dTaGVsbDo6Y3JlYXRlKFBhc3NSZWZQdHI8RE9NV2luZG93PiB3aW5kb3csIEpTQzo6U3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIERPTVdyYXBwZXJXb3JsZCogd29ybGQpCit7CisgICAgSlNET01XaW5k
b3dTaGVsbCogc2hlbGwgPSBuZXcgSlNET01XaW5kb3dTaGVsbChzdHJ1Y3R1cmUsIHdvcmxkKTsK
KyAgICBzaGVsbC0+ZmluaXNoQ3JlYXRpb24oKndvcmxkLT5nbG9iYWxEYXRhKCksIHdpbmRvdyk7
CisgICAgcmV0dXJuIHNoZWxsOyAKK30KKwogLy8gLS0tLQogLy8gQ29udmVyc2lvbiBtZXRob2Rz
CiAvLyAtLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd1NoZWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxs
LmgKaW5kZXggNTQ1OTY2MTJjN2RhNTEyMmEzNzc1NjVlYTRhMGJlMTdlNzMwMTMwNC4uMzAyODM0
ZmZjNjc5NTQzNGRiZTQ3ZjQzZWU5MmU2NmE2NjdiNGNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaApAQCAtNTUsNyArNTUsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICAgICAgRE9NV2luZG93KiBpbXBsKCkgY29uc3Q7CiAKLSAgICAg
ICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCk7CisgICAgICAgIHN0YXRpYyBKU0RPTVdpbmRv
d1NoZWxsKiBjcmVhdGUoUGFzc1JlZlB0cjxET01XaW5kb3c+LCBKU0M6OlN0cnVjdHVyZSosIERP
TVdyYXBwZXJXb3JsZCopOwogCiAgICAgICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJv
dG90eXBlKSAKICAgICAgICAgewpAQCAtNjUsOSArNjUsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBET01XcmFwcGVyV29ybGQqIHdvcmxkKCkgeyByZXR1cm4gbV93b3JsZC5nZXQo
KTsgfQogCiAgICAgcHJvdGVjdGVkOgorICAgICAgICBKU0RPTVdpbmRvd1NoZWxsKEpTQzo6U3Ry
dWN0dXJlKiwgRE9NV3JhcHBlcldvcmxkKik7CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
SlNDOjpKU0dsb2JhbERhdGEmLCBQYXNzUmVmUHRyPERPTVdpbmRvdz4pOwogCiAgICAgcHJpdmF0
ZToKKyAgICAgICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCk7CiAgICAgICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVy
dHlTbG90IHwgSlNDOjpPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgSlNDOjpPdmVycmlkZXNHZXRQ
cm9wZXJ0eU5hbWVzIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICAgICAgdmlydHVhbCB2
b2lkIHZpc2l0Q2hpbGRyZW4oSlNDOjpTbG90VmlzaXRvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XcmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdyYXBwZXIuaAppbmRleCA5YTRhY2E1YzUxYjhjZmViNzUzMGIyYTZlMGU3
OTg0NTFmZDg1OGU2Li4xYjgyMTk3MDNjZjkzOTIwZDBiODc3Yzc2ZDc3NjVlN2FiZjEwYjZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdyYXBwZXIuaApAQCAtNTksNiArNTks
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIC8vIG5ldyBKYXZhU2NyaXB0IG9iamVjdHMgb24gZGV0
YWNoZWQgd2luZG93cyBkdWUgdG8gRE9NV2luZG93Ojpkb2N1bWVudCgpCiAgICAgICAgIC8vIG5l
ZWRpbmcgdG8gcmVhY2ggdGhyb3VnaCB0aGUgZnJhbWUgdG8gZ2V0IHRvIHRoZSBEb2N1bWVudCou
ICBTZWUgYnVnIDI3NjQwLgogICAgICAgICAvLyBBU1NFUlQoZ2xvYmFsT2JqZWN0LT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpOworICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3Qt
Pmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDg3MDI5ZDFkYjAx
MjMxNDIzYjFlODhjNWFjNWY5NTE0MGNkOTYxNmEuLmQyNWM3MjJhNDk1YzM1ZDFkZGExZmJhNjU2
NTFiZTQ3NDJmMDJlNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dENvbnRyb2xsZXIuY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgSlNET01XaW5kb3dTaGVsbCogU2Ny
aXB0Q29udHJvbGxlcjo6Y3JlYXRlV2luZG93U2hlbGwoRE9NV3JhcHBlcldvcmxkKiB3b3JsZCkK
IHsKICAgICBBU1NFUlQoIW1fd2luZG93U2hlbGxzLmNvbnRhaW5zKHdvcmxkKSk7CiAgICAgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUgPSBKU0RPTVdpbmRvd1NoZWxsOjpjcmVhdGVTdHJ1Y3R1cmUoKndv
cmxkLT5nbG9iYWxEYXRhKCksIGpzTnVsbCgpKTsKLSAgICBTdHJvbmc8SlNET01XaW5kb3dTaGVs
bD4gd2luZG93U2hlbGwoKndvcmxkLT5nbG9iYWxEYXRhKCksIG5ldyBKU0RPTVdpbmRvd1NoZWxs
KG1fZnJhbWUtPmRvbVdpbmRvdygpLCBzdHJ1Y3R1cmUsIHdvcmxkKSk7CisgICAgU3Ryb25nPEpT
RE9NV2luZG93U2hlbGw+IHdpbmRvd1NoZWxsKCp3b3JsZC0+Z2xvYmFsRGF0YSgpLCBKU0RPTVdp
bmRvd1NoZWxsOjpjcmVhdGUobV9mcmFtZS0+ZG9tV2luZG93KCksIHN0cnVjdHVyZSwgd29ybGQp
KTsKICAgICBTdHJvbmc8SlNET01XaW5kb3dTaGVsbD4gd2luZG93U2hlbGwyKHdpbmRvd1NoZWxs
KTsKICAgICBtX3dpbmRvd1NoZWxscy5hZGQod29ybGQsIHdpbmRvd1NoZWxsKTsKICAgICB3b3Js
ZC0+ZGlkQ3JlYXRlV2luZG93U2hlbGwodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDBjMDFmYzdmMjIwMTZlNDAy
Y2Y1OTliYzJkYmYxMjYxMWNjMzVkNGIuLmVmMzkwYzVhNjM5OTI1MWRlYjdkZDFhMzkzYTJlNmVj
ZmJhOGFmMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCkBAIC0xMDU3LDcgKzEwNTcsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIK
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBkZWZpbmVHZXR0ZXIo
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlND
OjpKU09iamVjdCogZ2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpO1xuIikgaWYg
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tUHJvdG90eXBlRGVmaW5lR2V0
dGVyIn07CiAKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiXG5wcml2YXRlOlxuIik7Ci0gICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX1Qcm90b3R5cGUoSlNDOjpKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgOiBKU0M6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dChnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkgeyB9XG4iKTsKKyAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfVByb3RvdHlwZShKU0M6OkpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6
OlN0cnVjdHVyZSogc3RydWN0dXJlKSA6IEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KGds
b2JhbERhdGEsIHN0cnVjdHVyZSkgeyBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QpOyB9XG4iKTsKIAogICAgICMgc3RydWN0dXJlIGZsYWdzCiAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgInByb3RlY3RlZDpcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oCmluZGV4IGExMjI0YmM2
MTI2MTU4MzJhZDkyYzU1Y2E2ZDRhNGYyMmIyYmZiNGYuLmNjNGY1ZmU5NDBiODQ0YWMzMTBlYjIz
OTUwNTczZWUzMGQ0MGQ4OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKQEAgLTc4LDcgKzc4LDcgQEAg
cHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUo
SlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgOiBKU0M6OkpTT2JqZWN0V2l0aEds
b2JhbE9iamVjdChnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkgeyB9CisgICAg
SlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1
cmUpIDogSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJl
KSB7IGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCk7IH0KIHByb3RlY3Rl
ZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1
Y3R1cmVGbGFnczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
aAppbmRleCA3MGNjNzVlNDI0MTNmNThmZTJiMDc0Y2ZhZTJlOWJhMDIzOTkwM2ViLi4xZDM0MDk1
ZGZiZDkzYjlhMThiYzhkNTU5OGJmZTc0YjBmN2FhYjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKQEAgLTc4LDcgKzc4LDcgQEAgcHVibGljOgogICAgIH0K
IAogcHJpdmF0ZToKLSAgICBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlKEpT
Qzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpIDogSlNDOjpKU09iamVjdFdpdGhHbG9i
YWxPYmplY3QoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpIHsgfQorICAgIEpT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGUoSlNDOjpKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSkgOiBKU0M6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChnbG9iYWxEYXRh
LCBzdHJ1Y3R1cmUpIHsgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0KTsg
fQogcHJvdGVjdGVkOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5oCmluZGV4IGExMDQ0NDliMTViYWY5MDE0MGY3MzBjM2U5ZGIyMDRjZWJhZGZkMjYu
LjQzODAyZTUxMGRhMWVmMmYxM2EwODE1YjI5OTRiMTExNTEyZGYwMmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKQEAgLTg3
LDcgKzg3LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBKU1Rlc3RPYmpQcm90
b3R5cGUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgOiBKU0M6OkpTT2JqZWN0
V2l0aEdsb2JhbE9iamVjdChnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkgeyB9
CisgICAgSlNUZXN0T2JqUHJvdG90eXBlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1
cmUpIDogSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJl
KSB7IGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCk7IH0KIHByb3RlY3Rl
ZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAppbmRl
eCA2MjQwMGRlYjE0YTcxYzYzNTZjNDYwOGZiMzFjMzFhNDJkZWViYjE2Li42ZmI1YTIyNzVlNjdm
NDViOWUwZDMxMDEyZGZkYWZhYjNhNWNkN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCkBAIC03OCw3ICs3OCw3IEBAIHB1Ymxp
YzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlUHJvdG90eXBlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpIDogSlND
OjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBzdHJ1
Y3R1cmUpIHsgfQorICAgIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3Rv
dHlwZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlKSA6IEpTQzo6SlNPYmplY3RX
aXRoR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkgeyBmaW5pc2hDcmVhdGlvbihn
bG9iYWxEYXRhLCBnbG9iYWxPYmplY3QpOyB9CiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaAppbmRleCBkODAxOTAxMDY3NTll
MzE2MGRmNTNlOGIzYjFkZjA3NDY1MGM3NmVlLi4xNzUzYzBiYzdlZTA5NjEyODNhY2NkYjZmOWM1
ZDdlYTJmZmM1NDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpj
X3J1bnRpbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUu
aApAQCAtMTE2LDYgKzExNiw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAgIH0KIAorcHJvdGVj
dGVkOgorICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqKTsKKwogcHJpdmF0
ZToKICAgICBPYmpjRmFsbGJhY2tPYmplY3RJbXAoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
LCBPYmpjSW5zdGFuY2UqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdCB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9vYmpjL29iamNfcnVudGltZS5tbQppbmRleCA3NTBiYzdlZWZkZTFlMzhhMTM2NzZjZWFmMDky
MmRlNzFmODU5OWRmLi5kZjBlNzFjN2ZlY2I2MmUxNmY3NWRhOTEyMDMxZmE5NmIxYTJhN2M2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCkBAIC0yMDEsNiAr
MjAxLDEyIEBAIE9iamNGYWxsYmFja09iamVjdEltcDo6T2JqY0ZhbGxiYWNrT2JqZWN0SW1wKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjCiAgICAgLCBfaW5zdGFuY2UoaSkKICAg
ICAsIF9pdGVtKHByb3BlcnR5TmFtZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmpl
Y3QpOworfQorCit2b2lkIE9iamNGYWxsYmFja09iamVjdEltcDo6ZmluaXNoQ3JlYXRpb24oSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihn
bG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0KTsKICAgICBBU1NFUlQoaW5o
ZXJpdHMoJnNfaW5mbykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9hcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5j
cHAKaW5kZXggYjVmN2EwNzhiMmMwMGNmOGRmZGM4MDkwYzdhZjg0MDIxMjRkNjU3Yi4uZTAxYTE1
ZjM3Y2M5MWM0NThlZGExNDFjNzQ4NmQ4YzI2OWM2ZGNiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX2FycmF5LmNwcApAQCAtNDAsNiArNDAsMTIgQEAgY29uc3QgQ2xhc3NJbmZvIFJ1
bnRpbWVBcnJheTo6c19pbmZvID0geyAiUnVudGltZUFycmF5IiwgJkpTQXJyYXk6OnNfaW5mbywg
MCwgMAogUnVudGltZUFycmF5OjpSdW50aW1lQXJyYXkoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgQmluZGluZ3M6OkFycmF5KiBhcnJheSkKICAgICA6IEpTQXJyYXkoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+
Z2xvYmFsRGF0YSgpLCBhcnJheSk7Cit9CisKK3ZvaWQgUnVudGltZUFycmF5OjpmaW5pc2hDcmVh
dGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEJpbmRpbmdzOjpBcnJheSogYXJyYXkpCit7
CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAgQVNTRVJUKGluaGVy
aXRzKCZzX2luZm8pKTsKICAgICBzZXRTdWJjbGFzc0RhdGEoYXJyYXkpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX2FycmF5LmgKaW5kZXggY2I3YmM2MzU3NzZkOGViYzkxMDM5NTMyMGFl
ZmRlNDJiY2I5MDZkNy4uOGQ4ZjVhZTZiZjY4YTYzMzg2NWQwZDAyYmY2NDNmOTVlNDRhODk1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCkBAIC03NCw2ICs3NCw4IEBAIHB1
YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xv
YmFsRGF0YSYsIEJpbmRpbmdzOjpBcnJheSopOworCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVz
R2V0UHJvcGVydHlOYW1lcyB8IEpTQXJyYXk6OlN0cnVjdHVyZUZsYWdzOwogCiBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKaW5kZXggZjRkMGJhZGU1ZThi
ZmFhNTlkM2I5MTcwMDFhM2U0MDZiZjU5NTk3Ny4uOTY2NDBmMDA4ZmFjMWFjNDcxNzY0ZmY4NWUz
YjhmNjQ1YjkyYmYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
b2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3Bw
CkBAIC00MSw2ICs0MSwxMiBAQCBSdW50aW1lT2JqZWN0OjpSdW50aW1lT2JqZWN0KEV4ZWNTdGF0
ZSosIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZQogICAgIDogSlNPYmpl
Y3RXaXRoR2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogICAgICwgbV9pbnN0
YW5jZShpbnN0YW5jZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QpOworfQor
Cit2b2lkIFJ1bnRpbWVPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9i
YWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAppbmRleCA4NjIyZTMxMWYy
NjYwOGM1NDZkZTg2ZTBjZjRhM2Q1NTg1Mzk5MmEyLi45OWUwNmUwMWM1YmFmNzgwNzdmYjlhNGJk
ZGY5M2E1YTQ0ZDhjM2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9vYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaApA
QCAtNzQsNiArNzQsNyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBSdW50aW1lT2JqZWN0
KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgUGFzc1JlZlB0cjxJbnN0
YW5jZT4pOworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqKTsKICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3RXaXRoR2xvYmFs
T2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5YzIwNDNl
ODk0ZTEwOGIxZjdjNTJkNWU3ZDRiNmViOWE4M2UxOGEyLi4wYWM3MDZmZmZkMzQ0NjdlNWZmYWEw
OTk1NmQyMDY1MTdmMzU1NjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDkt
MDEgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBV
bnppcCBpbml0aWFsaXphdGlvbiBsaXN0cyBhbmQgY29uc3RydWN0b3JzIGluIEpTQ2VsbCBoaWVy
YXJjaHkgKDQvNykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTY3MTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ29tcGxldGVkIHRoZSBmb3VydGggbGV2ZWwgb2YgdGhlIHJlZmFjdG9yaW5nIHRvIGFkZCBm
aW5pc2hDcmVhdGlvbigpIAorICAgICAgICBtZXRob2RzIHRvIGFsbCBjbGFzc2VzIHdpdGhpbiB0
aGUgSlNDZWxsIGhpZXJhcmNoeSB3aXRoIG5vbi10cml2aWFsIAorICAgICAgICBjb25zdHJ1Y3Rv
ciBib2RpZXMuCisKKyAgICAgICAgVGhpcyBwcmltYXJpbHkgY29uc2lzdHMgb2YgcHVzaGluZyB0
aGUgY2FsbHMgdG8gZmluaXNoQ3JlYXRpb24oKSBkb3duIAorICAgICAgICBpbnRvIHRoZSBjb25z
dHJ1Y3RvcnMgb2YgdGhlIHN1YmNsYXNzZXMgb2YgdGhlIHNlY29uZCBsZXZlbCBvZiB0aGUgaGll
cmFyY2h5IAorICAgICAgICBhcyB3ZWxsIGFzIHB1bGxpbmcgdGhlIGZpbmlzaENyZWF0aW9uKCkg
Y2FsbHMgb3V0IGludG8gdGhlIGNsYXNzJ3MgY29ycmVzcG9uZGluZworICAgICAgICBjcmVhdGUo
KSBtZXRob2QgaWYgaXQgaGFzIG9uZS4gIERvaW5nIGJvdGggc2ltdWx0YW5lb3VzbHkgYWxsb3dz
IHVzIHRvIAorICAgICAgICBtYWludGFpbiB0aGUgaW52YXJpYW50IHRoYXQgdGhlIGZpbmlzaENy
ZWF0aW9uKCkgbWV0aG9kIGNoYWluIGlzIGNhbGxlZCBleGFjdGx5IAorICAgICAgICBvbmNlIGR1
cmluZyB0aGUgY3JlYXRpb24gb2YgYW4gb2JqZWN0LCBzaW5jZSBjYWxsaW5nIGl0IGFueSBvdGhl
ciBudW1iZXIgb2YgCisgICAgICAgIHRpbWVzICgwLCAyLCBvciBtb3JlKSB3aWxsIGNhdXNlIGFu
IGFzc2VydGlvbiBmYWlsdXJlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL0pTTlBPYmplY3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpKU05QT2JqZWN0OjpKU05QT2Jq
ZWN0KToKKyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0Lmg6CisKIDIwMTEt
MDktMDEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UkVHUkVTU0lPTjogUmVuZGVyaW5nIGFydGlmYWN0cyBvbiBhIHJvdGF0ZWQsIHBhdHRlcm4gZmls
bGVkIHNoYXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvSlNOUE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAKaW5kZXggMzNlZGJlOTIyZDZiODVkNjg5NzA4NTVj
OTcxNWRkYTgzMTA5YjZjNC4uMjI5MTBmNWNhNDc2NzY2NWFhMzhmYzhlYzRkY2RjZTk1ZmFmZGFm
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9KU05QT2JqZWN0LmNwcApAQCAtNTUsNiArNTUsMTIgQEAgSlNOUE9iamVjdDo6SlNO
UE9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBOUFJ1bnRpbWVPYmplY3RNYXAq
IG9iamVjdE0KICAgICAsIG1fb2JqZWN0TWFwKG9iamVjdE1hcCkKICAgICAsIG1fbnBPYmplY3Qo
bnBPYmplY3QpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0KTsKK30KKwordm9p
ZCBKU05QT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgp
LCBnbG9iYWxPYmplY3QpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAKICAgICAv
LyBXZSBzaG91bGQgbmV2ZXIgaGF2ZSBhbiBOUEpTT2JqZWN0IGluc2lkZSBhIEpTTlBPYmplY3Qu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
SlNOUE9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBPYmplY3QuaAppbmRleCAyZWExMjI4MmIxYjNhZWZlZjE2OWYyMzcxNTc3NjRhNjRhNTdh
ZDIyLi43NTgyMmMzYzU5NjczZDhjZGI3YTQ3YmViYzg2MWQzYmQ4YjY5YmRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2Jq
ZWN0LmgKQEAgLTU3LDYgKzU3LDkgQEAgcHVibGljOgogCiAgICAgTlBPYmplY3QqIG5wT2JqZWN0
KCkgY29uc3QgeyByZXR1cm4gbV9ucE9iamVjdDsgfQogCitwcm90ZWN0ZWQ6CisgICAgdm9pZCBm
aW5pc2hDcmVhdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisKIHByaXZhdGU6CiAgICAgSlNO
UE9iamVjdChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgTlBSdW50aW1lT2JqZWN0TWFwKiwgTlBPYmpl
Y3QqLCBKU0M6OlN0cnVjdHVyZSopOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>