<?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>68839</bug_id>
          
          <creation_ts>2011-09-26 15:13:43 -0700</creation_ts>
          <short_desc>De-virtualize JSCell::visitChildrenVirtual and remove all other visitChildrenVirtual methods</short_desc>
          <delta_ts>2011-09-29 12:36:24 -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>
          
          <blocked>67690</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>473428</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-26 15:13:43 -0700</bug_when>
    <thetext>The final step in moving visitChildren into the MethodTable in ClassInfo is to make JSCell::visitChildrenVirtual non-virtual and change its implementation to lookup the correct function pointer in the MethodTable.  We also need to remove all of the other visitChildrenVirtual methods throughout the class hierarchy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473526</commentid>
    <comment_count>1</comment_count>
      <attachid>108755</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-26 16:38:30 -0700</bug_when>
    <thetext>Created attachment 108755
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474040</commentid>
    <comment_count>2</comment_count>
      <attachid>108755</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-27 10:21:07 -0700</bug_when>
    <thetext>Comment on attachment 108755
Patch

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

&gt; Source/JavaScriptCore/runtime/JSCell.cpp:37
&gt; +void JSCell::visitChildrenVirtual(SlotVisitor&amp; visitor)
&gt; +{
&gt; +    classInfo()-&gt;methodTable.visitChildrenFunctionPtr(this, visitor);
&gt; +}

I think this should be inlined at the call site, not left as a cell member function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474107</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-27 11:28:00 -0700</bug_when>
    <thetext>&gt; I think this should be inlined at the call site, not left as a cell member function.

Maybe I could declare it as inline in JSObject.h?  That would alleviate the cost of the extra method call but still allow us to hide the internal method table representation in case we decide to do something later like caching method lookups in the Structure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474876</commentid>
    <comment_count>4</comment_count>
      <attachid>109042</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-28 11:56:14 -0700</bug_when>
    <thetext>Created attachment 109042
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475021</commentid>
    <comment_count>5</comment_count>
      <attachid>109042</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-28 14:28:54 -0700</bug_when>
    <thetext>Comment on attachment 109042
Patch

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

&gt; Source/JavaScriptCore/runtime/JSCell.h:89
&gt; +        void visitChildrenVirtual(SlotVisitor&amp;);

This function name is now not great. I suggest just inlining the logic at the call site, as I suggested before. Or renaming this. I don’t think we should use “virtual” to mean “dispatch through the structure method table” since it has a specific C++ meaning already.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475023</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-28 14:29:47 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; I think this should be inlined at the call site, not left as a cell member function.
&gt; 
&gt; Maybe I could declare it as inline in JSObject.h?  That would alleviate the cost of the extra method call but still allow us to hide the internal method table representation in case we decide to do something later like caching method lookups in the Structure.

I think the real issue is that it’s not a great abstraction. The word “virtual” doesn’t seem great to me, and I don’t think having the single level of indirection has a real practical benefit if we later decide to change things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475030</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-09-28 14:53:19 -0700</bug_when>
    <thetext>&gt; ...in case we decide to do something later like caching method lookups in the Structure.

This is a good point, but I think your patch has proven that we won&apos;t need that optimization later. If visitChildren can afford an extra pointer indirection, so can all the other virtual functions, which are less hot.

I tend to agree with Darin&apos;s suggestion, since I don&apos;t like functions that just call other functions. To make sure call sites aren&apos;t super-verbose, I&apos;d give JSCell convenience functions for retrieving structure(), classInfo(), or methodTable().

Also, I think most of the targets of these function pointers can be protected. It&apos;s almost always a bug to call one directly. (The only case I know of where it makes sense to call one of these functions directly is the optimization in MarkStack, where we call a specific function target after checking the object&apos;s type.)

&gt; Source/JavaScriptCore/ChangeLog:58
&gt; +        Added an out of line virtual destructor to JSWrapperObject and ScopeChainNode to 
&gt; +        appease the vtable gods.  It refused to compile if there were no virtual methods in 
&gt; +        both of these classes due to the presence of a weak vtable pointer.

If this happens again, I think it would be better to add a &quot;virtual void noWeakVtableDummy()&quot; to the JSCell hierarchy so we can avoid having to change real, meaningful functions to satisfy the weak vtable gods.

You can address these comments in a follow-up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475083</commentid>
    <comment_count>8</comment_count>
      <attachid>109091</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-28 16:52:26 -0700</bug_when>
    <thetext>Created attachment 109091
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475520</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-29 10:45:46 -0700</bug_when>
    <thetext>I&apos;m not really sure about the style errors.  The errors weren&apos;t posted by the review bot, they&apos;re not accessible from the patch status page, and I get no errors when I run check-webkit-style locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475575</commentid>
    <comment_count>10</comment_count>
      <attachid>109091</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-09-29 12:02:33 -0700</bug_when>
    <thetext>Comment on attachment 109091
Patch

r=me, the robots are not our masters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475603</commentid>
    <comment_count>11</comment_count>
      <attachid>109091</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-29 12:36:18 -0700</bug_when>
    <thetext>Comment on attachment 109091
Patch

Clearing flags on attachment: 109091

Committed r96346: &lt;http://trac.webkit.org/changeset/96346&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475604</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-29 12:36:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108755</attachid>
            <date>2011-09-26 16:38:30 -0700</date>
            <delta_ts>2011-09-28 11:56:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68839-20110926163829.patch</filename>
            <type>text/plain</type>
            <size>59613</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYwMTQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggMWRlZmI0ZTVlNTZlMWY1Y2Q1NTM4OTdmYTRiYjU4NTUz
NTllNTA4My4uZTZiZTQyOTY3ODMwNGY1NGQ0ODdkYjc3OTM1Yzk2YmQyYjViNjgxNyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE5NiwxMSAr
MTk2LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0
RGF0YShDb25zdHJ1Y3REYXRhJik7CiAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShD
YWxsRGF0YSYpOwogCi0gICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RW
aXNpdG9yJiB2aXNpdG9yKQotICAgIHsKLSAgICAgICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNp
dG9yKTsKLSAgICB9Ci0KICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2Vs
bCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgewogICAgICAgICBKU0NhbGxiYWNrT2JqZWN0
KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdCo+KGNlbGwpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggMmJjMjUzMGU1M2I0MjE4NzY2NGNmZjk4ZWY0NWNiYTQ0
NzlmYTZkYy4uYTMxZTQ4ZTlhMDE3M2RkYzA2ZmRkM2NiYmY2MWU1YzM4ZmQwMTg2MCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTEtMDktMjYgIE1hcmsgSGFo
bmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBEZS12aXJ0dWFsaXpl
IEpTQ2VsbDo6dmlzaXRDaGlsZHJlblZpcnR1YWwgYW5kIHJlbW92ZSBhbGwgb3RoZXIgdmlzaXRD
aGlsZHJlblZpcnR1YWwgbWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njg4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBEZS12aXJ0dWFsaXplZCBKU0NlbGw6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFs
IGFuZCBjaGFuZ2VzIGl0cyBpbXBsZW1lbnRhdGlvbiB0byBsb29rIHVwIHRoZSAKKyAgICAgICAg
ZnVuY3Rpb24gcG9pbnRlciBpbiB0aGUgTWV0aG9kVGFibGUgaW4gdGhlIENsYXNzSW5mbyBzdHJ1
Y3QuICBSZW1vdmVkIHRoZSByZW1haW5pbmcgCisgICAgICAgIHZpc2l0Q2hpbGRyZW5WaXJ0dWFs
IG1ldGhvZHMuICBUaGlzIHBhdGNoIGNvbXBsZXRlcyB0aGUgcHJvY2VzcyBvZiBkZS12aXJ0dWFs
aXppbmcgCisgICAgICAgIHZpc2l0Q2hpbGRyZW4uCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFj
a09iamVjdC5oOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmOgorICAg
ICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHA6CisgICAgICAgICogZGVidWdn
ZXIvRGVidWdnZXJBY3RpdmF0aW9uLmg6CisgICAgICAgICogcnVudGltZS9Bcmd1bWVudHMuY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgICogcnVudGltZS9FeGVj
dXRhYmxlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKiBy
dW50aW1lL0dldHRlclNldHRlci5jcHA6CisgICAgICAgICogcnVudGltZS9HZXR0ZXJTZXR0ZXIu
aDoKKyAgICAgICAgKiBydW50aW1lL0pTQWN0aXZhdGlvbi5jcHA6CisgICAgICAgICogcnVudGlt
ZS9KU0FjdGl2YXRpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNBcnJheS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNDZWxsOjp2aXNpdENoaWxkcmVuVmlydHVhbCk6CisgICAgICAgICogcnVu
dGltZS9KU0NlbGwuaDoKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAgICAg
ICAoSlNDOjpKU0Z1bmN0aW9uOjpjYWxjdWxhdGVkRGlzcGxheU5hbWUpOgorICAgICAgICAqIHJ1
bnRpbWUvSlNGdW5jdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1l
L0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgICog
cnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pT
UHJvcGVydHlOYW1lSXRlcmF0b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0pTU3RhdGljU2NvcGVP
YmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNXcmFw
cGVyT2JqZWN0Ojp+SlNXcmFwcGVyT2JqZWN0KToKKyAgICAgICAgKiBydW50aW1lL0pTV3JhcHBl
ck9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgICogcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmg6CisgICAgICAgICog
cnVudGltZS9SZWdFeHBPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0
Lmg6CisgICAgICAgICogcnVudGltZS9TY29wZUNoYWluLmNwcDoKKyAgICAgICAgKEpTQzo6U2Nv
cGVDaGFpbk5vZGU6On5TY29wZUNoYWluTm9kZSk6CisgICAgICAgICogcnVudGltZS9TY29wZUNo
YWluLmg6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuY3BwOgorICAgICAgICAqIHJ1bnRp
bWUvU3RydWN0dXJlLmg6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5jcHA6Cisg
ICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5oOgorCiAyMDExLTA5LTI2ICBOb2VsIEdv
cmRvbiAgPG5vZWwuZ29yZG9uQGdtYWlsLmNvbT4KIAogICAgICAgICBbQ2hyb21pdW1dIFJlbW92
ZSBERkdBbGlhc1RyYWNrZXIuaCByZWZlcmVuY2VzIGZyb20gZ3lwIHByb2plY3QgZmlsZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCmluZGV4IDc0ZGUwODE1NzI5NDMx
YWM4OGIzZDY0ZDk2MjFmNmU0MzU5ZjQ0NmEuLmRmMTNkMTBiMDRmZTUwZmU4MjAzZDEwMmM3NWU2
NjgzYjg1ZmYwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS5leHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cApA
QCAtMTY2LDcgKzE2Niw2IEBAIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDEzdmlzaXRDaGlsZHJl
bkVQTlNfNkpTQ2VsbEVSTlNfMTFTbG90VmlzaXRvckUKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVj
dDE2YWRkU3RhdGljR2xvYmFsc0VQTlMwXzE4R2xvYmFsUHJvcGVydHlJbmZvRWkKIF9fWk4zSlND
MTRKU0dsb2JhbE9iamVjdDE3cHV0V2l0aEF0dHJpYnV0ZXNFUE5TXzlFeGVjU3RhdGVFUktOU18x
MElkZW50aWZpZXJFTlNfN0pTVmFsdWVFagogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MThnZXRP
d25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJv
cGVydHlTbG90RQotX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MjB2aXNpdENoaWxkcmVuVmlydHVh
bEVSTlNfMTFTbG90VmlzaXRvckUKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDI0Z2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFBy
b3BlcnR5RGVzY3JpcHRvckUKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDNwdXRFUE5TXzlFeGVj
U3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90
RSAgCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3Q0aW5pdEVQTlNfOEpTT2JqZWN0RQpAQCAtMjc4
LDcgKzI3Nyw2IEBAIF9fWk4zSlNDN0pTQXJyYXkxNGZpbmlzaENyZWF0aW9uRVJOU18xMkpTR2xv
YmFsRGF0YUUKIF9fWk4zSlNDN0pTQXJyYXkxNGZpbmlzaENyZWF0aW9uRVJOU18xMkpTR2xvYmFs
RGF0YUVSS05TXzdBcmdMaXN0RQogX19aTjNKU0M3SlNBcnJheTE1c2V0U3ViY2xhc3NEYXRhRVB2
CiBfX1pOM0pTQzdKU0FycmF5MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFalJO
U18xMlByb3BlcnR5U2xvdEUKLV9fWk4zSlNDN0pTQXJyYXkyMHZpc2l0Q2hpbGRyZW5WaXJ0dWFs
RVJOU18xMVNsb3RWaXNpdG9yRQogX19aTjNKU0M3SlNBcnJheTZzX2luZm9FCiBfX1pOM0pTQzdK
U0FycmF5OXNldExlbmd0aEVqCiBfX1pOM0pTQzdKU0FycmF5QzFFUk5TXzEySlNHbG9iYWxEYXRh
RVBOU185U3RydWN0dXJlRQpAQCAtMzIzLDcgKzMyMSw2IEBAIF9fWk4zSlNDOEpTT2JqZWN0MTdw
dXRXaXRoQXR0cmlidXRlc0VQTlNfOUV4ZWNTdGF0ZUVqTlNfN0pTVmFsdWVFagogX19aTjNKU0M4
SlNPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJvcGVy
dHlTbG90RQogX19aTjNKU0M4SlNPYmplY3QxOGdldFByaW1pdGl2ZU51bWJlckVQTlNfOUV4ZWNT
dGF0ZUVSZFJOU183SlNWYWx1ZUUKIF9fWk4zSlNDOEpTT2JqZWN0MTlnZXRPd25Qcm9wZXJ0eU5h
bWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5TXzE1RW51bWVyYXRp
b25Nb2RlRQotX19aTjNKU0M4SlNPYmplY3QyMHZpc2l0Q2hpbGRyZW5WaXJ0dWFsRVJOU18xMVNs
b3RWaXNpdG9yRQogX19aTjNKU0M4SlNPYmplY3QyMWdldFByb3BlcnR5RGVzY3JpcHRvckVQTlNf
OUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCiBf
X1pOM0pTQzhKU09iamVjdDIyZmlsbEdldHRlclByb3BlcnR5U2xvdEVSTlNfMTJQcm9wZXJ0eVNs
b3RFUE5TXzE2V3JpdGVCYXJyaWVyQmFzZUlOU183VW5rbm93bkVFRQogX19aTjNKU0M4SlNPYmpl
Y3QyM2FsbG9jYXRlUHJvcGVydHlTdG9yYWdlRVJOU18xMkpTR2xvYmFsRGF0YUVtbQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRleCAz
ZWI3OGI1M2Q3ZDQ5ZjQ2OGQzYjFjMWYwMTRhM2FlMGVjMWVkYTNlLi44ZjQ2NzNlMGM1YzY2NjYy
NTA0MWU3Yjc1ZmQwNmVmNGU1ODgzN2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRl
ZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMzMsNiArMzMsNyBAQCBFWFBPUlRTCiAg
ICAgPz8xSlNHbG9iYWxPYmplY3RASlNDQEBVQUVAWFoKICAgICA/PzFNdXRleEBXVEZAQFFBRUBY
WgogICAgID8/MVJlZkNvdW50ZWRMZWFrQ291bnRlckBXVEZAQFFBRUBYWgorICAgID8/MVNjb3Bl
Q2hhaW5Ob2RlQEpTQ0BARUFFQFhaCiAgICAgPz8xU291cmNlUHJvdmlkZXJDYWNoZUBKU0NAQFFB
RUBYWgogICAgID8/MVRocmVhZENvbmRpdGlvbkBXVEZAQFFBRUBYWgogICAgID8/MVdURlRocmVh
ZERhdGFAV1RGQEBRQUVAWFoKQEAgLTM3OCw5ICszNzksNiBAQCBFWFBPUlRTCiAgICAgP3Z0YWJs
ZUFuY2hvckBJbnRlcm5hbEZ1bmN0aW9uQEpTQ0BARUFFWFhaCiAgICAgP3Zpc2l0Q2hpbGRyZW5A
SlNHbG9iYWxPYmplY3RASlNDQEBTQVhQQVZKU0NlbGxAMkBBQVZTbG90VmlzaXRvckAyQEBaCiAg
ICAgP3Zpc2l0Q2hpbGRyZW5ASlNPYmplY3RASlNDQEBTQVhQQVZKU0NlbGxAMkBBQVZTbG90Vmlz
aXRvckAyQEBaCi0gICAgP3Zpc2l0Q2hpbGRyZW5WaXJ0dWFsQEpTR2xvYmFsT2JqZWN0QEpTQ0BA
VUFFWEFBVlNsb3RWaXNpdG9yQDJAQFoKLSAgICA/dmlzaXRDaGlsZHJlblZpcnR1YWxASlNPYmpl
Y3RASlNDQEBVQUVYQUFWU2xvdFZpc2l0b3JAMkBAWgotICAgID92aXNpdENoaWxkcmVuVmlydHVh
bEBTY29wZUNoYWluTm9kZUBKU0NAQFVBRVhBQVZTbG90VmlzaXRvckAyQEBaCiAgICAgP3dhaXRA
VGhyZWFkQ29uZGl0aW9uQFdURkBAUUFFWEFBVk11dGV4QDJAQFoKICAgICA/d2FpdEZvclRocmVh
ZENvbXBsZXRpb25AV1RGQEBZQUhJUEFQQVhAWgogICAgID93cml0YWJsZUBQcm9wZXJ0eURlc2Ny
aXB0b3JASlNDQEBRQkVfTlhaCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVi
dWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCmluZGV4IGVmOTdiMGZjNTliNDQ1ZmU4MzQ4ZDNk
ZjQ5MDJlMGRkZTJiZDRjNWIuLmQ3Yjg2NmQyNjgwMGFjODZjYzFlMzZiOTNmYTE0OGIwZDc2NTk4
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFj
dGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dl
ckFjdGl2YXRpb24uY3BwCkBAIC00MywxMSArNDMsNiBAQCB2b2lkIERlYnVnZ2VyQWN0aXZhdGlv
bjo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU09iamVjdCogYWN0
aQogICAgIG1fYWN0aXZhdGlvbi5zZXQoZ2xvYmFsRGF0YSwgdGhpcywgc3RhdGljX2Nhc3Q8SlNB
Y3RpdmF0aW9uKj4oYWN0aXZhdGlvbikpOwogfQogCi12b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6
dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRD
aGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246OnZp
c2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBE
ZWJ1Z2dlckFjdGl2YXRpb24qIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxEZWJ1Z2dlckFjdGl2
YXRpb24qPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9EZWJ1Z2dlckFjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9E
ZWJ1Z2dlckFjdGl2YXRpb24uaAppbmRleCBiMGMyMGMyY2M5MzlmZDliYzE3NGQ4NTI3ZjgwZDc4
MGZhYTI2N2E2Li45NzExMGIyZjg4OTNlMDllZjRlMzQ1ODUzYWMyZDdhYTA5MWQyMGQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9u
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlv
bi5oCkBAIC00MSw3ICs0MSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJu
IGFjdGl2YXRpb247CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGls
ZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGls
ZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogICAgICAgICB2aXJ0dWFsIFVTdHJpbmcgY2xh
c3NOYW1lKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCmluZGV4IDYy
ZjQ4NWQ5MDZjYWMwNjAxNzBkODc0Y2EzMjc3OGI5ODMzN2IwZDYuLmY1M2I5YmRjYjZiODgxMjhh
NjEzY2E1ZGU1MzNjODU2ZmNkYWI0M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQXJndW1lbnRzLmNwcApAQCAtNDMsMTEgKzQzLDYgQEAgQXJndW1lbnRzOjp+QXJndW1lbnRz
KCkKICAgICAgICAgZGVsZXRlIFtdIGQtPmV4dHJhQXJndW1lbnRzOwogfQogCi12b2lkIEFyZ3Vt
ZW50czo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAg
dmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBBcmd1bWVudHM6OnZpc2l0
Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBBcmd1
bWVudHMqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxBcmd1bWVudHMqPihjZWxsKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKaW5kZXggNWUyMzA3NDZkYzNjY2Ux
M2IzMGY1MTZhZDUyMjY3OWI1YWY5OTk1Yy4uZmU5OTBiNDQ3M2U0YTk4MDEyOGI5M2NjYmQ5NTVm
OTI2MDZiZTc3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJn
dW1lbnRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgK
QEAgLTkwLDcgKzkwLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIGNvbnN0
IENsYXNzSW5mbyBzX2luZm87CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW5W
aXJ0dWFsKFNsb3RWaXNpdG9yJik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4o
SlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAogICAgICAgICB2b2lkIGZpbGxBcmdMaXN0KEV4ZWNT
dGF0ZSosIE1hcmtlZEFyZ3VtZW50QnVmZmVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuY3BwCmluZGV4IDc4MWI5MzRkY2EzZmJmZDJmMTIxODJiMGQxNjY0
Zjg1YzgwMmMzOWMuLjNiYmFlMWIzODAxODk3ZDVlNDJkNWZhYmRiOWEwOTYyZDM1OTQyM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCkBAIC0yMzQs
MTEgKzIzNCw2IEBAIHZvaWQgRXZhbEV4ZWN1dGFibGU6OmpldHRpc29uT3B0aW1pemVkQ29kZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCiB9CiAjZW5kaWYKIAotdm9pZCBFdmFsRXhlY3V0YWJs
ZTo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlz
aXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBFdmFsRXhlY3V0YWJsZTo6dmlz
aXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEV2
YWxFeGVjdXRhYmxlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8RXZhbEV4ZWN1dGFibGUqPihj
ZWxsKTsKQEAgLTM3OCwxMSArMzczLDYgQEAgdm9pZCBQcm9ncmFtRXhlY3V0YWJsZTo6dW5saW5r
Q2FsbHMoKQogI2VuZGlmCiB9CiAKLXZvaWQgUHJvZ3JhbUV4ZWN1dGFibGU6OnZpc2l0Q2hpbGRy
ZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhp
cywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgUHJvZ3JhbUV4ZWN1dGFibGU6OnZpc2l0Q2hpbGRyZW4o
SlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBQcm9ncmFtRXhlY3V0
YWJsZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFByb2dyYW1FeGVjdXRhYmxlKj4oY2VsbCk7
CkBAIC01OTYsMTEgKzU4Niw2IEBAIHZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlOjpqZXR0aXNvbk9w
dGltaXplZENvZGVGb3JDb25zdHJ1Y3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxECiB9CiAjZW5kaWYK
IAotdm9pZCBGdW5jdGlvbkV4ZWN1dGFibGU6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNp
dG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0K
IHZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiB0aGlzT2JqZWN0
ID0gc3RhdGljX2Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKaW5kZXggMTUzMDhiZjY3ODBiMzFmMTFhM2Y1
ZTU2NWQ2YjJjNTAyZDJmYTY5Ny4uMjQ1NzcyOWViNjg4NDdjM2QzZTZiOGU1MGZlZDZhYThmYTYy
MzkzMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJs
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaApAQCAt
MzU2LDcgKzM1Niw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBFdmFsRXhlY3V0YWJsZShF
eGVjU3RhdGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgYm9vbCk7CiAKICAgICAgICAgSlNPYmplY3Qq
IGNvbXBpbGVJbnRlcm5hbChFeGVjU3RhdGUqLCBTY29wZUNoYWluTm9kZSosIEpJVENvZGU6OkpJ
VFR5cGUpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZp
c2l0b3ImKTsKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90
VmlzaXRvciYpOwogICAgICAgICB2b2lkIHVubGlua0NhbGxzKCk7CiAKQEAgLTQyMiw3ICs0MjEs
NiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUHJvZ3JhbUV4ZWN1dGFibGUoRXhlY1N0YXRl
KiwgY29uc3QgU291cmNlQ29kZSYpOwogCiAgICAgICAgIEpTT2JqZWN0KiBjb21waWxlSW50ZXJu
YWwoRXhlY1N0YXRlKiwgU2NvcGVDaGFpbk5vZGUqLCBKSVRDb2RlOjpKSVRUeXBlKTsKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJik7CiAgICAg
ICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKICAg
ICAgICAgdm9pZCB1bmxpbmtDYWxscygpOwogCkBAIC01ODIsNyArNTgwLDYgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIFNoYXJlZFN5bWJvbFRhYmxlKiBzeW1ib2xUYWJsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc3ltYm9sVGFibGU7IH0KIAogICAgICAgICB2b2lkIGRpc2NhcmRDb2RlKCk7Ci0g
ICAgICAgIHZvaWQgdmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKICAgICAgICAg
c3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogICAgICAg
ICBzdGF0aWMgRnVuY3Rpb25FeGVjdXRhYmxlKiBmcm9tR2xvYmFsQ29kZShjb25zdCBJZGVudGlm
aWVyJiwgRXhlY1N0YXRlKiwgRGVidWdnZXIqLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNPYmplY3Qq
KiBleGNlcHRpb24pOwogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U1ZhbHVlIHByb3RvKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
R2V0dGVyU2V0dGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldHRlclNl
dHRlci5jcHAKaW5kZXggZDBhNTc4YWU0ZjhmY2IwZWFhODdkNGI5NWI3OTc0ZTljMzM0N2RmOS4u
YmVmOTg3ZjZhNzcxNmNhNmM5YjFjZDBlMzYxN2NlYmQyMTMxYjI0NSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuY3BwCkBAIC0zMCwxMSArMzAsNiBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIEdldHRlclNldHRlcjo6c19pbmZv
ID0geyAiR2V0dGVyU2V0dGVyIiwgMCwgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShHZXR0ZXJT
ZXR0ZXIpIH07CiAKLXZvaWQgR2V0dGVyU2V0dGVyOjp2aXNpdENoaWxkcmVuVmlydHVhbChTbG90
VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpOwot
fQotCiB2b2lkIEdldHRlclNldHRlcjo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RW
aXNpdG9yJiB2aXNpdG9yKQogewogICAgIEdldHRlclNldHRlciogdGhpc09iamVjdCA9IHN0YXRp
Y19jYXN0PEdldHRlclNldHRlcio+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9HZXR0ZXJTZXR0ZXIuaAppbmRleCBhMzEyZjczMGRkMzVmYzBiZWVjMzhkMzcwNzEyNWMz
MDMyMWFhYzM4Li5kNWFhYjgxYzE5N2E2YWEwM2JhZGE4MTM5ODQ3NTc1MTIwZDA3ZTJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaApAQCAtNTMsNyAr
NTMsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBnZXR0ZXJTZXR0ZXI7
CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlblZpcnR1YWwo
U2xvdFZpc2l0b3ImKTsKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwq
LCBTbG90VmlzaXRvciYpOwogCiAgICAgICAgIEpTT2JqZWN0KiBnZXR0ZXIoKSBjb25zdCB7IHJl
dHVybiBtX2dldHRlci5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQWN0aXZhdGlvbi5jcHAKaW5kZXggOTU5YmNmODA5YjAzOTg5ZDhjMWRkNTBlYzExM2Q5OThl
NzUwMGRiMi4uNDQyYjc3ZjAzYjdhNDEwZjZiOGFmMzEzZGQwZjMwYzcxYTQwYjAwYiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCkBAIC02Mywx
MSArNjMsNiBAQCBKU0FjdGl2YXRpb246On5KU0FjdGl2YXRpb24oKQogICAgIHN0YXRpY19jYXN0
PFNoYXJlZFN5bWJvbFRhYmxlKj4obV9zeW1ib2xUYWJsZSktPmRlcmVmKCk7CiB9CiAKLXZvaWQg
SlNBY3RpdmF0aW9uOjp2aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYgdmlzaXRvcikK
LXsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpOwotfQotCiB2b2lkIEpTQWN0aXZh
dGlvbjo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQog
ewogICAgIEpTQWN0aXZhdGlvbiogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTQWN0aXZhdGlv
bio+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
Y3RpdmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24u
aAppbmRleCA5OTEwOTc2ZDM0Zjk4ZGJkY2FkZjk4NDJlYzE4MDI3NTM1ZWZiYzUyLi5lNmU3NzRm
N2E3MTgxOGMzZDQ1ZmJiOGEyZWFlNWJmODZhODcwNGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaApAQCAtNTUsNyArNTUsNiBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgICAgICB2aXJ0dWFsIH5KU0FjdGl2YXRpb24oKTsKIAotICAgICAgICB2aXJ0
dWFsIHZvaWQgdmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKICAgICAgICAgc3Rh
dGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCiAgICAgICAg
IHZpcnR1YWwgYm9vbCBpc0R5bmFtaWNTY29wZShib29sJiByZXF1aXJlc0R5bmFtaWNDaGVja3Mp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAppbmRleCAx
ZDBhMTU2YWM1NmYyMDM2Yjk1MDNjYTU3NWIyOTU1NGIwODBkZWUxLi4wMjBjY2YwYTM1M2Y5NWMx
MDIxOGJjYjNjN2NiOTI2NjRmZjEzZjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5LmNwcApAQCAtODcxLDExICs4NzEsNiBAQCB2b2lkIEpTQXJyYXk6OnVuc2hpZnRD
b3VudChFeGVjU3RhdGUqIGV4ZWMsIGludCBjb3VudCkKICAgICAgICAgdmVjdG9yW2ldLmNsZWFy
KCk7CiB9CiAKLXZvaWQgSlNBcnJheTo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3Im
IHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9p
ZCBKU0FycmF5Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0
b3IpCiB7CiAgICAgSlNBcnJheSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTQXJyYXkqPihj
ZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXku
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAppbmRleCBlOGZlNzg5
NTAyOGRmOTM3MjlhMzAzNDZmMDBkY2NmNWZmNTk5ZWJhLi5lNTUzMmFiM2JiNTkxOWIzMWVkMDRk
NTVlZmVmNmMyM2UyZDZjMTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0FycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJh
eS5oCkBAIC0xNzIsNyArMTcyLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwg
dW5zaWduZWQgcHJvcGVydHlOYW1lKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3Bl
cnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUg
bW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwotICAgICAgICB2aXJ0dWFsIHZvaWQg
dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKICAgICAgICAgc3RhdGljIHZvaWQg
dmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCiAgICAgICAgIHZvaWQqIHN1
YmNsYXNzRGF0YSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDZWxsLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5j
cHAKaW5kZXggYjdhZmU5YmUxZWE1ODQwZGU1YTMwODczNDJmM2M0MzIxNzMzMjkyMS4uZWRhZDVj
ZWZhMjQ5MTljZDA4OWU5ODc3MmVhYmRmMGRhN2JkNzczYiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0NlbGwuY3BwCkBAIC0zMSw2ICszMSwxMSBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAordm9pZCBKU0NlbGw6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQoreworICAgIGNsYXNzSW5mbygpLT5tZXRob2RUYWJsZS52aXNpdENoaWxkcmVuRnVuY3Rp
b25QdHIodGhpcywgdmlzaXRvcik7Cit9CisKIGJvb2wgSlNDZWxsOjpnZXRTdHJpbmcoRXhlY1N0
YXRlKiBleGVjLCBVU3RyaW5nJnN0cmluZ1ZhbHVlKSBjb25zdAogewogICAgIGlmICghaXNTdHJp
bmcoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgKaW5kZXggNjI2OGIxZDli
YzVkN2U0ZWYxN2E3MDEzOTJkZDIzZTUwM2VkYTdkYS4uNWNiMjdiNmVlMDM2MTIzYTQ3ZDNmNjY1
YmYzMTI2Y2VmYmQyNTE4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDZWxsLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmgK
QEAgLTg0LDggKzg0LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgVVN0cmlu
ZyB0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBKU09iamVjdCog
dG9PYmplY3QoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKIAotICAgICAgICB2
aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKICAgICAgICAg
c3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOworICAgICAg
ICB2b2lkIHZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJik7CiAKICAgICAgICAgLy8g
T2JqZWN0IG9wZXJhdGlvbnMsIHdpdGggdGhlIHRvT2JqZWN0IG9wZXJhdGlvbiBpbmNsdWRlZC4K
ICAgICAgICAgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdDsKQEAgLTE4MCwxMSAr
MTgwLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiBtX3N0cnVjdHVyZS5nZXQo
KTsKICAgICB9CiAKLSAgICBpbmxpbmUgdm9pZCBKU0NlbGw6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFs
KFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotICAgIHsKLSAgICAgICAgdmlzaXRDaGlsZHJlbih0aGlz
LCB2aXNpdG9yKTsKLSAgICB9Ci0KICAgICBpbmxpbmUgdm9pZCBKU0NlbGw6OnZpc2l0Q2hpbGRy
ZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKICAgICB7CiAgICAgICAgIEpT
Q2VsbCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTQ2VsbCo+KGNlbGwpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCAwNjhjOWMxOWE0YTA2
NjczNGE0MDgxZDIzOGYxZGVmZGQwYWU3M2M5Li42YTkyNDRmYzE1MThlZjliZThmMzkwNGM1ZGM2
MmQ4YzUxMTgyZGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0
aW9uLmNwcApAQCAtMTUxLDExICsxNTEsNiBAQCBjb25zdCBVU3RyaW5nIEpTRnVuY3Rpb246OmNh
bGN1bGF0ZWREaXNwbGF5TmFtZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIG5hbWUoZXhl
Yyk7CiB9CiAKLXZvaWQgSlNGdW5jdGlvbjo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0
b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQog
dm9pZCBKU0Z1bmN0aW9uOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3Im
IHZpc2l0b3IpCiB7CiAgICAgSlNGdW5jdGlvbiogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpT
RnVuY3Rpb24qPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rp
b24uaAppbmRleCBhNWQwM2RkYjliM2Y1YmJhNjYxZjMxMmI5NDFiMDg4MmM2ZTc4NTkwLi5jMGQ5
YTQxMmRjZmI3YjhjZmY4YmQwZTM1ZGYyNDFiZmJhNGQ1NDFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCkBAIC0xMzQsNyArMTM0LDYgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5h
bWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwog
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYp
OwogICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9y
Jik7CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDk4YzExZDQwNjZlNTFlMGY3YjFkYTY5MjlkMmJjM2Qx
MjIwZWVmMjguLjk5NmZjMjkyMTJhNTA4NTI4NmQ1ZTIyMDQ1ZDczMTkyNmNkYTEzNDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAg
LTMwOCwxMSArMzA4LDYgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6cmVzZXRQcm90b3R5cGUoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKICAgICAgICAgb2xkTGFz
dEluUHJvdG90eXBlQ2hhaW4tPnNldFByb3RvdHlwZShnbG9iYWxEYXRhLCBvYmplY3RQcm90b3R5
cGUpOwogfQogCi12b2lkIEpTR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuVmlydHVhbChTbG90
VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpOwot
fQotCiB2b2lkIEpTR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCiB7IAogICAgIEpTR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0g
c3RhdGljX2Nhc3Q8SlNHbG9iYWxPYmplY3QqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDNmMGI4NWQ5NjliNmMwMTZiNmQ5
YTVmMzU3MGI2MTVkYmIxM2NmMWIuLjlkZmFkMTIyMmU5ZjUxNTA0ZWRiYThiYjAxZDFlOTU4NjFi
YTZkMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuaApAQCAtMTc1LDcgKzE3NSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHB1YmxpYzoKICAg
ICAgICAgdmlydHVhbCB+SlNHbG9iYWxPYmplY3QoKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQg
dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKICAgICAgICAgc3RhdGljIHZvaWQg
dmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFBy
b3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3Bw
CmluZGV4IGNkMWE3NDZlMTcwMTUyMzA5ZTg3MjNlZDM0MDJiZTYxNWUzMGJkNjIuLmFiY2VhZDg5
MTYzZWU1NWVhYzkwYzJjZjhmZTY0NGIxODVhMWY4NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTY4LDExICs2OCw2IEBAIHN0YXRpYyBpbmxpbmUg
dm9pZCBnZXRDbGFzc1Byb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBDbGFzc0lu
Zm8qIGNsYXNzCiAgICAgfQogfQogCi12b2lkIEpTT2JqZWN0Ojp2aXNpdENoaWxkcmVuVmlydHVh
bChTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0
b3IpOwotfQotCiB2b2lkIEpTT2JqZWN0Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgSlNPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNf
Y2FzdDxKU09iamVjdCo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0LmgKaW5kZXggZWNiZGM2ODQyMmQ5YjIwMTgxMzgwODJjYWQ4ZmIzNjNjYTQxNDcyMS4uZGIx
YTdmYzM1OTgxNWEwOGU1NGM2MTI3ZDFmNTkxYWNkMzk2NGZlNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC03OSwxMCArNzksMTEgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpTQ2VsbCBCYXNlOwogCi0gICAgICAg
IHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYpOwogICAgICAg
ICBBTFdBWVNfSU5MSU5FIHZvaWQgdmlzaXRDaGlsZHJlbkRpcmVjdChTbG90VmlzaXRvciYpOwog
ICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7
CiAKKyAgICAgICAgdmlydHVhbCBVU3RyaW5nIGNsYXNzTmFtZSgpIGNvbnN0OworCiAgICAgICAg
IC8vIFRoZSBpbmxpbmUgdmlydHVhbCBkZXN0cnVjdG9yIGNhbm5vdCBiZSB0aGUgZmlyc3Qgdmly
dHVhbCBmdW5jdGlvbiBkZWNsYXJlZAogICAgICAgICAvLyBpbiB0aGUgY2xhc3MgYXMgaXQgcmVz
dWx0cyBpbiB0aGUgdnRhYmxlIGJlaW5nIGdlbmVyYXRlZCBhcyBhIHdlYWsgc3ltYm9sCiAgICAg
ICAgIHZpcnR1YWwgfkpTT2JqZWN0KCk7CkBAIC05Myw4ICs5NCw2IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICAKICAgICAgICAgU3RydWN0dXJlKiBpbmhlcml0b3JJRChKU0dsb2JhbERhdGEm
KTsKIAotICAgICAgICB2aXJ0dWFsIFVTdHJpbmcgY2xhc3NOYW1lKCkgY29uc3Q7Ci0KICAgICAg
ICAgSlNWYWx1ZSBnZXQoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
KSBjb25zdDsKICAgICAgICAgSlNWYWx1ZSBnZXQoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVy
dHlOYW1lKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcAppbmRleCA5NzAyNWE0ZTRmYjkxOGQzMmRm
Mzg4MWZiMzg0ODVhNGViODkxODgxLi5hYmFiNzllZjdkZWYzNDBjNzdlNzBmNzk1OGYzOGEyYTc5
ZTRlODAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3Bl
cnR5TmFtZUl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcApAQCAtOTIsMTEgKzkyLDYgQEAgSlNWYWx1ZSBKU1By
b3BlcnR5TmFtZUl0ZXJhdG9yOjpnZXQoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZSwg
c2l6ZV90IGkpCiAgICAgcmV0dXJuIGlkZW50aWZpZXI7CiB9CiAKLXZvaWQgSlNQcm9wZXJ0eU5h
bWVJdGVyYXRvcjo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17
Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBKU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCiB7CiAgICAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogdGhpc09iamVjdCA9IHN0YXRp
Y19jYXN0PEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaAppbmRleCBj
NmY2OTc5NzJjYTc1NDZiNTJhNjQ2YjM3MGM5ZDBmZjU3MWM4NTQ4Li45N2E1MDMyNmJkYzllY2M0
Yjk4MjRlMmY1MmNlNmMyMDYwYjU2NGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oCkBAIC01OCw3ICs1OCw2IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUs
IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4pLCAmc19pbmZvKTsKICAgICAgICAgfQogCi0gICAgICAg
IHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYpOwogICAgICAg
ICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAKICAg
ICAgICAgYm9vbCBnZXRPZmZzZXQoc2l6ZV90IGksIGludCYgb2Zmc2V0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcAppbmRl
eCAzMWRhODBhNzllY2Q2MDdlZTE5OTIyN2IwMmFlN2VkNGZkM2ViMTgxLi5iNjc4MGVmYjNlNGZi
MjlkN2NmOGY2OGRlN2JhYjU1NTZmOWY4N2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcApAQCAtMzIsMTEgKzMyLDYg
QEAKIG5hbWVzcGFjZSBKU0MgewogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU1N0YXRpY1Nj
b3BlT2JqZWN0KTsKIAotdm9pZCBKU1N0YXRpY1Njb3BlT2JqZWN0Ojp2aXNpdENoaWxkcmVuVmly
dHVhbChTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZp
c2l0b3IpOwotfQotCiB2b2lkIEpTU3RhdGljU2NvcGVPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlND
ZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU1N0YXRpY1Njb3BlT2Jq
ZWN0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNTdGF0aWNTY29wZU9iamVjdCo+KGNlbGwp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29w
ZU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9i
amVjdC5oCmluZGV4IDgyMTE3OGE5YWZiODYzYzI2ZTdmZmNlYTZhMmE0ZTA4Y2I4ZWVkYWQuLjc5
MmQ0YjBiNDJjZmQ0MTRjY2U3ZjRhMWFhZDRiM2U2YTZkYjk4NTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmgKQEAgLTQxLDcg
KzQxLDYgQEAgbmFtZXNwYWNlIEpTQ3sKICAgICAgICAgICAgIHJldHVybiBzY29wZU9iamVjdDsK
ICAgICAgICAgfQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuVmlydHVhbChT
bG90VmlzaXRvciYpOwogICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCos
IFNsb3RWaXNpdG9yJik7CiAgICAgICAgIGJvb2wgaXNEeW5hbWljU2NvcGUoYm9vbCYgcmVxdWly
ZXNEeW5hbWljQ2hlY2tzKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBKU09iamVjdCogdG9UaGlz
T2JqZWN0KEV4ZWNTdGF0ZSopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTV3JhcHBlck9iamVjdC5jcHAKaW5kZXggNjkxOTJmZTNjZDc4M2RmMTRlMDQ0NTQ5
OTkyZGQ5NWRiZjllMDkyZC4uMzRkZjdlYWY4NDA0MDk3ZGUxYzcwNTI0N2JlOTg2Njg0NDJmYTUw
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmpl
Y3QuY3BwCkBAIC0yNiw5ICsyNiw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiBBU1NFUlRfQ0xBU1Nf
RklUU19JTl9DRUxMKEpTV3JhcHBlck9iamVjdCk7CiAKLXZvaWQgSlNXcmFwcGVyT2JqZWN0Ojp2
aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYgdmlzaXRvcikgCitKU1dyYXBwZXJPYmpl
Y3Q6On5KU1dyYXBwZXJPYmplY3QoKQogewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRv
cik7CiB9CiAKIHZvaWQgSlNXcmFwcGVyT2JqZWN0Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2Vs
bCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTV3JhcHBlck9iamVjdC5oCmluZGV4IDdkZDRiMjg5N2FlODU1NDZlZTI0ZmY1ZmQ2MjY3
MmJmZTAyOTY5OWYuLjczNzEzYzBiMzRjNjQyNDJhODRmMmFlZGQxN2Q1MTU1OTZhMTBlNDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oCkBA
IC00NCw4ICs0NCw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBleHBsaWNpdCBKU1dyYXBw
ZXJPYmplY3QoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKik7CiAgICAgICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBKU05v
bkZpbmFsT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgdmlz
aXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKICAgICAgICAgc3RhdGljIHZvaWQgdmlz
aXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOworCisgICAgICAgIHZpcnR1YWwgfkpT
V3JhcHBlck9iamVjdCgpOwogICAgICAgICAKICAgICBwcml2YXRlOgogICAgICAgICBXcml0ZUJh
cnJpZXI8VW5rbm93bj4gbV9pbnRlcm5hbFZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCBmZmQ1
NDc2MGY0MmE4ZGQwZTc1OWUxMjJlMzU1NjhmZmQ3ZDhiMjdjLi41Zjk1OTBjNDE0MDc5ZmE1YTQ2
NTA1YWQxZTQ0ZjU4NWY3NjhhNjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtMzcsMTEgKzM3LDYg
QEAgTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6TmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHIKIHsKIH0KIAotdm9pZCBOYXRpdmVFcnJvckNvbnN0
cnVjdG9yOjp2aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAg
ICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpOwotfQotCiB2b2lkIE5hdGl2ZUVycm9yQ29u
c3RydWN0b3I6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRv
cikKIHsKICAgICBOYXRpdmVFcnJvckNvbnN0cnVjdG9yKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nh
c3Q8TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcio+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4IDhjMjcy
ZWFhMmE4NjRjMDgwYTFkMjE0ZGNmM2ViNzZmOGJlMGEzYzcuLjRjZTBkMzY4MzY1NTBiODZiOWEw
ODAzMTVjZGIwYjk3YjRhYTYzNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgKQEAgLTcwLDcgKzcwLDYgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBJbnRlcm5hbEZ1bmN0aW9uOjpTdHJ1Y3R1cmVG
bGFnczsKICAgICAgICAgdmlydHVhbCBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoQ29u
c3RydWN0RGF0YSYpOwogICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxE
YXRhJik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuVmlydHVhbChTbG90Vmlz
aXRvciYpOwogICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RW
aXNpdG9yJik7CiAKICAgICAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9lcnJvclN0cnVj
dHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9i
amVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3Bw
CmluZGV4IGE1ZDdmZTYxZWM4MGIyNzBjZjYzYzUwZWE5YTQyNzM1ZDRjMzQ4NTQuLjJiODQzMjRm
ZmU4OTE3ZDUzMWM4Yzc3MzNmYTUwMTRjZjgxYjUwMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcApAQCAtNzgsMTEgKzc4LDYgQEAgUmVnRXhw
T2JqZWN0Ojp+UmVnRXhwT2JqZWN0KCkKIHsKIH0KIAotdm9pZCBSZWdFeHBPYmplY3Q6OnZpc2l0
Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRy
ZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgUmVnRXhwT2JqZWN0Ojp2aXNpdENoaWxkcmVu
KEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgUmVnRXhwT2JqZWN0
KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UmVnRXhwT2JqZWN0Kj4oY2VsbCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oCmluZGV4IGU5NjY0YTQxNzFm
NzViYTIxMTQ2MjNkMmQ2Mjc4MjE1Njc3YzE0NzguLmU4YWY2ZDZiYzFmMzc0Yjk5MjFjOTBjM2I2
MDRkMmVmNTViOGM1MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cE9iamVjdC5oCkBAIC04MSw3ICs4MSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lk
IGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0Kik7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlk
ZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAotICAgICAgICB2
aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKICAgICAgICAg
c3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCiAgICAg
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3Bl
Q2hhaW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5jcHAK
aW5kZXggZTg1OWM4YzQxZjhhYTQwODFiY2U1ZjU5NzJkZmIwYjM4ODkyMTY0Ni4uNmUyZTAzNGFm
NmQ3ZmUxNzNiZGM2NDlmNWI5NTgyYjlmY2QzODg2MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5jcHAKQEAgLTI5LDYgKzI5LDEwIEBACiAKIG5hbWVzcGFj
ZSBKU0MgewogCitTY29wZUNoYWluTm9kZTo6flNjb3BlQ2hhaW5Ob2RlKCkKK3sKK30KKwogI2lm
bmRlZiBOREVCVUcKIAogdm9pZCBTY29wZUNoYWluTm9kZTo6cHJpbnQoKQpAQCAtNjcsMTEgKzcx
LDYgQEAgaW50IFNjb3BlQ2hhaW5Ob2RlOjpsb2NhbERlcHRoKCkKICAgICByZXR1cm4gc2NvcGVE
ZXB0aDsKIH0KIAotdm9pZCBTY29wZUNoYWluTm9kZTo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsK
LX0KLQogdm9pZCBTY29wZUNoYWluTm9kZTo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNs
b3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIFNjb3BlQ2hhaW5Ob2RlKiB0aGlzT2JqZWN0ID0g
c3RhdGljX2Nhc3Q8U2NvcGVDaGFpbk5vZGUqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlQ2hhaW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1Njb3BlQ2hhaW4uaAppbmRleCBhYzUyYzY3N2JiNTQxOTY3YjQwMDY5MDZjM2Y0
Yzc1ZmVmZWE0ODNiLi40ODM4NWQwY2JlMWE0ODhhZTc5Y2FhNmFhMzE1ODFkNzQ2MDBjNjhmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZUNoYWluLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5oCkBAIC00NSw2ICs0
NSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB7CiAgICAgICAgIH0KIAorICAgICAgICB2
aXJ0dWFsIH5TY29wZUNoYWluTm9kZSgpOworCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2b2lk
IGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKICAgICAgICAgewpAQCAtODcsNyArODksNiBAQCBuYW1lc3BhY2UgSlND
IHsKICNlbmRpZgogICAgICAgICAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNWYWx1ZSBwcm90bykgeyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xvYmFsRGF0
YSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksICZzX2luZm8pOyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuVmly
dHVhbChTbG90VmlzaXRvciYpOwogICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpT
Q2VsbCosIFNsb3RWaXNpdG9yJik7CiAgICAgICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0
IENsYXNzSW5mbyBzX2luZm87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmUuY3BwCmluZGV4IGI2N2M4N2YxY2QwNzRjZmUwYzc4N2ZlZmRhZGU4NDk0M2VmYjNmYTku
LmQ3YWZhMTVmNThlMzI5NWVjNzJhZjkzMTc2ODJiODc3NDg0ZTFlNTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcApAQCAtNzI0LDExICs3MjQsNiBAQCB2
b2lkIFN0cnVjdHVyZTo6Z2V0UHJvcGVydHlOYW1lcyhKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IFByb3BlcnR5TmFtZUFycmF5JiBwcgogICAgIH0KIH0KIAotdm9pZCBTdHJ1Y3R1cmU6OnZpc2l0
Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRy
ZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgU3RydWN0dXJlOjp2aXNpdENoaWxkcmVuKEpT
Q2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgU3RydWN0dXJlKiB0aGlz
T2JqZWN0ID0gc3RhdGljX2Nhc3Q8U3RydWN0dXJlKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCmluZGV4IDk1OGFkMWI3NWI4ZmU1N2JiYjU2ZmRlOGJi
ODM4ZjVlYjJkZjY2NDUuLjg0ZmRkN2JiOGI3YzU5MjgwMDFjZjVkZmM5YmRjMTNmYjM0N2E2NjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCkBAIC0xMzAsNyAr
MTMwLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTVmFsdWUgc3RvcmVkUHJvdG90eXBl
KCkgY29uc3QgeyByZXR1cm4gbV9wcm90b3R5cGUuZ2V0KCk7IH0KICAgICAgICAgSlNWYWx1ZSBw
cm90b3R5cGVGb3JMb29rdXAoRXhlY1N0YXRlKikgY29uc3Q7CiAgICAgICAgIFN0cnVjdHVyZUNo
YWluKiBwcm90b3R5cGVDaGFpbihFeGVjU3RhdGUqKSBjb25zdDsKLSAgICAgICAgdm9pZCB2aXNp
dENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYpOwogICAgICAgICBzdGF0aWMgdm9pZCB2aXNp
dENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAKICAgICAgICAgU3RydWN0dXJlKiBw
cmV2aW91c0lEKCkgY29uc3QgeyBBU1NFUlQoc3RydWN0dXJlKCktPmNsYXNzSW5mbygpID09ICZz
X2luZm8pOyByZXR1cm4gbV9wcmV2aW91cy5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uY3BwCmluZGV4IGE3MzYyYTkwN2EzYWZmN2U4
NjYyMTRjYzA1YzYzNzNkMWU5MjQ5YjQuLjJiZDc4MWQ0YmU2OGYzOGI3YzRmYTk4ODhkMjczMDUx
NDFhNzM5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZUNoYWluLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1
cmVDaGFpbi5jcHAKQEAgLTQzLDExICs0Myw2IEBAIFN0cnVjdHVyZUNoYWluOjp+U3RydWN0dXJl
Q2hhaW4oKQogewogfQogCi12b2lkIFN0cnVjdHVyZUNoYWluOjp2aXNpdENoaWxkcmVuVmlydHVh
bChTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0
b3IpOwotfQotCiB2b2lkIFN0cnVjdHVyZUNoYWluOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2Vs
bCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgU3RydWN0dXJlQ2hhaW4qIHRoaXNPYmpl
Y3QgPSBzdGF0aWNfY2FzdDxTdHJ1Y3R1cmVDaGFpbio+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmgKaW5kZXggMTkwYzVjMmY0ZTQ0N2Vj
YzIwOTE4MmRhZWQ4NDVlNTBmMTlmOThmNy4uMjgxZjYwMjRlNGU2ZDRjNzliYjM1OWMwZDE3YWNj
NTMxNDBhNDQxMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlQ2hhaW4uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1
cmVDaGFpbi5oCkBAIC01Miw3ICs1Miw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAg
cmV0dXJuIGNoYWluOwogICAgICAgICB9CiAgICAgICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+
KiBoZWFkKCkgeyByZXR1cm4gbV92ZWN0b3IuZ2V0KCk7IH0KLSAgICAgICAgdm9pZCB2aXNpdENo
aWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYpOwogICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENo
aWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpIHsgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhDb21w
b3VuZFR5cGUsIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4pLCAmc19pbmZvKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1
ZS9DaGFuZ2VMb2cKaW5kZXggMzc1MWI1M2NiMmQzMTA0MTZlNTlmMTE0YjBmNzMxZTg3NWE0Yjdi
OS4uYTIyMmE3OWM5MGJhYjI4Y2RkZDhhNmM4YWQ0YmNkZjc0YWVlYTY4MCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDktMjYgIE1hcmsgSGFobmVuYmVy
ZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBEZS12aXJ0dWFsaXplIEpTQ2Vs
bDo6dmlzaXRDaGlsZHJlblZpcnR1YWwgYW5kIHJlbW92ZSBhbGwgb3RoZXIgdmlzaXRDaGlsZHJl
blZpcnR1YWwgbWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Njg4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBEZS12aXJ0dWFsaXplZCBKU0NlbGw6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsIGFuZCBj
aGFuZ2VzIGl0cyBpbXBsZW1lbnRhdGlvbiB0byBsb29rIHVwIHRoZSAKKyAgICAgICAgZnVuY3Rp
b24gcG9pbnRlciBpbiB0aGUgTWV0aG9kVGFibGUgaW4gdGhlIENsYXNzSW5mbyBzdHJ1Y3QuICBS
ZW1vdmVkIHRoZSByZW1haW5pbmcgCisgICAgICAgIHZpc2l0Q2hpbGRyZW5WaXJ0dWFsIG1ldGhv
ZHMuICBUaGlzIHBhdGNoIGNvbXBsZXRlcyB0aGUgcHJvY2VzcyBvZiBkZS12aXJ0dWFsaXppbmcg
CisgICAgICAgIHZpc2l0Q2hpbGRyZW4uCisKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1wLmNwcDoK
KyAgICAgICAgKiBVc2VyT2JqZWN0SW1wLmg6CisKIDIwMTEtMDktMjUgIE1hcmsgSGFobmVuYmVy
ZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgY3VzdG9tIHZ0YWJsZSBz
dHJ1Y3QgdG8gQ2xhc3NJbmZvIHN0cnVjdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRH
bHVlL1VzZXJPYmplY3RJbXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJ
bXAuY3BwCmluZGV4IGUwYjA0YjcwZWFkNjExOWIzNWM3MDM5NmU2NzI0ZGIwYzFiMzM1ODcuLjE3
N2QyZThiYmM1ZGVlNjkzZDBmN2Q2OTViOTFlNjc2YmQ5NzQyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dEdsdWUvVXNlck9iamVjdEltcC5jcHAKQEAgLTQwNCwxMSArNDA0LDYgQEAgVVN0cmluZyBVc2Vy
T2JqZWN0SW1wOjp0b1N0cmluZyhFeGVjU3RhdGUgKmV4ZWMpIGNvbnN0CiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAotdm9pZCBVc2VyT2JqZWN0SW1wOjp2aXNpdENoaWxkcmVuVmlydHVhbChTbG90
VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpOwot
fQotCiB2b2lkIFVzZXJPYmplY3RJbXA6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90
VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBVc2VyT2JqZWN0SW1wKiB0aGlzT2JqZWN0ID0gc3Rh
dGljX2Nhc3Q8VXNlck9iamVjdEltcCo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2Jq
ZWN0SW1wLmgKaW5kZXggYTg2YjUyY2IzNjNhOGQ3ZTAxNGU4ODEyYjM5N2ZhYzdkY2M1ODUyOS4u
ZTQ1ZDg0ZDhmOTI3YzliMWY1ZTI3MmI5MzRjMWNiOTJmZGIzMzhiNCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dEdsdWUvVXNlck9iamVjdEltcC5oCkBAIC02Miw3ICs2Miw2IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUgKmV4ZWMpIGNvbnN0OwogICAgIHZpcnR1YWwg
VVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUgKmV4ZWMpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2
b2lkIHZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJik7CiAgICAgc3RhdGljIHZvaWQg
dmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCiAgICAgSlNVc2VyT2JqZWN0
ICpHZXRKU1VzZXJPYmplY3QoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiOWQ5NWMxYmI1N2EwM2Qx
M2Q1NzQ3ZGI5NjNmMTA1MWY3NTExNzhkLi4wYzBlNWE4YzZjMzVlMjE5MjFmODI3NGJhNWVmMWZl
ZGUxZTE0OTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTEtMDktMjYgIE1hcmsg
SGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBEZS12aXJ0dWFs
aXplIEpTQ2VsbDo6dmlzaXRDaGlsZHJlblZpcnR1YWwgYW5kIHJlbW92ZSBhbGwgb3RoZXIgdmlz
aXRDaGlsZHJlblZpcnR1YWwgbWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Njg4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgRGUtdmlydHVhbGl6ZWQg
SlNDZWxsOjp2aXNpdENoaWxkcmVuVmlydHVhbCBhbmQgY2hhbmdlcyBpdHMgaW1wbGVtZW50YXRp
b24gdG8gbG9vayB1cCB0aGUgCisgICAgICAgIGZ1bmN0aW9uIHBvaW50ZXIgaW4gdGhlIE1ldGhv
ZFRhYmxlIGluIHRoZSBDbGFzc0luZm8gc3RydWN0LiAgUmVtb3ZlZCB0aGUgcmVtYWluaW5nIAor
ICAgICAgICB2aXNpdENoaWxkcmVuVmlydHVhbCBtZXRob2RzLiAgVGhpcyBwYXRjaCBjb21wbGV0
ZXMgdGhlIHByb2Nlc3Mgb2YgZGUtdmlydHVhbGl6aW5nIAorICAgICAgICB2aXNpdENoaWxkcmVu
LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogYmluZGluZ3MvanMvSlNB
dHRyQ3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3Rv
bS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDU1NSdWxlQ3VzdG9tLmNwcDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHA6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNET01HbG9iYWxPYmplY3Q6On5KU0RPTUdsb2JhbE9iamVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpKU0RPTUdsb2JhbE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01X
aW5kb3dDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwu
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0phdmFTY3JpcHRBdWRpb05vZGVDdXN0b20uY3BwOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
TmFtZWROb2RlTWFwQ3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVDdXN0
b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHA6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTU1ZHRWxlbWVudEluc3RhbmNlQ3VzdG9tLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU1NoYXJlZFdvcmtlckN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNTdHlsZVNoZWV0Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1RyZWVX
YWxrZXJDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdD
b250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRD
dXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20u
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2Vu
ZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAg
ICogYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcDoKKyAgICAgICAgKiBicmlkZ2UvcXQvcXRfcnVu
dGltZS5jcHA6CisgICAgICAgICogYnJpZGdlL3F0L3F0X3J1bnRpbWUuaDoKKwogMjAxMS0wOS0y
NiAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gRG8gbm90
IGlnbm9yZSAnUmVwbGFjZWFibGUnIGF0dHJpYnV0ZXMgaW4gdGhlIERPTSBiaW5kaW5ncwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgppbmRleCA1ZWMyYmQzOTM3MzIzYjg3YjlmYzBmZjg2ZGQyZDE5ZDU3ZGE2
OTVhLi4xN2ZhNGJjYzE5MmRmYjQwZGEwMWNmZjMzZjJhZDczNDU5YTE2MGJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgpAQCAtODE1LDcgKzgxNSw2IEBAIF9fWk43V2ViQ29yZTZFZGl0b3I2aW5kZW50
RXYKIF9fWk43V2ViQ29yZTZFZGl0b3I3Q29tbWFuZEMxRXYKIF9fWk43V2ViQ29yZTZFZGl0b3I3
Y29tbWFuZEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTZFZGl0b3I3b3V0ZGVudEV2Ci1f
X1pON1dlYkNvcmU2SlNOb2RlMjB2aXNpdENoaWxkcmVuVmlydHVhbEVSTjNKU0MxMVNsb3RWaXNp
dG9yRQogX19aTjdXZWJDb3JlNkpTTm9kZTNwdXRFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElk
ZW50aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pON1dlYkNv
cmU2SlNOb2RlNnNfaW5mb0UKIF9fWk43V2ViQ29yZTZSZWdpb241dW5pdGVFUktTMF8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXR0ckN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F0dHJDdXN0b20uY3BwCmluZGV4IDNiMTA4NmQ1NzRm
OTY3NzdkNDI5NGUwMTlkYTMxODg2OGZhY2FiMjkuLmFjMWFlNjAxZjFmY2IxZjVkZDA1OGFmZTU0
MjA4ODcwNWY4NjUwM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QXR0ckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdHRyQ3Vz
dG9tLmNwcApAQCAtMzksMTEgKzM5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOwogCi12b2lkIEpTQXR0cjo6dmlzaXRDaGlsZHJlblZpcnR1YWwo
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9y
KTsKLX0KLQogdm9pZCBKU0F0dHI6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90Vmlz
aXRvciYgdmlzaXRvcikKIHsKICAgICBKU0F0dHIqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxK
U0F0dHIqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QXVkaW9Db250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVk
aW9Db250ZXh0Q3VzdG9tLmNwcAppbmRleCA0ZTZhNDZkMzE1Njc0N2Y2OTcxMmM0YzJmYjUzYTI5
YzFhM2JlNTRhLi41YmZhMzVmMTQ0YWU3MzVkOTE2NGYxODQ3NmNiZmM5Yjc1MGZjZmMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20u
Y3BwCkBAIC0zOSwxMSArMzksNiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXZvaWQgSlNBdWRpb0NvbnRleHQ6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNs
b3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7
Ci19Ci0KIHZvaWQgSlNBdWRpb0NvbnRleHQ6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBT
bG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU0F1ZGlvQ29udGV4dCogdGhpc09iamVjdCA9
IHN0YXRpY19jYXN0PEpTQXVkaW9Db250ZXh0Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDU1NSdWxlQ3VzdG9tLmNwcAppbmRleCA3MWIwNmNlMWQyOTY3ODU4OGM3
MDYxNWRiMmUxZjBlZjVkOWI2ZGEwLi40ZWNhYTUyZDZjNmU0ZjJmMjM5MzU4NDgzMGQ3ZmU1MWNm
NWYyZGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUN1c3Rv
bS5jcHAKQEAgLTQ4LDExICs0OCw2IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotdm9pZCBKU0NTU1J1bGU6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RW
aXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19
Ci0KIHZvaWQgSlNDU1NSdWxlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0
b3ImIHZpc2l0b3IpCiB7CiAgICAgSlNDU1NSdWxlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8
SlNDU1NSdWxlKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAppbmRleCBjZDlhY2VlOGQxODRm
MjAzZjlmYjgyN2ZlMmJlMDAyOGU1NjU2MWNkLi4zM2Q2YWYxNjc0MTQ3NjViYzAzOTQ1MTViNDEw
NTM0ODAzNDBiZGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NT
U1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAKQEAgLTQzLDExICs0Myw2IEBAIHVz
aW5nIG5hbWVzcGFjZSBXVEY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBKU0NTU1N0
eWxlRGVjbGFyYXRpb246OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9y
KQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgSlNDU1NT
dHlsZURlY2xhcmF0aW9uOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3Im
IHZpc2l0b3IpCiB7CiAgICAgSlNDU1NTdHlsZURlY2xhcmF0aW9uKiB0aGlzT2JqZWN0ID0gc3Rh
dGljX2Nhc3Q8SlNDU1NTdHlsZURlY2xhcmF0aW9uKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHRDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0Q3Vz
dG9tLmNwcAppbmRleCBkYTYwMjhjMDg2NjYzNTVlMjQyMjA2YzI2MTg2YjI5MzA2ODk2NTdkLi4x
OTM3OWFkZTgzMDYxMzNhMTdkYWI4NTFkMWVlODUyYTlkODgyOWExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHRDdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4
dEN1c3RvbS5jcHAKQEAgLTM5LDExICszOSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQ6OnZpc2l0
Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRy
ZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojp2
aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAg
SlNDYW52YXNSZW5kZXJpbmdDb250ZXh0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNDYW52
YXNSZW5kZXJpbmdDb250ZXh0Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKaW5kZXggNmY0ZDJhNjkzMDY4Zjc1MzRmYjIwNzY1
N2U2ZGQzZDQ2YTM5ZDA4Yi4uNDVhZGI3YmJkOGY4ODVkNzczYjY5ZDIzYzkxMDBhZDRmMzc0ZjAz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0
LmNwcApAQCAtNDksMTUgKzQ5LDE0IEBAIEpTRE9NR2xvYmFsT2JqZWN0OjpKU0RPTUdsb2JhbE9i
amVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0CiB7CiB9CiAK
LXZvaWQgSlNET01HbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNPYmplY3QqIHRoaXNWYWx1ZSkKK0pTRE9NR2xvYmFsT2JqZWN0Ojp+SlNET01H
bG9iYWxPYmplY3QoKQogewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIHRo
aXNWYWx1ZSk7Ci0gICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIAotdm9pZCBKU0RP
TUdsb2JhbE9iamVjdDo6dmlzaXRDaGlsZHJlblZpcnR1YWwoSlNDOjpTbG90VmlzaXRvciYgdmlz
aXRvcikKK3ZvaWQgSlNET01HbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNPYmplY3QqIHRoaXNWYWx1ZSkKIHsKLSAgICB2aXNpdENoaWxkcmVu
KHRoaXMsIHZpc2l0b3IpOworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIHRo
aXNWYWx1ZSk7CisgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIAogdm9pZCBKU0RP
TUdsb2JhbE9iamVjdDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2
aXNpdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9i
YWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0
LmgKaW5kZXggOTlhNjMxZmM5MzY5OGE3OWIyY2I3MGMxNDRlYTJlMTdlZTZhMDljOS4uZTNjMzI4
N2FmYzQ1NTU1NDQyNWQ1MzljYTVjY2NiZGY0NDE3MjU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCkBAIC00Nyw2ICs0Nyw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RydWN0IEpTRE9NR2xvYmFsT2JqZWN0RGF0YTsKIAog
ICAgICAgICBKU0RPTUdsb2JhbE9iamVjdChKU0M6OkpTR2xvYmFsRGF0YSYsIEpTQzo6U3RydWN0
dXJlKiwgUGFzc1JlZlB0cjxET01XcmFwcGVyV29ybGQ+KTsKKyAgICAgICAgdmlydHVhbCB+SlNE
T01HbG9iYWxPYmplY3QoKTsKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OkpTR2xv
YmFsRGF0YSYsIEpTQzo6SlNPYmplY3QqIHRoaXNWYWx1ZSk7CiAKICAgICBwdWJsaWM6CkBAIC02
NCw3ICs2NSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRJbmplY3Rl
ZFNjcmlwdChKU09iamVjdCopOwogICAgICAgICBKU09iamVjdCogaW5qZWN0ZWRTY3JpcHQoKSBj
b25zdDsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlblZpcnR1YWwoSlNDOjpT
bG90VmlzaXRvciYpOwogICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQzo6SlND
ZWxsKiwgSlNDOjpTbG90VmlzaXRvciYpOwogCiAgICAgICAgIERPTVdyYXBwZXJXb3JsZCogd29y
bGQoKSB7IHJldHVybiBtX3dvcmxkLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggYWRiMDUxZjc2NzhhN2MzMDQ3N2U3
NTRhZTdkMjUwZDIxMTM1YmMzOS4uMDRiNWI5NzY1MjdhNGZkMTk1YjQ1YWIyODQ5NTY0ZWFjODVk
MmU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3Vz
dG9tLmNwcApAQCAtNzcsMTEgKzc3LDYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi12b2lkIEpTRE9NV2luZG93Ojp2aXNpdENoaWxkcmVuVmlydHVhbChT
bG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3Ip
OwotfQotCiB2b2lkIEpTRE9NV2luZG93Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgSlNET01XaW5kb3cqIHRoaXNPYmplY3QgPSBzdGF0
aWNfY2FzdDxKU0RPTVdpbmRvdyo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAppbmRleCBiNzc2YmUzZDM4OTFmZDE1ODY0MzZlN2Fm
ODgyNTJkZGM2YTg1MGZhLi4xZjJiOWVkZjBhNjBjNTU3OWI3ZjZlY2U2MDgwNmVmMDkxMDIwMDQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNw
cApAQCAtODMsMTEgKzgzLDYgQEAgdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpzZXRXaW5kb3coUGFz
c1JlZlB0cjxET01XaW5kb3c+IGRvbVdpbmRvdykKIC8vIEpTT2JqZWN0IG1ldGhvZHMKIC8vIC0t
LS0KIAotdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjp2aXNpdENoaWxkcmVuVmlydHVhbChKU0M6OlNs
b3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7
Ci19Ci0KIHZvaWQgSlNET01XaW5kb3dTaGVsbDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGws
IFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEpTRE9NV2luZG93U2hlbGwqIHRoaXNPYmpl
Y3QgPSBzdGF0aWNfY2FzdDxKU0RPTVdpbmRvd1NoZWxsKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKaW5kZXggZTlhYmMxNTgxMmNmNDY3
YTBmMjgyNmY2YTMwNThjOThlOTNmMDY0MC4uMDEyZDViNzM1YjEyYWM1ZTc0ZDA0MGFkMDlmMzE5
ZWUwOGQ1YjY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dTaGVsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
U2hlbGwuaApAQCAtNzcsNyArNzcsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZv
aWQqIG9wZXJhdG9yIG5ldyhzaXplX3QpOwogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6
T3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8
IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxk
cmVuVmlydHVhbChKU0M6OlNsb3RWaXNpdG9yJik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0
Q2hpbGRyZW4oSlNDOjpKU0NlbGwqLCBKU0M6OlNsb3RWaXNpdG9yJik7CiAgICAgICAgIHZpcnR1
YWwgSlNDOjpVU3RyaW5nIGNsYXNzTmFtZSgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0phdmFTY3JpcHRBdWRpb05vZGVDdXN0b20uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNKYXZhU2NyaXB0QXVkaW9Ob2RlQ3VzdG9tLmNwcApp
bmRleCAwMDRkOGJlOWRiNTI5N2EzOGJjYTBkNjEzODBkY2YyNGYxNTdmMzI4Li40YWQ0ZDRkNzY2
MmU3MzViZTI3NGQyZjM5YTRlM2E0NmY3M2E4MWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0phdmFTY3JpcHRBdWRpb05vZGVDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSmF2YVNjcmlwdEF1ZGlvTm9kZUN1c3RvbS5jcHAKQEAg
LTM0LDExICszNCw2IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotdm9pZCBKU0phdmFTY3JpcHRBdWRpb05vZGU6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNs
b3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7
Ci19Ci0KIHZvaWQgSlNKYXZhU2NyaXB0QXVkaW9Ob2RlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCog
Y2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgSlNKYXZhU2NyaXB0QXVkaW9Ob2Rl
KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNKYXZhU2NyaXB0QXVkaW9Ob2RlKj4oY2VsbCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVs
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxD
dXN0b20uY3BwCmluZGV4IGZhMTljOWQyMmMwYTZlZDliZmQ3YjNkNmM0N2NkMjRhZjI2ODJjMDYu
LjhhMDQ3YTEyMDY5MTI2OWI1YWMyNzg3ZGNiYmRmODc1NWJkMzNkMTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwCkBA
IC0zMywxMSArMzMsNiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXZvaWQgSlNNZXNzYWdlQ2hhbm5lbDo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0K
LQogdm9pZCBKU01lc3NhZ2VDaGFubmVsOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgSlNNZXNzYWdlQ2hhbm5lbCogdGhpc09iamVjdCA9
IHN0YXRpY19jYXN0PEpTTWVzc2FnZUNoYW5uZWwqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKaW5kZXggOWVlZDczOTAx
Y2Y3YTc4YmEzN2MwNjRiMjAxMDE1MDA1M2MzYWFhOC4uNTFlYmY4OGE5YWM5MjgxYmY3Njk1YTRi
NDEwMDE4OGYyOWVlNzlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKQEAgLTQyLDExICs0Miw2IEBAIHVzaW5nIG5hbWVzcGFj
ZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBKU01lc3NhZ2VQb3J0Ojp2aXNp
dENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxk
cmVuKHRoaXMsIHZpc2l0b3IpOwotfQotCiB2b2lkIEpTTWVzc2FnZVBvcnQ6OnZpc2l0Q2hpbGRy
ZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU01lc3NhZ2VQ
b3J0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNNZXNzYWdlUG9ydCo+KGNlbGwpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3Bw
CmluZGV4IGExMGQ1MmExOWE3YjM4YjEzNDA2OTRmMjQ1M2ZhZTg0MmQ4ODQ4ZTUuLjQ1YTlhYzA5
MjFhZDU1NDViMjNhMTcyYTEzZjNkZTFjZWIxMzllZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAKQEAgLTM1LDExICszNSw2
IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBK
U05hbWVkTm9kZU1hcDo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3Ip
Ci17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogYm9vbCBKU05hbWVk
Tm9kZU1hcDo6Y2FuR2V0SXRlbXNGb3JOYW1lKEV4ZWNTdGF0ZSosIE5hbWVkTm9kZU1hcCogaW1w
bCwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBpbXBsLT5n
ZXROYW1lZEl0ZW0oaWRlbnRpZmllclRvU3RyaW5nKHByb3BlcnR5TmFtZSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKaW5kZXggOTcxNTI2NjUwYWM0YmJi
MDQ1MTQ1MWZiMjY0ZTQ0NGZiNTFjNDUxMC4uM2YyZjE1OWMyYjU0MzZkYzI2M2FiZGVmMWM1NWFl
OWUzYjdkYTAxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20u
Y3BwCkBAIC0xOTIsMTEgKzE5Miw2IEBAIFNjb3BlQ2hhaW5Ob2RlKiBKU05vZGU6OnB1c2hFdmVu
dEhhbmRsZXJTY29wZShFeGVjU3RhdGUqLCBTY29wZUNoYWluTm9kZSogbm9kZSkKICAgICByZXR1
cm4gbm9kZTsKIH0KIAotdm9pZCBKU05vZGU6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNp
dG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0K
IHZvaWQgSlNOb2RlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCiB7CiAgICAgSlNOb2RlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNOb2RlKj4o
Y2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0
ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3Vz
dG9tLmNwcAppbmRleCA1NjA4MWVjMTM1Njk1Y2IwYjA4MjFjMjZjY2Y1MmI3Y2E2NmNiOTRhLi5l
OTQwOThiNjg1ZjMyNTFiNGJhZTA1OTM0NzcxMzY1YzdmYjBhM2U4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKQEAgLTM2LDExICsz
Niw2IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9p
ZCBKU05vZGVGaWx0ZXI6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9y
KQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgSlNOb2Rl
RmlsdGVyOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3Ip
CiB7CiAgICAgSlNOb2RlRmlsdGVyKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNOb2RlRmls
dGVyKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05v
ZGVJdGVyYXRvckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVJ
dGVyYXRvckN1c3RvbS5jcHAKaW5kZXggNzA1NTk0NjJhNTc4ODVkOTY2YjA5NWNhNWYxMzU1ZWIw
MDI4MDI1Ni4uODEzZTAwMDYzYjBlNzgxNDczZTA1ZTE0MjNiZWMzNWI0N2E5M2YzZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlSXRlcmF0b3JDdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNw
cApAQCAtMjksMTEgKzI5LDYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi12b2lkIEpTTm9kZUl0ZXJhdG9yOjp2aXNpdENoaWxkcmVuVmlydHVhbChTbG90
VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpOwot
fQotCiB2b2lkIEpTTm9kZUl0ZXJhdG9yOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgSlNOb2RlSXRlcmF0b3IqIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDxKU05vZGVJdGVyYXRvcio+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNTVkdFbGVtZW50SW5zdGFuY2VDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdFbGVtZW50SW5zdGFuY2VDdXN0b20uY3BwCmluZGV4
IDg3ZTZiZjYzOWQ5MGU0M2Q3NDkzNDIyM2FjYmE4ZjAyMDdhMTlkZTcuLmJlYjk5YTg5N2VmMmRk
YWE1OGRmMjg2Yzc2YjJmYmIwYTJhODU2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTU1ZHRWxlbWVudEluc3RhbmNlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1NWR0VsZW1lbnRJbnN0YW5jZUN1c3RvbS5jcHAKQEAgLTM1LDEx
ICszNSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBKU1NWR0VsZW1lbnRJbnN0
YW5jZTo6dmlzaXRDaGlsZHJlblZpcnR1YWwoSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKLXsK
LSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpOwotfQotCiB2b2lkIEpTU1ZHRWxlbWVu
dEluc3RhbmNlOjp2aXNpdENoaWxkcmVuKEpTQzo6SlNDZWxsKiBjZWxsLCBKU0M6OlNsb3RWaXNp
dG9yJiB2aXNpdG9yKQogewogICAgIEpTU1ZHRWxlbWVudEluc3RhbmNlKiB0aGlzT2JqZWN0ID0g
c3RhdGljX2Nhc3Q8SlNTVkdFbGVtZW50SW5zdGFuY2UqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhcmVkV29ya2VyQ3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhcmVkV29ya2VyQ3VzdG9tLmNwcAppbmRleCA5ZjM5
YTE0ZTc1YzNjNTRkNTEwYTEzM2M3ZjcwYWIyNjhhNzQwMGUwLi40ZDlkMjJkODI4ODZiYmFmZTZj
ZTE2Y2JkNjhhNDRiMDgyOTNlYTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1NoYXJlZFdvcmtlckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNTaGFyZWRXb3JrZXJDdXN0b20uY3BwCkBAIC00MywxMSArNDMsNiBAQCB1c2luZyBu
YW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgSlNTaGFyZWRXb3Jr
ZXI6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZp
c2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgSlNTaGFyZWRXb3JrZXI6OnZp
c2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBK
U1NoYXJlZFdvcmtlciogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTU2hhcmVkV29ya2VyKj4o
Y2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxlU2hl
ZXRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdHlsZVNoZWV0Q3Vz
dG9tLmNwcAppbmRleCAyZDcyNmFiYjE3ZjhmNGYzNzQ4M2E1YTQwMjNhZTNhMGM2NDgwY2NlLi41
ZGVmYmNjMDJhOWE2MDg4ZTA2NDUzMjBhMzIxNmM2ZjI1OTFlMjIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3R5bGVTaGVldEN1c3RvbS5jcHAKQEAgLTM1LDExICsz
NSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9p
ZCBKU1N0eWxlU2hlZXQ6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9y
KQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgSlNTdHls
ZVNoZWV0Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3Ip
CiB7CiAgICAgSlNTdHlsZVNoZWV0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNTdHlsZVNo
ZWV0Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Ry
ZWVXYWxrZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNUcmVlV2Fs
a2VyQ3VzdG9tLmNwcAppbmRleCA5NWVkYzA1YTVhODE2NjdjYzZhMWYwMmViOGEzNzlhNzEyZDEx
MDE4Li41N2YyM2IwZDFjN2VlZTcxZDk4NmZhNzljYTljZTI2NTQxNGYzZDZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RyZWVXYWxrZXJDdXN0b20uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVHJlZVdhbGtlckN1c3RvbS5jcHAKQEAgLTI5
LDExICsyOSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotdm9pZCBKU1RyZWVXYWxrZXI6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2
aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQg
SlNUcmVlV2Fsa2VyOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCiB7CiAgICAgSlNUcmVlV2Fsa2VyKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNU
cmVlV2Fsa2VyKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggMGU0N2Y1MzIy
NDFjZmNmZDQ2NzM5ZjFmNDM2ZWIzMDk0OGYzOWYzOC4uNTQ4OWI4YTliMzJmMDc2MDY5OGVhMWE5
MGY2YjZmYTY3YWFmY2M3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcApAQCAtMTkyLDExICsx
OTIsNiBAQCBzdGF0aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgV2ViR0xFeHRlbgogICAgIHJldHVybiBqc051bGwoKTsKIH0K
IAotdm9pZCBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsK
LX0KLQogdm9pZCBKU1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmlzaXRDaGlsZHJlbihKU0NlbGwq
IGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEpTV2ViR0xSZW5kZXJpbmdDb250
ZXh0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNXZWJHTFJlbmRlcmluZ0NvbnRleHQqPihj
ZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29u
dGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRl
eHRDdXN0b20uY3BwCmluZGV4IGY5MDA0OTYwYjQ1ZGY0YjFiZjViZmIwMjk2Mzg4M2M3MWIzYjQw
NTQuLjY3ZjJlOTliYTY0MGUzYzY2NTNhN2ZkYmQ2ODY3Nzk1ZWNmM2E3YjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcApA
QCAtNTMsMTEgKzUzLDYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi12b2lkIEpTV29ya2VyQ29udGV4dDo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0K
LQogdm9pZCBKU1dvcmtlckNvbnRleHQ6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90
VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU1dvcmtlckNvbnRleHQqIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDxKU1dvcmtlckNvbnRleHQqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKaW5kZXggNjA5MTM4
MzYxNjg1YTU5YjU1MTBhYTU1ZDE0MWEyYjI0OTUyYTliOS4uNjJmNjE2OTk4YThlNzhmY2U4MGI4
ZGUwMjg0ZDA3MTg4ZWMyNjAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKQEAgLTU0LDExICs1NCw2IEBAIHVzaW5n
IG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBKU1hNTEh0dHBS
ZXF1ZXN0Ojp2aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAg
ICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpOwotfQotCiB2b2lkIEpTWE1MSHR0cFJlcXVl
c3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsK
ICAgICBKU1hNTEh0dHBSZXF1ZXN0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNYTUxIdHRw
UmVxdWVzdCo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNYUGF0aFJlc3VsdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQ
YXRoUmVzdWx0Q3VzdG9tLmNwcAppbmRleCAwOTk0MmY1ZWVkMDRmZDNiMWNmZmQxMzVkMmIxODI3
OWExYTcwNmFlLi4yMzQxYjQzYmRmYzk5NmQzYmRkYmZiZWVkYjEzYWZlYTBkMWY2MmFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNw
cApAQCAtMzcsMTEgKzM3LDYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi12b2lkIEpTWFBhdGhSZXN1bHQ6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RW
aXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19
Ci0KIHZvaWQgSlNYUGF0aFJlc3VsdDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RW
aXNpdG9yJiB2aXNpdG9yKQogewogICAgIEpTWFBhdGhSZXN1bHQqIHRoaXNPYmplY3QgPSBzdGF0
aWNfY2FzdDxKU1hQYXRoUmVzdWx0Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGVlZTI4Yzc4NTBkYWEzYjIy
MTNiZWI3M2ZlNGM2ZWY5NjM5MDhlMzUuLjljYTFhYWYyNGFkOWFmMDIzMTJhNjM5MmEyMGYzYWY1
OTJhOTRjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCkBAIC04NzcsNyArODc3LDYgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAK
ICAgICAjIHZpc2l0IGZ1bmN0aW9uCiAgICAgaWYgKCRuZWVkc01hcmtDaGlsZHJlbikgewotICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVu
VmlydHVhbChKU0M6OlNsb3RWaXNpdG9yJik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIEpTQzo6U2xvdFZp
c2l0b3ImKTtcblxuIik7CiAgICAgICAgICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpPdmVycmlkZXNW
aXNpdENoaWxkcmVuIn0gPSAxOwogICAgIH0KQEAgLTIyMDEsMTEgKzIyMDAsNiBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpZiAoJG5l
ZWRzTWFya0NoaWxkcmVuICYmICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0
b21NYXJrRnVuY3Rpb24ifSkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lk
ICR7Y2xhc3NOYW1lfTo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3Ip
XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpO1xu
Iik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7Ci0KICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OnZpc2l0Q2hpbGRyZW4o
SlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcilcbiIpOwogICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgICR7Y2xhc3NOYW1lfSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PCR7Y2xhc3NOYW1lfSo+
KGNlbGwpO1xuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfaW5z
dGFuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcAppbmRl
eCA3ZGU5OGU4ZDQ1ZDEzYzllNTE3NTkwNjY0NDQxNTBhOTlhZjU5ODQ4Li4wZDYxYTYwMjI5MDJi
MGNjNmY1NjQ5MDIyNmU2NDkwNTllYTMzYmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9x
dF9pbnN0YW5jZS5jcHAKQEAgLTYyLDExICs2Miw2IEBAIHB1YmxpYzoKICAgICAKICAgICBzdGF0
aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKIAotICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxk
cmVuVmlydHVhbChTbG90VmlzaXRvciYgdmlzaXRvcikKLSAgICB7Ci0gICAgICAgIHZpc2l0Q2hp
bGRyZW4odGhpcywgdmlzaXRvcik7Ci0gICAgfQotCiAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGls
ZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIHsKICAgICAgICAg
UXRSdW50aW1lT2JqZWN0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UXRSdW50aW1lT2JqZWN0
Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGlt
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKaW5kZXggODgy
ZGRmNmVkNzRmYzBlNjc0YmU3MDcwOTQ0YjIwNDFiZTI3ZGU1YS4uZGYxNWQ1NjUwYTVlZThiNDQ1
OGQ4YmVjMWZmNjUwM2I1ZWMyYTQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3F0L3F0X3J1bnRpbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50
aW1lLmNwcApAQCAtMTQzOSwxMSArMTQzOSw2IEBAIHZvaWQgUXRSdW50aW1lTWV0YU1ldGhvZDo6
ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVuCiAg
ICAgZC0+bV9hbGxvd1ByaXZhdGUgPSBhbGxvd1ByaXZhdGU7CiB9CiAKLXZvaWQgUXRSdW50aW1l
TWV0YU1ldGhvZDo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17
Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBRdFJ1bnRpbWVN
ZXRhTWV0aG9kOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0
b3IpCiB7CiAgICAgUXRSdW50aW1lTWV0YU1ldGhvZCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0
PFF0UnVudGltZU1ldGFNZXRob2QqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9xdC9xdF9ydW50aW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVu
dGltZS5oCmluZGV4IGRlMjEzYzIwOTgxMjMxZGFhZmY2ZjZjYmVmNzFjOTM1ZDVhN2IwZTAuLjVk
MTFjNjg2MTRlMTIwZTM0NjQ4NTdhOWQ4ZTk5N2U0MjA2NjQzOTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3F0L3F0X3J1bnRpbWUuaApAQCAtMTY4LDcgKzE2OCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJv
cGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9k
ZSBtb2RlID0gRXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKICAgICBzdGF0aWMgdm9pZCB2aXNp
dENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAKIHByb3RlY3RlZDoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109042</attachid>
            <date>2011-09-28 11:56:14 -0700</date>
            <delta_ts>2011-09-28 16:52:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68839-20110928115613.patch</filename>
            <type>text/plain</type>
            <size>59943</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYyMzcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggN2NkNDgzY2FlYjhlNTdmZmNmM2UzNTNlMDQxMmU2ZTUw
NjRkZTI2MC4uZmViN2Q5N2M5ZTQwZjdkMzE1NDNlMDczMGIyMzE5MzAwZWQxZTA1NyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE5NywxMSAr
MTk3LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhVmlydHVh
bChDYWxsRGF0YSYpOwogICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBD
YWxsRGF0YSYpOwogCi0gICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RW
aXNpdG9yJiB2aXNpdG9yKQotICAgIHsKLSAgICAgICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNp
dG9yKTsKLSAgICB9Ci0KICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2Vs
bCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgewogICAgICAgICBKU0NhbGxiYWNrT2JqZWN0
KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdCo+KGNlbGwpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNTNkZGM3YmVkNzdlNDRlZTZiNjRkMzM1NTQ2NzY0ZGNk
MDM0OTkzMC4uNmE2YWUyZWI5MmQ0NjZjODAzOTFkYmM0Njk5ZmI1YzA2YjMxODE5YiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMTEtMDktMjggIE1hcmsgSGFo
bmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBEZS12aXJ0dWFsaXpl
IEpTQ2VsbDo6dmlzaXRDaGlsZHJlblZpcnR1YWwgYW5kIHJlbW92ZSBhbGwgb3RoZXIgdmlzaXRD
aGlsZHJlblZpcnR1YWwgbWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njg4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBEZS12aXJ0dWFsaXplZCBKU0NlbGw6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFs
IGFuZCBjaGFuZ2VzIGl0cyBpbXBsZW1lbnRhdGlvbiB0byBsb29rIHVwIHRoZSAKKyAgICAgICAg
ZnVuY3Rpb24gcG9pbnRlciBpbiB0aGUgTWV0aG9kVGFibGUgaW4gdGhlIENsYXNzSW5mbyBzdHJ1
Y3QuICBSZW1vdmVkIHRoZSByZW1haW5pbmcgCisgICAgICAgIHZpc2l0Q2hpbGRyZW5WaXJ0dWFs
IG1ldGhvZHMuICBUaGlzIHBhdGNoIGNvbXBsZXRlcyB0aGUgcHJvY2VzcyBvZiBkZS12aXJ0dWFs
aXppbmcgCisgICAgICAgIHZpc2l0Q2hpbGRyZW4uCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFj
a09iamVjdC5oOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmOgorICAg
ICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHA6CisgICAgICAgICogZGVidWdn
ZXIvRGVidWdnZXJBY3RpdmF0aW9uLmg6CisgICAgICAgICogcnVudGltZS9Bcmd1bWVudHMuY3Bw
OgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgICogcnVudGltZS9FeGVj
dXRhYmxlLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKiBy
dW50aW1lL0dldHRlclNldHRlci5jcHA6CisgICAgICAgICogcnVudGltZS9HZXR0ZXJTZXR0ZXIu
aDoKKyAgICAgICAgKiBydW50aW1lL0pTQWN0aXZhdGlvbi5jcHA6CisgICAgICAgICogcnVudGlt
ZS9KU0FjdGl2YXRpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNBcnJheS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsLmg6CisgICAg
ICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rp
b24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKiBy
dW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6
CisgICAgICAgICogcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaDoKKyAgICAgICAgKiBydW50aW1l
L05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJy
b3JDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcDoKKyAg
ICAgICAgKiBydW50aW1lL1JlZ0V4cE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvU2NvcGVD
aGFpbi5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmNwcDoKKyAgICAgICAgKiBydW50
aW1lL1N0cnVjdHVyZS5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlQ2hhaW4uY3BwOgor
ICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlQ2hhaW4uaDoKKworICAgICAgICBIYWQgdG8gbW92
ZSBjbGFzc05hbWUgdXAgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHZpcnR1YWwgZGVzdHJ1Y3RvciBp
biBKU09iamVjdCB3YXNuJ3QgCisgICAgICAgIHRoZSBmaXJzdCBub24taW5saW5lIHZpcnR1YWwg
bWV0aG9kIGluIEpTT2JqZWN0IChhcyBwZXIgdGhlIGNvbW1lbnQgaW4gdGhlIGZpbGUpLgorICAg
ICAgICBBbHNvIG1vdmVkIEpTQ2VsbDo6dmlzaXRDaGlsZHJlblZpcnR1YWwgaW50byBKU09iamVj
dC5oIGluIG9yZGVyIGZvciBpdCBiZSBpbmxpbmUtYWJsZQorICAgICAgICB0byBtaXRpZ2F0ZSB0
aGUgY29zdCBvZiBhbiBleHRyYSBtZXRob2QgY2FsbC4KKyAgICAgICAgKiBydW50aW1lL0pTT2Jq
ZWN0Lmg6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6dmlzaXRDaGlsZHJlblZpcnR1YWwpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHA6CisgICAgICAgICogcnVu
dGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmg6CisgICAgICAgICogcnVudGltZS9KU1N0YXRp
Y1Njb3BlT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3Qu
aDoKKworICAgICAgICBBZGRlZCBhbiBvdXQgb2YgbGluZSB2aXJ0dWFsIGRlc3RydWN0b3IgdG8g
SlNXcmFwcGVyT2JqZWN0IGFuZCBTY29wZUNoYWluTm9kZSB0byAKKyAgICAgICAgYXBwZWFzZSB0
aGUgdnRhYmxlIGdvZHMuICBJdCByZWZ1c2VkIHRvIGNvbXBpbGUgaWYgdGhlcmUgd2VyZSBubyB2
aXJ0dWFsIG1ldGhvZHMgaW4gCisgICAgICAgIGJvdGggb2YgdGhlc2UgY2xhc3NlcyBkdWUgdG8g
dGhlIHByZXNlbmNlIG9mIGEgd2VhayB2dGFibGUgcG9pbnRlci4KKyAgICAgICAgKiBydW50aW1l
L0pTV3JhcHBlck9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTV3JhcHBlck9iamVjdDo6fkpT
V3JhcHBlck9iamVjdCk6CisgICAgICAgICogcnVudGltZS9TY29wZUNoYWluLmNwcDoKKyAgICAg
ICAgKEpTQzo6U2NvcGVDaGFpbk5vZGU6On5TY29wZUNoYWluTm9kZSk6CisKIDIwMTEtMDktMjgg
IFl1cWlhbmcgWGlhbiAgPHl1cWlhbmcueGlhbkBpbnRlbC5jb20+CiAKICAgICAgICAgV3Jvbmcg
aW50ZWdlciBjaGVja3MgaW4gSlNWQUxVRTMyXzY0IERGRyBKSVQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZXhwCmluZGV4IGVjMjkxYzVmODFlNzhkMGQ4YjA5NTQ4MTdiYjcx
ZDVhMzBmM2ZlMmIuLmY4MjI5ODgxYWZmZTkzMGE4NjQ5MTQ5NTQyMGUzMTU4MzhiOTI3N2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cApAQCAtMTY2LDcgKzE2Niw2
IEBAIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDEzdmlzaXRDaGlsZHJlbkVQTlNfNkpTQ2VsbEVS
TlNfMTFTbG90VmlzaXRvckUKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDE2YWRkU3RhdGljR2xv
YmFsc0VQTlMwXzE4R2xvYmFsUHJvcGVydHlJbmZvRWkKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVj
dDE3cHV0V2l0aEF0dHJpYnV0ZXNFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNf
N0pTVmFsdWVFagogX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MThnZXRPd25Qcm9wZXJ0eVNsb3RF
UE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90RQotX19a
TjNKU0MxNEpTR2xvYmFsT2JqZWN0MjB2aXNpdENoaWxkcmVuVmlydHVhbEVSTlNfMTFTbG90Vmlz
aXRvckUKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDI0Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRv
ckUKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDNwdXRFUE5TXzlFeGVjU3RhdGVFUktOU18xMElk
ZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RSAgCiBfX1pOM0pTQzE0
SlNHbG9iYWxPYmplY3Q0aW5pdEVQTlNfOEpTT2JqZWN0RQpAQCAtMjc3LDcgKzI3Niw2IEBAIF9f
Wk4zSlNDN0pTQXJyYXkxNGZpbmlzaENyZWF0aW9uRVJOU18xMkpTR2xvYmFsRGF0YUUKIF9fWk4z
SlNDN0pTQXJyYXkxNGZpbmlzaENyZWF0aW9uRVJOU18xMkpTR2xvYmFsRGF0YUVSS05TXzdBcmdM
aXN0RQogX19aTjNKU0M3SlNBcnJheTE1c2V0U3ViY2xhc3NEYXRhRVB2CiBfX1pOM0pTQzdKU0Fy
cmF5MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFalJOU18xMlByb3BlcnR5U2xv
dEUKLV9fWk4zSlNDN0pTQXJyYXkyMHZpc2l0Q2hpbGRyZW5WaXJ0dWFsRVJOU18xMVNsb3RWaXNp
dG9yRQogX19aTjNKU0M3SlNBcnJheTZzX2luZm9FCiBfX1pOM0pTQzdKU0FycmF5OXNldExlbmd0
aEVqCiBfX1pOM0pTQzdKU0FycmF5QzFFUk5TXzEySlNHbG9iYWxEYXRhRVBOU185U3RydWN0dXJl
RQpAQCAtMzIxLDcgKzMxOSw2IEBAIF9fWk4zSlNDOEpTT2JqZWN0MTdwdXRXaXRoQXR0cmlidXRl
c0VQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1CiBfX1pOM0pTQzhK
U09iamVjdDE3cHV0V2l0aEF0dHJpYnV0ZXNFUE5TXzlFeGVjU3RhdGVFak5TXzdKU1ZhbHVlRWoK
IF9fWk4zSlNDOEpTT2JqZWN0MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFalJO
U18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDOEpTT2JqZWN0MTlnZXRPd25Qcm9wZXJ0eU5hbWVz
RVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5TXzE1RW51bWVyYXRpb25N
b2RlRQotX19aTjNKU0M4SlNPYmplY3QyMHZpc2l0Q2hpbGRyZW5WaXJ0dWFsRVJOU18xMVNsb3RW
aXNpdG9yRQogX19aTjNKU0M4SlNPYmplY3QyMWdldFByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4
ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCiBfX1pO
M0pTQzhKU09iamVjdDIyZmlsbEdldHRlclByb3BlcnR5U2xvdEVSTlNfMTJQcm9wZXJ0eVNsb3RF
UE5TXzE2V3JpdGVCYXJyaWVyQmFzZUlOU183VW5rbm93bkVFRQogX19aTjNKU0M4SlNPYmplY3Qy
M2FsbG9jYXRlUHJvcGVydHlTdG9yYWdlRVJOU18xMkpTR2xvYmFsRGF0YUVtbQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRleCBhMzM1
NWMzZTgzMzg2ZjFiMTFkOTdiMjA4MTg1ZmVlMGE4Mzk1ZDRlLi44NjcyNTliNzRhYThjYWE5NzZj
ODc3ODU4ODU4NTcxNDYwNGE4OWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMzMsNiArMzMsNyBAQCBFWFBPUlRTCiAgICAg
Pz8xSlNHbG9iYWxPYmplY3RASlNDQEBVQUVAWFoKICAgICA/PzFNdXRleEBXVEZAQFFBRUBYWgog
ICAgID8/MVJlZkNvdW50ZWRMZWFrQ291bnRlckBXVEZAQFFBRUBYWgorICAgID8/MVNjb3BlQ2hh
aW5Ob2RlQEpTQ0BARUFFQFhaCiAgICAgPz8xU291cmNlUHJvdmlkZXJDYWNoZUBKU0NAQFFBRUBY
WgogICAgID8/MVRocmVhZENvbmRpdGlvbkBXVEZAQFFBRUBYWgogICAgID8/MVdURlRocmVhZERh
dGFAV1RGQEBRQUVAWFoKQEAgLTM3Miw5ICszNzMsNiBAQCBFWFBPUlRTCiAgICAgP3Z0YWJsZUFu
Y2hvckBJbnRlcm5hbEZ1bmN0aW9uQEpTQ0BARUFFWFhaCiAgICAgP3Zpc2l0Q2hpbGRyZW5ASlNH
bG9iYWxPYmplY3RASlNDQEBTQVhQQVZKU0NlbGxAMkBBQVZTbG90VmlzaXRvckAyQEBaCiAgICAg
P3Zpc2l0Q2hpbGRyZW5ASlNPYmplY3RASlNDQEBTQVhQQVZKU0NlbGxAMkBBQVZTbG90VmlzaXRv
ckAyQEBaCi0gICAgP3Zpc2l0Q2hpbGRyZW5WaXJ0dWFsQEpTR2xvYmFsT2JqZWN0QEpTQ0BAVUFF
WEFBVlNsb3RWaXNpdG9yQDJAQFoKLSAgICA/dmlzaXRDaGlsZHJlblZpcnR1YWxASlNPYmplY3RA
SlNDQEBVQUVYQUFWU2xvdFZpc2l0b3JAMkBAWgotICAgID92aXNpdENoaWxkcmVuVmlydHVhbEBT
Y29wZUNoYWluTm9kZUBKU0NAQFVBRVhBQVZTbG90VmlzaXRvckAyQEBaCiAgICAgP3dhaXRAVGhy
ZWFkQ29uZGl0aW9uQFdURkBAUUFFWEFBVk11dGV4QDJAQFoKICAgICA/d2FpdEZvclRocmVhZENv
bXBsZXRpb25AV1RGQEBZQUhJUEFQQVhAWgogICAgID93cml0YWJsZUBQcm9wZXJ0eURlc2NyaXB0
b3JASlNDQEBRQkVfTlhaCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdn
ZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCmluZGV4IGVmOTdiMGZjNTliNDQ1ZmU4MzQ4ZDNkZjQ5
MDJlMGRkZTJiZDRjNWIuLmQ3Yjg2NmQyNjgwMGFjODZjYzFlMzZiOTNmYTE0OGIwZDc2NTk4NDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFj
dGl2YXRpb24uY3BwCkBAIC00MywxMSArNDMsNiBAQCB2b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6
ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU09iamVjdCogYWN0aQog
ICAgIG1fYWN0aXZhdGlvbi5zZXQoZ2xvYmFsRGF0YSwgdGhpcywgc3RhdGljX2Nhc3Q8SlNBY3Rp
dmF0aW9uKj4oYWN0aXZhdGlvbikpOwogfQogCi12b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6dmlz
aXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGls
ZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBEZWJ1Z2dlckFjdGl2YXRpb246OnZpc2l0
Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBEZWJ1
Z2dlckFjdGl2YXRpb24qIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxEZWJ1Z2dlckFjdGl2YXRp
b24qPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9E
ZWJ1Z2dlckFjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1
Z2dlckFjdGl2YXRpb24uaAppbmRleCBiMGMyMGMyY2M5MzlmZDliYzE3NGQ4NTI3ZjgwZDc4MGZh
YTI2N2E2Li45NzExMGIyZjg4OTNlMDllZjRlMzQ1ODUzYWMyZDdhYTA5MWQyMGQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5o
CkBAIC00MSw3ICs0MSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIGFj
dGl2YXRpb247CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJl
blZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJl
bihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogICAgICAgICB2aXJ0dWFsIFVTdHJpbmcgY2xhc3NO
YW1lKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhl
Y1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCmluZGV4IDYyZjQ4
NWQ5MDZjYWMwNjAxNzBkODc0Y2EzMjc3OGI5ODMzN2IwZDYuLmY1M2I5YmRjYjZiODgxMjhhNjEz
Y2E1ZGU1MzNjODU2ZmNkYWI0M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FyZ3VtZW50cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJndW1lbnRzLmNwcApAQCAtNDMsMTEgKzQzLDYgQEAgQXJndW1lbnRzOjp+QXJndW1lbnRzKCkK
ICAgICAgICAgZGVsZXRlIFtdIGQtPmV4dHJhQXJndW1lbnRzOwogfQogCi12b2lkIEFyZ3VtZW50
czo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlz
aXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBBcmd1bWVudHM6OnZpc2l0Q2hp
bGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBBcmd1bWVu
dHMqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxBcmd1bWVudHMqPihjZWxsKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKaW5kZXggNWUyMzA3NDZkYzNjY2UxM2Iz
MGY1MTZhZDUyMjY3OWI1YWY5OTk1Yy4uZmU5OTBiNDQ3M2U0YTk4MDEyOGI5M2NjYmQ5NTVmOTI2
MDZiZTc3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1l
bnRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKQEAg
LTkwLDcgKzkwLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIGNvbnN0IENs
YXNzSW5mbyBzX2luZm87CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW5WaXJ0
dWFsKFNsb3RWaXNpdG9yJik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlND
ZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAogICAgICAgICB2b2lkIGZpbGxBcmdMaXN0KEV4ZWNTdGF0
ZSosIE1hcmtlZEFyZ3VtZW50QnVmZmVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0V4ZWN1dGFibGUuY3BwCmluZGV4IDc4MWI5MzRkY2EzZmJmZDJmMTIxODJiMGQxNjY0Zjg1
YzgwMmMzOWMuLjNiYmFlMWIzODAxODk3ZDVlNDJkNWZhYmRiOWEwOTYyZDM1OTQyM2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCkBAIC0yMzQsMTEg
KzIzNCw2IEBAIHZvaWQgRXZhbEV4ZWN1dGFibGU6OmpldHRpc29uT3B0aW1pemVkQ29kZShKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEpCiB9CiAjZW5kaWYKIAotdm9pZCBFdmFsRXhlY3V0YWJsZTo6
dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRD
aGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBFdmFsRXhlY3V0YWJsZTo6dmlzaXRD
aGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEV2YWxF
eGVjdXRhYmxlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8RXZhbEV4ZWN1dGFibGUqPihjZWxs
KTsKQEAgLTM3OCwxMSArMzczLDYgQEAgdm9pZCBQcm9ncmFtRXhlY3V0YWJsZTo6dW5saW5rQ2Fs
bHMoKQogI2VuZGlmCiB9CiAKLXZvaWQgUHJvZ3JhbUV4ZWN1dGFibGU6OnZpc2l0Q2hpbGRyZW5W
aXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywg
dmlzaXRvcik7Ci19Ci0KIHZvaWQgUHJvZ3JhbUV4ZWN1dGFibGU6OnZpc2l0Q2hpbGRyZW4oSlND
ZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBQcm9ncmFtRXhlY3V0YWJs
ZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFByb2dyYW1FeGVjdXRhYmxlKj4oY2VsbCk7CkBA
IC01OTYsMTEgKzU4Niw2IEBAIHZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlOjpqZXR0aXNvbk9wdGlt
aXplZENvZGVGb3JDb25zdHJ1Y3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxECiB9CiAjZW5kaWYKIAot
dm9pZCBGdW5jdGlvbkV4ZWN1dGFibGU6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9y
JiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZv
aWQgRnVuY3Rpb25FeGVjdXRhYmxlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiB0aGlzT2JqZWN0ID0g
c3RhdGljX2Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKaW5kZXggMTUzMDhiZjY3ODBiMzFmMTFhM2Y1ZTU2
NWQ2YjJjNTAyZDJmYTY5Ny4uMjQ1NzcyOWViNjg4NDdjM2QzZTZiOGU1MGZlZDZhYThmYTYyMzkz
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaApAQCAtMzU2
LDcgKzM1Niw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBFdmFsRXhlY3V0YWJsZShFeGVj
U3RhdGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgYm9vbCk7CiAKICAgICAgICAgSlNPYmplY3QqIGNv
bXBpbGVJbnRlcm5hbChFeGVjU3RhdGUqLCBTY29wZUNoYWluTm9kZSosIEpJVENvZGU6OkpJVFR5
cGUpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0
b3ImKTsKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90Vmlz
aXRvciYpOwogICAgICAgICB2b2lkIHVubGlua0NhbGxzKCk7CiAKQEAgLTQyMiw3ICs0MjEsNiBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUHJvZ3JhbUV4ZWN1dGFibGUoRXhlY1N0YXRlKiwg
Y29uc3QgU291cmNlQ29kZSYpOwogCiAgICAgICAgIEpTT2JqZWN0KiBjb21waWxlSW50ZXJuYWwo
RXhlY1N0YXRlKiwgU2NvcGVDaGFpbk5vZGUqLCBKSVRDb2RlOjpKSVRUeXBlKTsKLSAgICAgICAg
dmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJik7CiAgICAgICAg
IHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKICAgICAg
ICAgdm9pZCB1bmxpbmtDYWxscygpOwogCkBAIC01ODIsNyArNTgwLDYgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIFNoYXJlZFN5bWJvbFRhYmxlKiBzeW1ib2xUYWJsZSgpIGNvbnN0IHsgcmV0
dXJuIG1fc3ltYm9sVGFibGU7IH0KIAogICAgICAgICB2b2lkIGRpc2NhcmRDb2RlKCk7Ci0gICAg
ICAgIHZvaWQgdmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKICAgICAgICAgc3Rh
dGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogICAgICAgICBz
dGF0aWMgRnVuY3Rpb25FeGVjdXRhYmxlKiBmcm9tR2xvYmFsQ29kZShjb25zdCBJZGVudGlmaWVy
JiwgRXhlY1N0YXRlKiwgRGVidWdnZXIqLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNPYmplY3QqKiBl
eGNlcHRpb24pOwogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIHByb3RvKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0
dGVyU2V0dGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldHRlclNldHRl
ci5jcHAKaW5kZXggZDBhNTc4YWU0ZjhmY2IwZWFhODdkNGI5NWI3OTc0ZTljMzM0N2RmOS4uYmVm
OTg3ZjZhNzcxNmNhNmM5YjFjZDBlMzYxN2NlYmQyMTMxYjI0NSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuY3BwCkBAIC0zMCwxMSArMzAsNiBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIEdldHRlclNldHRlcjo6c19pbmZvID0g
eyAiR2V0dGVyU2V0dGVyIiwgMCwgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShHZXR0ZXJTZXR0
ZXIpIH07CiAKLXZvaWQgR2V0dGVyU2V0dGVyOjp2aXNpdENoaWxkcmVuVmlydHVhbChTbG90Vmlz
aXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpOwotfQot
CiB2b2lkIEdldHRlclNldHRlcjo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNp
dG9yJiB2aXNpdG9yKQogewogICAgIEdldHRlclNldHRlciogdGhpc09iamVjdCA9IHN0YXRpY19j
YXN0PEdldHRlclNldHRlcio+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9HZXR0ZXJTZXR0ZXIuaAppbmRleCBhMzEyZjczMGRkMzVmYzBiZWVjMzhkMzcwNzEyNWMzMDMy
MWFhYzM4Li5kNWFhYjgxYzE5N2E2YWEwM2JhZGE4MTM5ODQ3NTc1MTIwZDA3ZTJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaApAQCAtNTMsNyArNTMs
NiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBnZXR0ZXJTZXR0ZXI7CiAg
ICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlblZpcnR1YWwoU2xv
dFZpc2l0b3ImKTsKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBT
bG90VmlzaXRvciYpOwogCiAgICAgICAgIEpTT2JqZWN0KiBnZXR0ZXIoKSBjb25zdCB7IHJldHVy
biBtX2dldHRlci5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBY3RpdmF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
QWN0aXZhdGlvbi5jcHAKaW5kZXggOTU5YmNmODA5YjAzOTg5ZDhjMWRkNTBlYzExM2Q5OThlNzUw
MGRiMi4uNDQyYjc3ZjAzYjdhNDEwZjZiOGFmMzEzZGQwZjMwYzcxYTQwYjAwYiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCkBAIC02MywxMSAr
NjMsNiBAQCBKU0FjdGl2YXRpb246On5KU0FjdGl2YXRpb24oKQogICAgIHN0YXRpY19jYXN0PFNo
YXJlZFN5bWJvbFRhYmxlKj4obV9zeW1ib2xUYWJsZSktPmRlcmVmKCk7CiB9CiAKLXZvaWQgSlNB
Y3RpdmF0aW9uOjp2aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYgdmlzaXRvcikKLXsK
LSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpOwotfQotCiB2b2lkIEpTQWN0aXZhdGlv
bjo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewog
ICAgIEpTQWN0aXZhdGlvbiogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTQWN0aXZhdGlvbio+
KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3Rp
dmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaApp
bmRleCA5OTEwOTc2ZDM0Zjk4ZGJkY2FkZjk4NDJlYzE4MDI3NTM1ZWZiYzUyLi5lNmU3NzRmN2E3
MTgxOGMzZDQ1ZmJiOGEyZWFlNWJmODZhODcwNGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FjdGl2YXRpb24uaApAQCAtNTUsNyArNTUsNiBAQCBuYW1lc3BhY2UgSlND
IHsKIAogICAgICAgICB2aXJ0dWFsIH5KU0FjdGl2YXRpb24oKTsKIAotICAgICAgICB2aXJ0dWFs
IHZvaWQgdmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKICAgICAgICAgc3RhdGlj
IHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCiAgICAgICAgIHZp
cnR1YWwgYm9vbCBpc0R5bmFtaWNTY29wZShib29sJiByZXF1aXJlc0R5bmFtaWNDaGVja3MpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAppbmRleCAxZDBh
MTU2YWM1NmYyMDM2Yjk1MDNjYTU3NWIyOTU1NGIwODBkZWUxLi4wMjBjY2YwYTM1M2Y5NWMxMDIx
OGJjYjNjN2NiOTI2NjRmZjEzZjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0FycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FycmF5LmNwcApAQCAtODcxLDExICs4NzEsNiBAQCB2b2lkIEpTQXJyYXk6OnVuc2hpZnRDb3Vu
dChFeGVjU3RhdGUqIGV4ZWMsIGludCBjb3VudCkKICAgICAgICAgdmVjdG9yW2ldLmNsZWFyKCk7
CiB9CiAKLXZvaWQgSlNBcnJheTo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBK
U0FycmF5Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3Ip
CiB7CiAgICAgSlNBcnJheSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTQXJyYXkqPihjZWxs
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAppbmRleCBlOGZlNzg5NTAy
OGRmOTM3MjlhMzAzNDZmMDBkY2NmNWZmNTk5ZWJhLi5lNTUzMmFiM2JiNTkxOWIzMWVkMDRkNTVl
ZmVmNmMyM2UyZDZjMTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5o
CkBAIC0xNzIsNyArMTcyLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgdW5z
aWduZWQgcHJvcGVydHlOYW1lKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5
TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9k
ZSA9IEV4Y2x1ZGVEb250RW51bVByb3BlcnRpZXMpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgdmlz
aXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKICAgICAgICAgc3RhdGljIHZvaWQgdmlz
aXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCiAgICAgICAgIHZvaWQqIHN1YmNs
YXNzRGF0YSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDZWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAppbmRl
eCAyOTI4OGQ4YTMxNzRmYmViYTgwNGQ4ODE5MjE2NDZmMDcyZWU0Yjk4Li4yOTZiYjExNzdhMmQ4
YzUyMDdjZThhZTk2ODVhMjJlZGU3MDFhNTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NlbGwuaApAQCAtODUsOCArODUsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmly
dHVhbCBVU3RyaW5nIHRvU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgICAgICB2aXJ0dWFs
IEpTT2JqZWN0KiB0b09iamVjdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCopIGNvbnN0Owog
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYp
OwogICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9y
Jik7CisgICAgICAgIHZvaWQgdmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKIAog
ICAgICAgICAvLyBPYmplY3Qgb3BlcmF0aW9ucywgd2l0aCB0aGUgdG9PYmplY3Qgb3BlcmF0aW9u
IGluY2x1ZGVkLgogICAgICAgICBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0OwpA
QCAtMTgxLDExICsxODEsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgcmV0dXJuIG1fc3Ry
dWN0dXJlLmdldCgpOwogICAgIH0KIAotICAgIGlubGluZSB2b2lkIEpTQ2VsbDo6dmlzaXRDaGls
ZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi0gICAgewotICAgICAgICB2aXNpdENo
aWxkcmVuKHRoaXMsIHZpc2l0b3IpOwotICAgIH0KLQogICAgIGlubGluZSB2b2lkIEpTQ2VsbDo6
dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIHsK
ICAgICAgICAgSlNDZWxsKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNDZWxsKj4oY2VsbCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCmluZGV4IDRm
Yzc1Njg5NGJjOTIwMmFiOGYyMjRjYjczZWFiMDI3ZjkxZGQ4NWYuLmZiZWRkZWQ4MWMyOTI4YWI1
ZTBmMjU0ZmQxM2UwMTc1NDcwMzkxM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC0xNTEsMTEgKzE1MSw2IEBAIGNvbnN0IFVTdHJpbmcgSlNG
dW5jdGlvbjo6Y2FsY3VsYXRlZERpc3BsYXlOYW1lKEV4ZWNTdGF0ZSogZXhlYykKICAgICByZXR1
cm4gbmFtZShleGVjKTsKIH0KIAotdm9pZCBKU0Z1bmN0aW9uOjp2aXNpdENoaWxkcmVuVmlydHVh
bChTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0
b3IpOwotfQotCiB2b2lkIEpTRnVuY3Rpb246OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBT
bG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU0Z1bmN0aW9uKiB0aGlzT2JqZWN0ID0gc3Rh
dGljX2Nhc3Q8SlNGdW5jdGlvbio+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNGdW5jdGlvbi5oCmluZGV4IDFlNjY4ZTllMjAxMDI3ZDMxYTI5MGM0MWY2ZDkzMmNkMTY5
Nzc1MGMuLjkxYzNjY2ZkOTUyNGMyYzljZDM1MDg1M2I2MDY1MmJiMmUxMGZhYWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKQEAgLTEzNSw3ICsxMzUsNiBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9y
Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSos
IFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlID0gRXhjbHVkZURvbnRFbnVtUHJv
cGVydGllcyk7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNs
b3RWaXNpdG9yJik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwg
U2xvdFZpc2l0b3ImKTsKIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggOThjMTFkNDA2NmU1MWUwZjdiMWRh
NjkyOWQyYmMzZDEyMjBlZWYyOC4uOTk2ZmMyOTIxMmE1MDg1Mjg2ZDVlMjIwNDVkNzMxOTI2Y2Rh
MTM0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcApAQCAtMzA4LDExICszMDgsNiBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0OjpyZXNldFBy
b3RvdHlwZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQogICAg
ICAgICBvbGRMYXN0SW5Qcm90b3R5cGVDaGFpbi0+c2V0UHJvdG90eXBlKGdsb2JhbERhdGEsIG9i
amVjdFByb3RvdHlwZSk7CiB9CiAKLXZvaWQgSlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW5W
aXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywg
dmlzaXRvcik7Ci19Ci0KIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxs
KiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsgCiAgICAgSlNHbG9iYWxPYmplY3QqIHRo
aXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0dsb2JhbE9iamVjdCo+KGNlbGwpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggM2YwYjg1ZDk2
OWI2YzAxNmI2ZDlhNWYzNTcwYjYxNWRiYjEzY2YxYi4uOWRmYWQxMjIyZTlmNTE1MDRlZGJhOGJi
MDFkMWU5NTg2MWJhNmQxYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5oCkBAIC0xNzUsNyArMTc1LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
cHVibGljOgogICAgICAgICB2aXJ0dWFsIH5KU0dsb2JhbE9iamVjdCgpOwogCi0gICAgICAgIHZp
cnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYpOwogICAgICAgICBz
dGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAKICAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5jcHAKaW5kZXggNTc4OTlmYWU3OTZjMjk5ZjA2OTgxZTBkZmM0OTNhZTkwZmZkZGRh
NS4uYTc1YzM2YWQ4NWI2OTFkZmVlZGI2YjRkOGM3ZDQ4MzIwYTM3YzBjOCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcApAQCAtNjgsMTEgKzY4LDYgQEAgc3Rh
dGljIGlubGluZSB2b2lkIGdldENsYXNzUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IENsYXNzSW5mbyogY2xhc3MKICAgICB9CiB9CiAKLXZvaWQgSlNPYmplY3Q6OnZpc2l0Q2hp
bGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4o
dGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgSlNPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxs
KiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU09iamVjdCogdGhpc09iamVj
dCA9IHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuaAppbmRleCAyN2I1Y2MwYThmZTMxZjg1YTg5YWZhNWIwYzdhYjRkNGJl
MWFlNmE0Li4yYjAwZWM0OWMxNzhiMzdiYWZjYTM1YjMwN2RhMDQ0ODY3Zjc4NjVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTc5LDEwICs3OSwxMSBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSlNDZWxsIEJhc2U7
CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9y
Jik7CiAgICAgICAgIEFMV0FZU19JTkxJTkUgdm9pZCB2aXNpdENoaWxkcmVuRGlyZWN0KFNsb3RW
aXNpdG9yJik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xv
dFZpc2l0b3ImKTsKIAorICAgICAgICB2aXJ0dWFsIFVTdHJpbmcgY2xhc3NOYW1lKCkgY29uc3Q7
CisKICAgICAgICAgLy8gVGhlIGlubGluZSB2aXJ0dWFsIGRlc3RydWN0b3IgY2Fubm90IGJlIHRo
ZSBmaXJzdCB2aXJ0dWFsIGZ1bmN0aW9uIGRlY2xhcmVkCiAgICAgICAgIC8vIGluIHRoZSBjbGFz
cyBhcyBpdCByZXN1bHRzIGluIHRoZSB2dGFibGUgYmVpbmcgZ2VuZXJhdGVkIGFzIGEgd2VhayBz
eW1ib2wKICAgICAgICAgdmlydHVhbCB+SlNPYmplY3QoKTsKQEAgLTkzLDggKzk0LDYgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIAogICAgICAgICBTdHJ1Y3R1cmUqIGluaGVyaXRvcklEKEpT
R2xvYmFsRGF0YSYpOwogCi0gICAgICAgIHZpcnR1YWwgVVN0cmluZyBjbGFzc05hbWUoKSBjb25z
dDsKLQogICAgICAgICBKU1ZhbHVlIGdldChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUpIGNvbnN0OwogICAgICAgICBKU1ZhbHVlIGdldChFeGVjU3RhdGUqLCB1bnNp
Z25lZCBwcm9wZXJ0eU5hbWUpIGNvbnN0OwogCkBAIC00ODUsNiArNDg0LDExIEBAIGlubGluZSBi
b29sIEpTQ2VsbDo6aW5oZXJpdHMoY29uc3QgQ2xhc3NJbmZvKiBpbmZvKSBjb25zdAogICAgIHJl
dHVybiBjbGFzc0luZm8oKS0+aXNTdWJDbGFzc09mKGluZm8pOwogfQogCitpbmxpbmUgdm9pZCBK
U0NlbGw6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAg
IGNsYXNzSW5mbygpLT5tZXRob2RUYWJsZS52aXNpdENoaWxkcmVuRnVuY3Rpb25QdHIodGhpcywg
dmlzaXRvcik7Cit9CisKIC8vIHRoaXMgbWV0aG9kIGlzIGhlcmUgdG8gYmUgYWZ0ZXIgdGhlIGlu
bGluZSBkZWNsYXJhdGlvbiBvZiBKU0NlbGw6OmluaGVyaXRzCiBpbmxpbmUgYm9vbCBKU1ZhbHVl
Ojppbmhlcml0cyhjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbykgY29uc3QKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3Iu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRv
ci5jcHAKaW5kZXggOTcwMjVhNGU0ZmI5MThkMzJkZjM4ODFmYjM4NDg1YTRlYjg5MTg4MS4uYWJh
Yjc5ZWY3ZGVmMzQwYzc3ZTcwZjc5NThmMzhhMmE3OWU0ZTgwMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAK
QEAgLTkyLDExICs5Miw2IEBAIEpTVmFsdWUgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6Z2V0KEV4
ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2UsIHNpemVfdCBpKQogICAgIHJldHVybiBpZGVu
dGlmaWVyOwogfQogCi12b2lkIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I6OnZpc2l0Q2hpbGRyZW5W
aXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywg
dmlzaXRvcik7Ci19Ci0KIHZvaWQgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6dmlzaXRDaGlsZHJl
bihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEpTUHJvcGVydHlO
YW1lSXRlcmF0b3IqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1Byb3BlcnR5TmFtZUl0ZXJh
dG9yKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgKaW5kZXggYzZmNjk3OTcyY2E3NTQ2YjUyYTY0NmIzNzBj
OWQwZmY1NzFjODU0OC4uOTdhNTAzMjZiZGM5ZWNjNGI5ODI0ZTJmNTJjZTZjMjA2MGI1NjRkMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJ
dGVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlO
YW1lSXRlcmF0b3IuaApAQCAtNTgsNyArNTgsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBPdmVycmlkZXNWaXNpdENoaWxkcmVuKSwg
JnNfaW5mbyk7CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJl
blZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJl
bihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCiAgICAgICAgIGJvb2wgZ2V0T2Zmc2V0KHNpemVf
dCBpLCBpbnQmIG9mZnNldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNTdGF0aWNTY29wZU9iamVjdC5jcHAKaW5kZXggMzFkYTgwYTc5ZWNkNjA3ZWUxOTkyMjdi
MDJhZTdlZDRmZDNlYjE4MS4uYjY3ODBlZmIzZTRmYjI5ZDdjZjhmNjhkZTdiYWI1NTU2ZjlmODdl
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29w
ZU9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNT
Y29wZU9iamVjdC5jcHAKQEAgLTMyLDExICszMiw2IEBACiBuYW1lc3BhY2UgSlNDIHsKIEFTU0VS
VF9DTEFTU19GSVRTX0lOX0NFTEwoSlNTdGF0aWNTY29wZU9iamVjdCk7CiAKLXZvaWQgSlNTdGF0
aWNTY29wZU9iamVjdDo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3Ip
Ci17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBKU1N0YXRp
Y1Njb3BlT2JqZWN0Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCiB7CiAgICAgSlNTdGF0aWNTY29wZU9iamVjdCogdGhpc09iamVjdCA9IHN0YXRpY19j
YXN0PEpTU3RhdGljU2NvcGVPYmplY3QqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaAppbmRleCA4MjExNzhhOWFmYjg2
M2MyNmU3ZmZjZWE2YTJhNGUwOGNiOGVlZGFkLi43OTJkNGIwYjQyY2ZkNDE0Y2NlN2Y0YTFhYWQ0
YjNlNmE2ZGI5ODUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1N0YXRpY1Njb3BlT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTdGF0aWNTY29wZU9iamVjdC5oCkBAIC00MSw3ICs0MSw2IEBAIG5hbWVzcGFjZSBKU0N7CiAg
ICAgICAgICAgICByZXR1cm4gc2NvcGVPYmplY3Q7CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0
dWFsIHZvaWQgdmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKICAgICAgICAgc3Rh
dGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogICAgICAgICBi
b29sIGlzRHluYW1pY1Njb3BlKGJvb2wmIHJlcXVpcmVzRHluYW1pY0NoZWNrcykgY29uc3Q7CiAg
ICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRvVGhpc09iamVjdChFeGVjU3RhdGUqKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVj
dC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuY3Bw
CmluZGV4IDY5MTkyZmUzY2Q3ODNkZjE0ZTA0NDU0OTk5MmRkOTVkYmY5ZTA5MmQuLjM0ZGY3ZWFm
ODQwNDA5N2RlMWM3MDUyNDdiZTk4NjY4NDQyZmE1MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmNwcApAQCAtMjYsOSArMjYsOCBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU1dyYXBwZXJPYmpl
Y3QpOwogCi12b2lkIEpTV3JhcHBlck9iamVjdDo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZp
c2l0b3ImIHZpc2l0b3IpIAorSlNXcmFwcGVyT2JqZWN0Ojp+SlNXcmFwcGVyT2JqZWN0KCkKIHsK
LSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpOwogfQogCiB2b2lkIEpTV3JhcHBlck9i
amVjdDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaAppbmRl
eCA3ZGQ0YjI4OTdhZTg1NTQ2ZWUyNGZmNWZkNjI2NzJiZmUwMjk2OTlmLi43MzcxM2MwYjM0YzY0
MjQyYTg0ZjJhZWRkMTdkNTE1NTk2YTEwZTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaApAQCAtNDQsOCArNDQsOSBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgZXhwbGljaXQgSlNXcmFwcGVyT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFN0
cnVjdHVyZSopOwogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgSlNOb25GaW5hbE9iamVjdDo6U3RydWN0dXJlRmxh
Z3M7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNp
dG9yJik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZp
c2l0b3ImKTsKKworICAgICAgICB2aXJ0dWFsIH5KU1dyYXBwZXJPYmplY3QoKTsKICAgICAgICAg
CiAgICAgcHJpdmF0ZToKICAgICAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+IG1faW50ZXJuYWxW
YWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVy
cm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZl
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMDljODcwNWJiNDZiMTQ5Y2NkYTU0NGRmMTE4Y2Uy
NGZkZTBiNzhmOS4uZjJlNmJjY2Y3MTA4M2ZmMjRmM2FkNTU5NjhkZjlmOWJjOWI1OTlkZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JD
b25zdHJ1Y3Rvci5jcHAKQEAgLTM3LDExICszNyw2IEBAIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I6
Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
CiB7CiB9CiAKLXZvaWQgTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6dmlzaXRDaGlsZHJlblZpcnR1
YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNp
dG9yKTsKLX0KLQogdm9pZCBOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjp2aXNpdENoaWxkcmVuKEpT
Q2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgTmF0aXZlRXJyb3JDb25z
dHJ1Y3RvciogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PE5hdGl2ZUVycm9yQ29uc3RydWN0b3Iq
PihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2
ZUVycm9yQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2
ZUVycm9yQ29uc3RydWN0b3IuaAppbmRleCAwYTJiYjIzZDNlMjBiMzkzZWM5ZjliNzE4YWJlYTYx
NmNiZGQ4ZmQ0Li42N2Y1MjhkMGFlNzJlM2Y5YjEzNjE3MGIzMzZlMjg0NWVkYmE4YTczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVj
dG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25z
dHJ1Y3Rvci5oCkBAIC03MSw3ICs3MSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0
dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7CiAgICAg
ICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGFWaXJ0dWFsKENhbGxEYXRhJik7CiAgICAg
ICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBDYWxsRGF0YSYpOwotICAg
ICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKICAg
ICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwog
CiAgICAgICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fZXJyb3JTdHJ1Y3R1cmU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAppbmRleCBhNWQ3
ZmU2MWVjODBiMjcwY2Y2M2M1MGVhOWE0MjczNWQ0YzM0ODU0Li4yYjg0MzI0ZmZlODkxN2Q1MzFj
OGM3NzMzZmE1MDE0Y2Y4MWI1MDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cE9iamVjdC5jcHAKQEAgLTc4LDExICs3OCw2IEBAIFJlZ0V4cE9iamVjdDo6flJl
Z0V4cE9iamVjdCgpCiB7CiB9CiAKLXZvaWQgUmVnRXhwT2JqZWN0Ojp2aXNpdENoaWxkcmVuVmly
dHVhbChTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZp
c2l0b3IpOwotfQotCiB2b2lkIFJlZ0V4cE9iamVjdDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNl
bGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIFJlZ0V4cE9iamVjdCogdGhpc09iamVj
dCA9IHN0YXRpY19jYXN0PFJlZ0V4cE9iamVjdCo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAppbmRleCBlOTY2NGE0MTcxZjc1YmEyMTE0NjIz
ZDJkNjI3ODIxNTY3N2MxNDc4Li5lOGFmNmQ2YmMxZjM3NGI5OTIxYzkwYzNiNjA0ZDJlZjU1Yjhj
NTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaApA
QCAtODEsNyArODEsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihKU0dsb2JhbE9iamVjdCopOwogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0T3duUHJv
cGVydHlTbG90IHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKLSAgICAgICAgdmlydHVhbCB2b2lk
IHZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJik7CiAgICAgICAgIHN0YXRpYyB2b2lk
IHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAogICAgIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZUNoYWluLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlQ2hhaW4uY3BwCmluZGV4IGU4NTlj
OGM0MWY4YWE0MDgxYmNlNWY1OTcyZGZiMGIzODg5MjE2NDYuLjZlMmUwMzRhZjZkN2ZlMTczYmRj
NjQ5ZjViOTU4MmI5ZmNkMzg4NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Njb3BlQ2hhaW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Njb3BlQ2hhaW4uY3BwCkBAIC0yOSw2ICsyOSwxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAor
U2NvcGVDaGFpbk5vZGU6On5TY29wZUNoYWluTm9kZSgpCit7Cit9CisKICNpZm5kZWYgTkRFQlVH
CiAKIHZvaWQgU2NvcGVDaGFpbk5vZGU6OnByaW50KCkKQEAgLTY3LDExICs3MSw2IEBAIGludCBT
Y29wZUNoYWluTm9kZTo6bG9jYWxEZXB0aCgpCiAgICAgcmV0dXJuIHNjb3BlRGVwdGg7CiB9CiAK
LXZvaWQgU2NvcGVDaGFpbk5vZGU6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2
aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQg
U2NvcGVDaGFpbk5vZGU6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYg
dmlzaXRvcikKIHsKICAgICBTY29wZUNoYWluTm9kZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0
PFNjb3BlQ2hhaW5Ob2RlKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TY29wZUNoYWluLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
Y29wZUNoYWluLmgKaW5kZXggYWM1MmM2NzdiYjU0MTk2N2I0MDA2OTA2YzNmNGM3NWZlZmVhNDgz
Yi4uNDgzODVkMGNiZTFhNDg4YWU3OWNhYTZhYTMxNTgxZDc0NjAwYzY4ZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlQ2hhaW4uaApAQCAtNDUsNiArNDUsOCBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgewogICAgICAgICB9CiAKKyAgICAgICAgdmlydHVhbCB+U2Nv
cGVDaGFpbk5vZGUoKTsKKwogICAgIHByb3RlY3RlZDoKICAgICAgICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCiAgICAgICAgIHsKQEAgLTg3LDcgKzg5LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAjZW5kaWYK
ICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFs
dWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgcHJvdG8sIFR5cGVJbmZvKENvbXBvdW5kVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19p
bmZvKTsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZp
c2l0b3ImKTsKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90
VmlzaXRvciYpOwogICAgICAgICBzdGF0aWMgSlNfRVhQT1JUREFUQSBjb25zdCBDbGFzc0luZm8g
c19pbmZvOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcApp
bmRleCBiNjdjODdmMWNkMDc0Y2ZlMGM3ODdmZWZkYWRlODQ5NDNlZmIzZmE5Li5kN2FmYTE1ZjU4
ZTMyOTVlYzcyYWY5MzE3NjgyYjg3NzQ4NGUxZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKQEAgLTcyNCwxMSArNzI0LDYgQEAgdm9pZCBTdHJ1Y3R1
cmU6OmdldFByb3BlcnR5TmFtZXMoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBQcm9wZXJ0eU5h
bWVBcnJheSYgcHIKICAgICB9CiB9CiAKLXZvaWQgU3RydWN0dXJlOjp2aXNpdENoaWxkcmVuVmly
dHVhbChTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZp
c2l0b3IpOwotfQotCiB2b2lkIFN0cnVjdHVyZTo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGws
IFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIFN0cnVjdHVyZSogdGhpc09iamVjdCA9IHN0
YXRpY19jYXN0PFN0cnVjdHVyZSo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmUuaAppbmRleCA5NThhZDFiNzViOGZlNTdiYmI1NmZkZThiYjgzOGY1ZWIyZGY2
NjQ1Li44NGZkZDdiYjhiN2M1OTI4MDAxY2Y1ZGZjOWJkYzEzZmIzNDdhNjYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaApAQCAtMTMwLDcgKzEzMCw2IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBKU1ZhbHVlIHN0b3JlZFByb3RvdHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJvdG90eXBlLmdldCgpOyB9CiAgICAgICAgIEpTVmFsdWUgcHJvdG90eXBlRm9y
TG9va3VwKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAgICAgICBTdHJ1Y3R1cmVDaGFpbiogcHJvdG90
eXBlQ2hhaW4oRXhlY1N0YXRlKikgY29uc3Q7Ci0gICAgICAgIHZvaWQgdmlzaXRDaGlsZHJlblZp
cnR1YWwoU2xvdFZpc2l0b3ImKTsKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihK
U0NlbGwqLCBTbG90VmlzaXRvciYpOwogCiAgICAgICAgIFN0cnVjdHVyZSogcHJldmlvdXNJRCgp
IGNvbnN0IHsgQVNTRVJUKHN0cnVjdHVyZSgpLT5jbGFzc0luZm8oKSA9PSAmc19pbmZvKTsgcmV0
dXJuIG1fcHJldmlvdXMuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cnVjdHVyZUNoYWluLmNwcAppbmRleCBhNzM2MmE5MDdhM2FmZjdlODY2MjE0Y2MwNWM2
MzczZDFlOTI0OWI0Li4yYmQ3ODFkNGJlNjhmMzhiN2M0ZmE5ODg4ZDI3MzA1MTQxYTczOTNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uY3Bw
CkBAIC00MywxMSArNDMsNiBAQCBTdHJ1Y3R1cmVDaGFpbjo6flN0cnVjdHVyZUNoYWluKCkKIHsK
IH0KIAotdm9pZCBTdHJ1Y3R1cmVDaGFpbjo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0
b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQog
dm9pZCBTdHJ1Y3R1cmVDaGFpbjo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNp
dG9yJiB2aXNpdG9yKQogewogICAgIFN0cnVjdHVyZUNoYWluKiB0aGlzT2JqZWN0ID0gc3RhdGlj
X2Nhc3Q8U3RydWN0dXJlQ2hhaW4qPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5oCmluZGV4IDE5MGM1YzJmNGU0NDdlY2MyMDkxODJkYWVk
ODQ1ZTUwZjE5Zjk4ZjcuLjI4MWY2MDI0ZTRlNmQ0Yzc5YmIzNTljMGQxN2FjYzUzMTQwYTQ0MTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWlu
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uaApA
QCAtNTIsNyArNTIsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBjaGFp
bjsKICAgICAgICAgfQogICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiogaGVhZCgpIHsg
cmV0dXJuIG1fdmVjdG9yLmdldCgpOyB9Ci0gICAgICAgIHZvaWQgdmlzaXRDaGlsZHJlblZpcnR1
YWwoU2xvdFZpc2l0b3ImKTsKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0Nl
bGwqLCBTbG90VmlzaXRvciYpOwogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0
cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9i
YWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oQ29tcG91bmRUeXBlLCBP
dmVycmlkZXNWaXNpdENoaWxkcmVuKSwgJnNfaW5mbyk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9n
CmluZGV4IDdiZTYwZTc1NTU0MjliNTRmZmM1YTcyMzY3ZTlmOGVjOTU5ZWZjM2EuLjdmNGViZjVh
Mzc3NzFlZDFmYzMyM2RlOTZjYjFmZjUxZDk4ODUzOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0R2x1ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTA5LTI4ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVu
YmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgRGUtdmlydHVhbGl6ZSBKU0NlbGw6OnZpc2l0Q2hp
bGRyZW5WaXJ0dWFsIGFuZCByZW1vdmUgYWxsIG90aGVyIHZpc2l0Q2hpbGRyZW5WaXJ0dWFsIG1l
dGhvZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4
ODM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGUt
dmlydHVhbGl6ZWQgSlNDZWxsOjp2aXNpdENoaWxkcmVuVmlydHVhbCBhbmQgY2hhbmdlcyBpdHMg
aW1wbGVtZW50YXRpb24gdG8gbG9vayB1cCB0aGUgCisgICAgICAgIGZ1bmN0aW9uIHBvaW50ZXIg
aW4gdGhlIE1ldGhvZFRhYmxlIGluIHRoZSBDbGFzc0luZm8gc3RydWN0LiAgUmVtb3ZlZCB0aGUg
cmVtYWluaW5nIAorICAgICAgICB2aXNpdENoaWxkcmVuVmlydHVhbCBtZXRob2RzLiAgVGhpcyBw
YXRjaCBjb21wbGV0ZXMgdGhlIHByb2Nlc3Mgb2YgZGUtdmlydHVhbGl6aW5nIAorICAgICAgICB2
aXNpdENoaWxkcmVuLgorCisgICAgICAgICogVXNlck9iamVjdEltcC5jcHA6CisgICAgICAgICog
VXNlck9iamVjdEltcC5oOgorCiAyMDExLTA5LTI3ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVu
YmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN0YXRpYyB2ZXJzaW9uIG9mIEpTQ2VsbDo6
Z2V0Q2FsbERhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0
SW1wLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcAppbmRleCAz
YjQxNDRiOWFiNDk4YzUxNWI3MjBiMGEzYzk0MmJiZDY2NDRmZDc2Li42MzI1OTk0ZjFlMWNmOWMy
MDkwZmQ4MmY2YTAyM2M5NWI0MDEyZDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvVXNlck9iamVjdEltcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmpl
Y3RJbXAuY3BwCkBAIC00MTAsMTEgKzQxMCw2IEBAIFVTdHJpbmcgVXNlck9iamVjdEltcDo6dG9T
dHJpbmcoRXhlY1N0YXRlICpleGVjKSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZv
aWQgVXNlck9iamVjdEltcDo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0
b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBVc2Vy
T2JqZWN0SW1wOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0
b3IpCiB7CiAgICAgVXNlck9iamVjdEltcCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFVzZXJP
YmplY3RJbXAqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2Vy
T2JqZWN0SW1wLmggYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCmluZGV4
IDA0ODU0MzVhNjc1ZTBiNzYwMTc4Nzc5M2RjMzJhN2VmNDhiMzY1MTIuLjJkNTZkNGEwOWQ3NjZk
NzQ3ZWM3NTUzNTlkMjEwNTU1MDFmYTEyOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL1VzZXJPYmpl
Y3RJbXAuaApAQCAtNjMsNyArNjMsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBkb3VibGUgdG9O
dW1iZXIoRXhlY1N0YXRlICpleGVjKSBjb25zdDsKICAgICB2aXJ0dWFsIFVTdHJpbmcgdG9TdHJp
bmcoRXhlY1N0YXRlICpleGVjKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxk
cmVuVmlydHVhbChTbG90VmlzaXRvciYpOwogICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4o
SlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAogICAgIEpTVXNlck9iamVjdCAqR2V0SlNVc2VyT2Jq
ZWN0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGRlM2IxOTI3ZWUxMDZhNTBhYWQ0YTE0ZjBmZTcx
MDM1NzVlYjc1ZS4uY2NkMTE1MWJlY2U2NmY1ZGQzNjM3MDc3YWE4MzgwMGYyODEzOTM1YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDExLTA5LTI4ICBNYXJrIEhhaG5lbmJlcmcgIDxt
aGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgRGUtdmlydHVhbGl6ZSBKU0NlbGw6OnZp
c2l0Q2hpbGRyZW5WaXJ0dWFsIGFuZCByZW1vdmUgYWxsIG90aGVyIHZpc2l0Q2hpbGRyZW5WaXJ0
dWFsIG1ldGhvZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTY4ODM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgIERlLXZpcnR1YWxpemVkIEpTQ2VsbDo6dmlzaXRD
aGlsZHJlblZpcnR1YWwgYW5kIGNoYW5nZXMgaXRzIGltcGxlbWVudGF0aW9uIHRvIGxvb2sgdXAg
dGhlIAorICAgICAgICBmdW5jdGlvbiBwb2ludGVyIGluIHRoZSBNZXRob2RUYWJsZSBpbiB0aGUg
Q2xhc3NJbmZvIHN0cnVjdC4gIFJlbW92ZWQgdGhlIHJlbWFpbmluZyAKKyAgICAgICAgdmlzaXRD
aGlsZHJlblZpcnR1YWwgbWV0aG9kcy4gIFRoaXMgcGF0Y2ggY29tcGxldGVzIHRoZSBwcm9jZXNz
IG9mIGRlLXZpcnR1YWxpemluZyAKKyAgICAgICAgdmlzaXRDaGlsZHJlbi4KKworICAgICAgICAq
IFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXR0ckN1c3RvbS5jcHA6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20uY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTQ1NTUnVsZUN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xvYmFs
T2JqZWN0Ojp+SlNET01HbG9iYWxPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01HbG9i
YWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUds
b2JhbE9iamVjdC5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNw
cDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmg6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNKYXZhU2NyaXB0QXVkaW9Ob2RlQ3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U01lc3NhZ2VDaGFubmVsQ3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01lc3Nh
Z2VQb3J0Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1
c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U1NWR0VsZW1lbnRJbnN0YW5jZUN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNT
aGFyZWRXb3JrZXJDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU3R5bGVTaGVl
dEN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNUcmVlV2Fsa2VyQ3VzdG9tLmNw
cDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5j
cHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToK
KyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJyaWRnZS9xdC9x
dF9pbnN0YW5jZS5jcHA6CisgICAgICAgICogYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwOgorICAg
ICAgICAqIGJyaWRnZS9xdC9xdF9ydW50aW1lLmg6CisKIDIwMTEtMDktMjggIEZhZHkgU2FtdWVs
ICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBTZXBlcmF0ZSBH
VEsgc3BlY2lmaWMgR3lwIHJ1bGVzIGZyb20gWDExIEd5cCBydWxlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgppbmRleCA0NzA0MWIwMDA4NzJlZGMzZWI0NThlZTlmOGM5N2IyMzBjOGVkYTJhLi4yZWUwNDNk
MjEyNTVhMGZjMjk1MGJiOTIyYWFjNGYwNDcyZTRmOWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpA
QCAtODE0LDcgKzgxNCw2IEBAIF9fWk43V2ViQ29yZTZFZGl0b3I2aW5kZW50RXYKIF9fWk43V2Vi
Q29yZTZFZGl0b3I3Q29tbWFuZEMxRXYKIF9fWk43V2ViQ29yZTZFZGl0b3I3Y29tbWFuZEVSS04z
V1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTZFZGl0b3I3b3V0ZGVudEV2Ci1fX1pON1dlYkNvcmU2
SlNOb2RlMjB2aXNpdENoaWxkcmVuVmlydHVhbEVSTjNKU0MxMVNsb3RWaXNpdG9yRQogX19aTjdX
ZWJDb3JlNkpTTm9kZTNwdXRFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElkZW50aWZpZXJFTlMx
XzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pON1dlYkNvcmU2SlNOb2RlNnNf
aW5mb0UKIF9fWk43V2ViQ29yZTZSZWdpb241dW5pdGVFUktTMF8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXR0ckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0F0dHJDdXN0b20uY3BwCmluZGV4IDNiMTA4NmQ1NzRmOTY3NzdkNDI5NGUw
MTlkYTMxODg2OGZhY2FiMjkuLmFjMWFlNjAxZjFmY2IxZjVkZDA1OGFmZTU0MjA4ODcwNWY4NjUw
M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXR0ckN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdHRyQ3VzdG9tLmNwcApAQCAt
MzksMTEgKzM5LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOwogCi12b2lkIEpTQXR0cjo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3Im
IHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9p
ZCBKU0F0dHI6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRv
cikKIHsKICAgICBKU0F0dHIqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0F0dHIqPihjZWxs
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db250ZXh0
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db250ZXh0Q3Vz
dG9tLmNwcAppbmRleCA0ZTZhNDZkMzE1Njc0N2Y2OTcxMmM0YzJmYjUzYTI5YzFhM2JlNTRhLi41
YmZhMzVmMTQ0YWU3MzVkOTE2NGYxODQ3NmNiZmM5Yjc1MGZjZmMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20uY3BwCkBAIC0zOSwx
MSArMzksNiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LXZvaWQgSlNBdWRpb0NvbnRleHQ6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2
aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQg
SlNBdWRpb0NvbnRleHQ6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYg
dmlzaXRvcikKIHsKICAgICBKU0F1ZGlvQ29udGV4dCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0
PEpTQXVkaW9Db250ZXh0Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0NTU1J1bGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDU1NSdWxlQ3VzdG9tLmNwcAppbmRleCA3MWIwNmNlMWQyOTY3ODU4OGM3MDYxNWRiMmUxZjBl
ZjVkOWI2ZGEwLi40ZWNhYTUyZDZjNmU0ZjJmMjM5MzU4NDgzMGQ3ZmU1MWNmNWYyZGQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUN1c3RvbS5jcHAKQEAgLTQ4
LDExICs0OCw2IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotdm9pZCBKU0NTU1J1bGU6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgSlND
U1NSdWxlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3Ip
CiB7CiAgICAgSlNDU1NSdWxlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNDU1NSdWxlKj4o
Y2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxl
RGVjbGFyYXRpb25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NT
dHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAppbmRleCBjZDlhY2VlOGQxODRmMjAzZjlmYjgyN2Zl
MmJlMDAyOGU1NjU2MWNkLi4zM2Q2YWYxNjc0MTQ3NjViYzAzOTQ1MTViNDEwNTM0ODAzNDBiZGVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFy
YXRpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTU3R5
bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAKQEAgLTQzLDExICs0Myw2IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXVEY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBKU0NTU1N0eWxlRGVjbGFyYXRp
b246OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZp
c2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgSlNDU1NTdHlsZURlY2xhcmF0
aW9uOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7
CiAgICAgSlNDU1NTdHlsZURlY2xhcmF0aW9uKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlND
U1NTdHlsZURlY2xhcmF0aW9uKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAppbmRl
eCBkYTYwMjhjMDg2NjYzNTVlMjQyMjA2YzI2MTg2YjI5MzA2ODk2NTdkLi4xOTM3OWFkZTgzMDYx
MzNhMTdkYWI4NTFkMWVlODUyYTlkODgyOWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAK
QEAgLTM5LDExICszOSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotdm9pZCBKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQ6OnZpc2l0Q2hpbGRyZW5WaXJ0
dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlz
aXRvcik7Ci19Ci0KIHZvaWQgSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0Ojp2aXNpdENoaWxkcmVu
KEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgSlNDYW52YXNSZW5k
ZXJpbmdDb250ZXh0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNDYW52YXNSZW5kZXJpbmdD
b250ZXh0Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUds
b2JhbE9iamVjdC5jcHAKaW5kZXggNmY0ZDJhNjkzMDY4Zjc1MzRmYjIwNzY1N2U2ZGQzZDQ2YTM5
ZDA4Yi4uNDVhZGI3YmJkOGY4ODVkNzczYjY5ZDIzYzkxMDBhZDRmMzc0ZjAzMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcApAQCAtNDks
MTUgKzQ5LDE0IEBAIEpTRE9NR2xvYmFsT2JqZWN0OjpKU0RPTUdsb2JhbE9iamVjdChKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0CiB7CiB9CiAKLXZvaWQgSlNET01H
bG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNP
YmplY3QqIHRoaXNWYWx1ZSkKK0pTRE9NR2xvYmFsT2JqZWN0Ojp+SlNET01HbG9iYWxPYmplY3Qo
KQogewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIHRoaXNWYWx1ZSk7Ci0g
ICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIAotdm9pZCBKU0RPTUdsb2JhbE9iamVj
dDo6dmlzaXRDaGlsZHJlblZpcnR1YWwoSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKK3ZvaWQg
SlNET01HbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNPYmplY3QqIHRoaXNWYWx1ZSkKIHsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0
b3IpOworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIHRoaXNWYWx1ZSk7Cisg
ICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIAogdm9pZCBKU0RPTUdsb2JhbE9iamVj
dDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKaW5kZXggOTlh
NjMxZmM5MzY5OGE3OWIyY2I3MGMxNDRlYTJlMTdlZTZhMDljOS4uZTNjMzI4N2FmYzQ1NTU1NDQy
NWQ1MzljYTVjY2NiZGY0NDE3MjU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01HbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUdsb2JhbE9iamVjdC5oCkBAIC00Nyw2ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgc3RydWN0IEpTRE9NR2xvYmFsT2JqZWN0RGF0YTsKIAogICAgICAgICBKU0RP
TUdsb2JhbE9iamVjdChKU0M6OkpTR2xvYmFsRGF0YSYsIEpTQzo6U3RydWN0dXJlKiwgUGFzc1Jl
ZlB0cjxET01XcmFwcGVyV29ybGQ+KTsKKyAgICAgICAgdmlydHVhbCB+SlNET01HbG9iYWxPYmpl
Y3QoKTsKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OkpTR2xvYmFsRGF0YSYsIEpT
Qzo6SlNPYmplY3QqIHRoaXNWYWx1ZSk7CiAKICAgICBwdWJsaWM6CkBAIC02NCw3ICs2NSw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRJbmplY3RlZFNjcmlwdChKU09i
amVjdCopOwogICAgICAgICBKU09iamVjdCogaW5qZWN0ZWRTY3JpcHQoKSBjb25zdDsKIAotICAg
ICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlblZpcnR1YWwoSlNDOjpTbG90VmlzaXRvciYp
OwogICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQzo6SlNDZWxsKiwgSlNDOjpT
bG90VmlzaXRvciYpOwogCiAgICAgICAgIERPTVdyYXBwZXJXb3JsZCogd29ybGQoKSB7IHJldHVy
biBtX3dvcmxkLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggYWRiMDUxZjc2NzhhN2MzMDQ3N2U3NTRhZTdkMjUwZDIx
MTM1YmMzOS4uMDRiNWI5NzY1MjdhNGZkMTk1YjQ1YWIyODQ5NTY0ZWFjODVkMmU2OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAt
NzcsMTEgKzc3LDYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi12b2lkIEpTRE9NV2luZG93Ojp2aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYg
dmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpOwotfQotCiB2b2lk
IEpTRE9NV2luZG93Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCiB7CiAgICAgSlNET01XaW5kb3cqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0RP
TVdpbmRvdyo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dTaGVsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd1NoZWxsLmNwcAppbmRleCBiNzc2YmUzZDM4OTFmZDE1ODY0MzZlN2FmODgyNTJkZGM2YTg1
MGZhLi4xZjJiOWVkZjBhNjBjNTU3OWI3ZjZlY2U2MDgwNmVmMDkxMDIwMDQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcApAQCAtODMsMTEg
KzgzLDYgQEAgdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpzZXRXaW5kb3coUGFzc1JlZlB0cjxET01X
aW5kb3c+IGRvbVdpbmRvdykKIC8vIEpTT2JqZWN0IG1ldGhvZHMKIC8vIC0tLS0KIAotdm9pZCBK
U0RPTVdpbmRvd1NoZWxsOjp2aXNpdENoaWxkcmVuVmlydHVhbChKU0M6OlNsb3RWaXNpdG9yJiB2
aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQg
SlNET01XaW5kb3dTaGVsbDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9y
JiB2aXNpdG9yKQogewogICAgIEpTRE9NV2luZG93U2hlbGwqIHRoaXNPYmplY3QgPSBzdGF0aWNf
Y2FzdDxKU0RPTVdpbmRvd1NoZWxsKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKaW5kZXggZTlhYmMxNTgxMmNmNDY3YTBmMjgyNmY2YTMw
NThjOThlOTNmMDY0MC4uMDEyZDViNzM1YjEyYWM1ZTc0ZDA0MGFkMDlmMzE5ZWUwOGQ1YjY2YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaApAQCAt
NzcsNyArNzcsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQqIG9wZXJhdG9y
IG5ldyhzaXplX3QpOwogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzVmlz
aXRDaGlsZHJlbiB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVj
dHVyZUZsYWdzOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuVmlydHVhbChK
U0M6OlNsb3RWaXNpdG9yJik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlND
OjpKU0NlbGwqLCBKU0M6OlNsb3RWaXNpdG9yJik7CiAgICAgICAgIHZpcnR1YWwgSlNDOjpVU3Ry
aW5nIGNsYXNzTmFtZSgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0phdmFTY3JpcHRBdWRpb05vZGVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNKYXZhU2NyaXB0QXVkaW9Ob2RlQ3VzdG9tLmNwcAppbmRleCAwMDRkOGJl
OWRiNTI5N2EzOGJjYTBkNjEzODBkY2YyNGYxNTdmMzI4Li40YWQ0ZDRkNzY2MmU3MzViZTI3NGQy
ZjM5YTRlM2E0NmY3M2E4MWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0phdmFTY3JpcHRBdWRpb05vZGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSmF2YVNjcmlwdEF1ZGlvTm9kZUN1c3RvbS5jcHAKQEAgLTM0LDExICszNCw2
IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBK
U0phdmFTY3JpcHRBdWRpb05vZGU6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2
aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQg
SlNKYXZhU2NyaXB0QXVkaW9Ob2RlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgSlNKYXZhU2NyaXB0QXVkaW9Ob2RlKiB0aGlzT2JqZWN0
ID0gc3RhdGljX2Nhc3Q8SlNKYXZhU2NyaXB0QXVkaW9Ob2RlKj4oY2VsbCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwCmlu
ZGV4IGZhMTljOWQyMmMwYTZlZDliZmQ3YjNkNmM0N2NkMjRhZjI2ODJjMDYuLjhhMDQ3YTEyMDY5
MTI2OWI1YWMyNzg3ZGNiYmRmODc1NWJkMzNkMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwCkBAIC0zMywxMSArMzMs
NiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQg
SlNNZXNzYWdlQ2hhbm5lbDo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0
b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBKU01l
c3NhZ2VDaGFubmVsOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCiB7CiAgICAgSlNNZXNzYWdlQ2hhbm5lbCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0
PEpTTWVzc2FnZUNoYW5uZWwqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKaW5kZXggOWVlZDczOTAxY2Y3YTc4YmEzN2Mw
NjRiMjAxMDE1MDA1M2MzYWFhOC4uNTFlYmY4OGE5YWM5MjgxYmY3Njk1YTRiNDEwMDE4OGYyOWVl
NzlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9y
dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9y
dEN1c3RvbS5jcHAKQEAgLTQyLDExICs0Miw2IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBKU01lc3NhZ2VQb3J0Ojp2aXNpdENoaWxkcmVuVmly
dHVhbChTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZp
c2l0b3IpOwotfQotCiB2b2lkIEpTTWVzc2FnZVBvcnQ6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBj
ZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU01lc3NhZ2VQb3J0KiB0aGlzT2Jq
ZWN0ID0gc3RhdGljX2Nhc3Q8SlNNZXNzYWdlUG9ydCo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwCmluZGV4IGExMGQ1
MmExOWE3YjM4YjEzNDA2OTRmMjQ1M2ZhZTg0MmQ4ODQ4ZTUuLjQ1YTlhYzA5MjFhZDU1NDViMjNh
MTcyYTEzZjNkZTFjZWIxMzllZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAKQEAgLTM1LDExICszNSw2IEBAIHVzaW5nIG5h
bWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBKU05hbWVkTm9kZU1h
cDo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlz
aXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogYm9vbCBKU05hbWVkTm9kZU1hcDo6Y2Fu
R2V0SXRlbXNGb3JOYW1lKEV4ZWNTdGF0ZSosIE5hbWVkTm9kZU1hcCogaW1wbCwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBpbXBsLT5nZXROYW1lZEl0ZW0o
aWRlbnRpZmllclRvU3RyaW5nKHByb3BlcnR5TmFtZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKaW5kZXggOTcxNTI2NjUwYWM0YmJiMDQ1MTQ1MWZiMjY0
ZTQ0NGZiNTFjNDUxMC4uM2YyZjE1OWMyYjU0MzZkYzI2M2FiZGVmMWM1NWFlOWUzYjdkYTAxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCkBAIC0xOTIs
MTEgKzE5Miw2IEBAIFNjb3BlQ2hhaW5Ob2RlKiBKU05vZGU6OnB1c2hFdmVudEhhbmRsZXJTY29w
ZShFeGVjU3RhdGUqLCBTY29wZUNoYWluTm9kZSogbm9kZSkKICAgICByZXR1cm4gbm9kZTsKIH0K
IAotdm9pZCBKU05vZGU6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9y
KQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgSlNOb2Rl
Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAg
ICAgSlNOb2RlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNOb2RlKj4oY2VsbCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcAppbmRl
eCA1NjA4MWVjMTM1Njk1Y2IwYjA4MjFjMjZjY2Y1MmI3Y2E2NmNiOTRhLi5lOTQwOThiNjg1ZjMy
NTFiNGJhZTA1OTM0NzcxMzY1YzdmYjBhM2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKQEAgLTM2LDExICszNiw2IEBAIHVzaW5n
IG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBKU05vZGVGaWx0
ZXI6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZp
c2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgSlNOb2RlRmlsdGVyOjp2aXNp
dENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgSlNO
b2RlRmlsdGVyKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNOb2RlRmlsdGVyKj4oY2VsbCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVJdGVyYXRvckN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVJdGVyYXRvckN1c3Rv
bS5jcHAKaW5kZXggNzA1NTk0NjJhNTc4ODVkOTY2YjA5NWNhNWYxMzU1ZWIwMDI4MDI1Ni4uODEz
ZTAwMDYzYjBlNzgxNDczZTA1ZTE0MjNiZWMzNWI0N2E5M2YzZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcApAQCAtMjksMTEg
KzI5LDYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12
b2lkIEpTTm9kZUl0ZXJhdG9yOjp2aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYgdmlz
aXRvcikKLXsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpOwotfQotCiB2b2lkIEpT
Tm9kZUl0ZXJhdG9yOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCiB7CiAgICAgSlNOb2RlSXRlcmF0b3IqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxK
U05vZGVJdGVyYXRvcio+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNTVkdFbGVtZW50SW5zdGFuY2VDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNTVkdFbGVtZW50SW5zdGFuY2VDdXN0b20uY3BwCmluZGV4IDg3ZTZiZjYzOWQ5
MGU0M2Q3NDkzNDIyM2FjYmE4ZjAyMDdhMTlkZTcuLmJlYjk5YTg5N2VmMmRkYWE1OGRmMjg2Yzc2
YjJmYmIwYTJhODU2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
U1ZHRWxlbWVudEluc3RhbmNlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1NWR0VsZW1lbnRJbnN0YW5jZUN1c3RvbS5jcHAKQEAgLTM1LDExICszNSw2IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBKU1NWR0VsZW1lbnRJbnN0YW5jZTo6dmlzaXRD
aGlsZHJlblZpcnR1YWwoSlNDOjpTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENo
aWxkcmVuKHRoaXMsIHZpc2l0b3IpOwotfQotCiB2b2lkIEpTU1ZHRWxlbWVudEluc3RhbmNlOjp2
aXNpdENoaWxkcmVuKEpTQzo6SlNDZWxsKiBjZWxsLCBKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9y
KQogewogICAgIEpTU1ZHRWxlbWVudEluc3RhbmNlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8
SlNTVkdFbGVtZW50SW5zdGFuY2UqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTU2hhcmVkV29ya2VyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTU2hhcmVkV29ya2VyQ3VzdG9tLmNwcAppbmRleCA5ZjM5YTE0ZTc1YzNjNTRk
NTEwYTEzM2M3ZjcwYWIyNjhhNzQwMGUwLi40ZDlkMjJkODI4ODZiYmFmZTZjZTE2Y2JkNjhhNDRi
MDgyOTNlYTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NoYXJl
ZFdvcmtlckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFy
ZWRXb3JrZXJDdXN0b20uY3BwCkBAIC00MywxMSArNDMsNiBAQCB1c2luZyBuYW1lc3BhY2UgSlND
OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgSlNTaGFyZWRXb3JrZXI6OnZpc2l0Q2hp
bGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4o
dGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgSlNTaGFyZWRXb3JrZXI6OnZpc2l0Q2hpbGRyZW4o
SlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU1NoYXJlZFdvcmtl
ciogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTU2hhcmVkV29ya2VyKj4oY2VsbCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdHlsZVNoZWV0Q3VzdG9tLmNwcAppbmRl
eCAyZDcyNmFiYjE3ZjhmNGYzNzQ4M2E1YTQwMjNhZTNhMGM2NDgwY2NlLi41ZGVmYmNjMDJhOWE2
MDg4ZTA2NDUzMjBhMzIxNmM2ZjI1OTFlMjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTU3R5bGVTaGVldEN1c3RvbS5jcHAKQEAgLTM1LDExICszNSw2IEBAIHVzaW5n
IG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBKU1N0eWxlU2hl
ZXQ6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZp
c2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgSlNTdHlsZVNoZWV0Ojp2aXNp
dENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgSlNT
dHlsZVNoZWV0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNTdHlsZVNoZWV0Kj4oY2VsbCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RyZWVXYWxrZXJDdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNUcmVlV2Fsa2VyQ3VzdG9tLmNw
cAppbmRleCA5NWVkYzA1YTVhODE2NjdjYzZhMWYwMmViOGEzNzlhNzEyZDExMDE4Li41N2YyM2Iw
ZDFjN2VlZTcxZDk4NmZhNzljYTljZTI2NTQxNGYzZDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1RyZWVXYWxrZXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTVHJlZVdhbGtlckN1c3RvbS5jcHAKQEAgLTI5LDExICsyOSw2IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBKU1Ry
ZWVXYWxrZXI6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewot
ICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgSlNUcmVlV2Fsa2Vy
Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAg
ICAgSlNUcmVlV2Fsa2VyKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNUcmVlV2Fsa2VyKj4o
Y2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dl
YkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggMGU0N2Y1MzIyNDFjZmNmZDQ2NzM5
ZjFmNDM2ZWIzMDk0OGYzOWYzOC4uNTQ4OWI4YTliMzJmMDc2MDY5OGVhMWE5MGY2YjZmYTY3YWFm
Y2M3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcApAQCAtMTkyLDExICsxOTIsNiBAQCBzdGF0
aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgV2ViR0xFeHRlbgogICAgIHJldHVybiBqc051bGwoKTsKIH0KIAotdm9pZCBKU1dl
YkdMUmVuZGVyaW5nQ29udGV4dDo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBK
U1dlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RW
aXNpdG9yJiB2aXNpdG9yKQogewogICAgIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0KiB0aGlzT2Jq
ZWN0ID0gc3RhdGljX2Nhc3Q8SlNXZWJHTFJlbmRlcmluZ0NvbnRleHQqPihjZWxsKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3Bw
CmluZGV4IGY5MDA0OTYwYjQ1ZGY0YjFiZjViZmIwMjk2Mzg4M2M3MWIzYjQwNTQuLjY3ZjJlOTli
YTY0MGUzYzY2NTNhN2ZkYmQ2ODY3Nzk1ZWNmM2E3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcApAQCAtNTMsMTEgKzUz
LDYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lk
IEpTV29ya2VyQ29udGV4dDo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0
b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBKU1dv
cmtlckNvbnRleHQ6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlz
aXRvcikKIHsKICAgICBKU1dvcmtlckNvbnRleHQqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxK
U1dvcmtlckNvbnRleHQqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKaW5kZXggNjA5MTM4MzYxNjg1YTU5YjU1
MTBhYTU1ZDE0MWEyYjI0OTUyYTliOS4uNjJmNjE2OTk4YThlNzhmY2U4MGI4ZGUwMjg0ZDA3MTg4
ZWMyNjAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRw
UmVxdWVzdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxI
dHRwUmVxdWVzdEN1c3RvbS5jcHAKQEAgLTU0LDExICs1NCw2IEBAIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBKU1hNTEh0dHBSZXF1ZXN0Ojp2aXNp
dENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxk
cmVuKHRoaXMsIHZpc2l0b3IpOwotfQotCiB2b2lkIEpTWE1MSHR0cFJlcXVlc3Q6OnZpc2l0Q2hp
bGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU1hNTEh0
dHBSZXF1ZXN0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNYTUxIdHRwUmVxdWVzdCo+KGNl
bGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYUGF0aFJlc3Vs
dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3Vz
dG9tLmNwcAppbmRleCAwOTk0MmY1ZWVkMDRmZDNiMWNmZmQxMzVkMmIxODI3OWExYTcwNmFlLi4y
MzQxYjQzYmRmYzk5NmQzYmRkYmZiZWVkYjEzYWZlYTBkMWY2MmFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hQYXRoUmVzdWx0Q3VzdG9tLmNwcApAQCAtMzcsMTEg
KzM3LDYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12
b2lkIEpTWFBhdGhSZXN1bHQ6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgSlNY
UGF0aFJlc3VsdDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQogewogICAgIEpTWFBhdGhSZXN1bHQqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1hQ
YXRoUmVzdWx0Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDY4NGYyMzc3OTRlZGI4YTRlNDBiNDhiMmEwMzA1
YWNlZTNiN2NmNDguLjBhZTdlMmM0Zjc0ZjNlZDVmMThhNDEwYTI0NmQ1NDdhZGY2YWY1NjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCkBAIC04NzgsNyArODc4LDYgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICAjIHZpc2l0
IGZ1bmN0aW9uCiAgICAgaWYgKCRuZWVkc01hcmtDaGlsZHJlbikgewotICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuVmlydHVhbChKU0M6
OlNsb3RWaXNpdG9yJik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBz
dGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIEpTQzo6U2xvdFZpc2l0b3ImKTtcblxu
Iik7CiAgICAgICAgICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpPdmVycmlkZXNWaXNpdENoaWxkcmVu
In0gPSAxOwogICAgIH0KQEAgLTIyMDIsMTEgKzIyMDEsNiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpZiAoJG5lZWRzTWFya0NoaWxk
cmVuICYmICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21NYXJrRnVuY3Rp
b24ifSkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1l
fTo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpXG4iKTsKLSAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpO1xuIik7Ci0gICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7Ci0KICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxs
LCBTbG90VmlzaXRvciYgdmlzaXRvcilcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NO
YW1lfSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PCR7Y2xhc3NOYW1lfSo+KGNlbGwpO1xuIik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcAppbmRleCA3ZGU5OGU4ZDQ1
ZDEzYzllNTE3NTkwNjY0NDQxNTBhOTlhZjU5ODQ4Li4wZDYxYTYwMjI5MDJiMGNjNmY1NjQ5MDIy
NmU2NDkwNTllYTMzYmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRf
aW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9pbnN0YW5jZS5j
cHAKQEAgLTYyLDExICs2Miw2IEBAIHB1YmxpYzoKICAgICAKICAgICBzdGF0aWMgY29uc3QgQ2xh
c3NJbmZvIHNfaW5mbzsKIAotICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuVmlydHVhbChT
bG90VmlzaXRvciYgdmlzaXRvcikKLSAgICB7Ci0gICAgICAgIHZpc2l0Q2hpbGRyZW4odGhpcywg
dmlzaXRvcik7Ci0gICAgfQotCiAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwq
IGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIHsKICAgICAgICAgUXRSdW50aW1lT2Jq
ZWN0KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UXRSdW50aW1lT2JqZWN0Kj4oY2VsbCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKaW5kZXggNjdmY2NlYmMxNmVmZTJm
N2IyMjQyYWMyNDA3ZGQxNjVjMTU4YmYyYS4uNTU1N2IxMzY4MjVmMDUzZTM2NzYyNjA0NWFjMzZj
YzhhYTg4YzJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRp
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcApAQCAt
MTQzOSwxMSArMTQzOSw2IEBAIHZvaWQgUXRSdW50aW1lTWV0YU1ldGhvZDo6ZmluaXNoQ3JlYXRp
b24oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVuCiAgICAgZC0+bV9hbGxv
d1ByaXZhdGUgPSBhbGxvd1ByaXZhdGU7CiB9CiAKLXZvaWQgUXRSdW50aW1lTWV0YU1ldGhvZDo6
dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRD
aGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBRdFJ1bnRpbWVNZXRhTWV0aG9kOjp2
aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAg
UXRSdW50aW1lTWV0YU1ldGhvZCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PFF0UnVudGltZU1l
dGFNZXRob2QqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9x
dF9ydW50aW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oCmluZGV4
IDgzZTVhNmM5NTI5MGQzMTkwMjU0NzdjOWU0NTE3MTY5N2U3MTdmODEuLjlhMjc2MjllNmRmY2I1
YTA2OTM1OGRhZjI4OWMzYWI5MDE1YjQ0MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9xdC9xdF9ydW50aW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1
bnRpbWUuaApAQCAtMTY4LDcgKzE2OCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhF
eGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9kZSBtb2RlID0gRXhj
bHVkZURvbnRFbnVtUHJvcGVydGllcyk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJl
blZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpT
Q2VsbCosIFNsb3RWaXNpdG9yJik7CiAKIHByb3RlY3RlZDoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109091</attachid>
            <date>2011-09-28 16:52:26 -0700</date>
            <delta_ts>2011-09-29 12:36:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68839-20110928165227.patch</filename>
            <type>text/plain</type>
            <size>64457</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYyMzcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0NhbGxiYWNrT2JqZWN0LmgKaW5kZXggN2NkNDgzY2FlYjhlNTdmZmNmM2UzNTNlMDQxMmU2ZTUw
NjRkZTI2MC4uZmViN2Q5N2M5ZTQwZjdkMzE1NDNlMDczMGIyMzE5MzAwZWQxZTA1NyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE5NywxMSAr
MTk3LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhVmlydHVh
bChDYWxsRGF0YSYpOwogICAgIHN0YXRpYyBDYWxsVHlwZSBnZXRDYWxsRGF0YShKU0NlbGwqLCBD
YWxsRGF0YSYpOwogCi0gICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RW
aXNpdG9yJiB2aXNpdG9yKQotICAgIHsKLSAgICAgICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNp
dG9yKTsKLSAgICB9Ci0KICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2Vs
bCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgewogICAgICAgICBKU0NhbGxiYWNrT2JqZWN0
KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNDYWxsYmFja09iamVjdCo+KGNlbGwpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNTNkZGM3YmVkNzdlNDRlZTZiNjRkMzM1NTQ2NzY0ZGNk
MDM0OTkzMC4uOGNjMjcxY2QxMWE4MjY3ZTJhM2ZlOWM3NGQyOGQxNjljYzVlNzdjMyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODIgQEAKKzIwMTEtMDktMjggIE1hcmsgSGFo
bmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBEZS12aXJ0dWFsaXpl
IEpTQ2VsbDo6dmlzaXRDaGlsZHJlblZpcnR1YWwgYW5kIHJlbW92ZSBhbGwgb3RoZXIgdmlzaXRD
aGlsZHJlblZpcnR1YWwgbWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njg4MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW1vdmVkIHRoZSByZW1haW5pbmcgdmlzaXRDaGlsZHJlblZpcnR1YWwg
bWV0aG9kcy4gIFRoaXMgcGF0Y2ggY29tcGxldGVzIHRoZSBwcm9jZXNzIG9mIAorICAgICAgICBk
ZS12aXJ0dWFsaXppbmcgdmlzaXRDaGlsZHJlbi4KKworICAgICAgICAqIEFQSS9KU0NhbGxiYWNr
T2JqZWN0Lmg6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAqIEphdmFT
Y3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWY6CisgICAg
ICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcDoKKyAgICAgICAgKiBkZWJ1Z2dl
ci9EZWJ1Z2dlckFjdGl2YXRpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5jcHA6
CisgICAgICAgICogcnVudGltZS9Bcmd1bWVudHMuaDoKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1
dGFibGUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5oOgorICAgICAgICAqIHJ1
bnRpbWUvR2V0dGVyU2V0dGVyLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0dldHRlclNldHRlci5o
OgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L0pTQWN0aXZhdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheS5jcHA6CisgICAgICAg
ICogcnVudGltZS9KU0FycmF5Lmg6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmNwcDoK
KyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAg
ICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9KU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKiBydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0
b3IuaDoKKyAgICAgICAgKiBydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNW
YWx1ZS5oOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgICogcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVu
dGltZS9SZWdFeHBPYmplY3QuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwT2JqZWN0Lmg6
CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvU3Ry
dWN0dXJlLmg6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5jcHA6CisgICAgICAg
ICogcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5oOgorCisgICAgICAgIElubGluZWQgdGhlIG1ldGhv
ZCB0YWJsZSBhY2Nlc3MgYW5kIGNhbGwgdG8gdGhlIHZpc2l0Q2hpbGRyZW4gZnVuY3Rpb24gKHRo
ZSBvbmx5IGNhbGwgc2l0ZXMgCisgICAgICAgIHRvIHZpc2l0Q2hpbGRyZW4gYXJlIGhlcmUpLgor
ICAgICAgICAqIGhlYXAvTWFya1N0YWNrLmNwcDoKKyAgICAgICAgKEpTQzo6U2xvdFZpc2l0b3I6
OnZpc2l0Q2hpbGRyZW4pOgorCisgICAgICAgIENoYW5nZWQgdGhlIGZpZWxkIG5hbWUgZm9yIHRo
ZSB2aXNpdENoaWxkcmVuIGZ1bmN0aW9uIHBvaW50ZXIgdG8gdmlzaXRDaGlsZHJlbiAoZnJvbSAK
KyAgICAgICAgdmlzaXRDaGlsZHJlbkZ1bmN0aW9uUHRyKSB0byBtYWtlIGNhbGwgc2l0ZXMgbGVz
cyB2ZXJib3NlLgorICAgICAgICAqIHJ1bnRpbWUvQ2xhc3NJbmZvLmg6CisKKyAgICAgICAgRGlz
Y292ZXJlZCBKU0JvdW5kRnVuY3Rpb24gZG9lc24ndCBoYXZlIGl0cyBvd24gQ2xhc3NJbmZvIChp
dCB1c2VkIEpTRnVuY3Rpb24ncyBDbGFzc0luZm8pIGJ1dCAKKyAgICAgICAgb3ZlcnJpZGVzIHZp
c2l0Q2hpbGRyZW4sIHNvIGl0IG5lZWRzIHRvIGhhdmUgaXRzIG93biBDbGFzc0luZm8uCisgICAg
ICAgICogcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNC
b3VuZEZ1bmN0aW9uLmg6CisKKyAgICAgICAgSGFkIHRvIG1vdmUgY2xhc3NOYW1lIHVwIHRvIG1h
a2Ugc3VyZSB0aGF0IHRoZSB2aXJ0dWFsIGRlc3RydWN0b3IgaW4gSlNPYmplY3Qgd2Fzbid0IAor
ICAgICAgICB0aGUgZmlyc3Qgbm9uLWlubGluZSB2aXJ0dWFsIG1ldGhvZCBpbiBKU09iamVjdCAo
YXMgcGVyIHRoZSBjb21tZW50IGluIHRoZSBmaWxlKS4KKyAgICAgICAgQWxzbyBtb3ZlZCBKU0Nl
bGw6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsIGludG8gSlNPYmplY3QuaCBpbiBvcmRlciBmb3IgaXQg
YmUgaW5saW5lLWFibGUKKyAgICAgICAgdG8gbWl0aWdhdGUgdGhlIGNvc3Qgb2YgYW4gZXh0cmEg
bWV0aG9kIGNhbGwuCisKKyAgICAgICAgQWxzbyBhZGRlZCBhIGNvbnZlbmllbmNlIGFjY2Vzc29y
IGZ1bmN0aW9uIG1ldGhvZFRhYmxlKCkgdG8gSlNDZWxsIHRvIHJldHVybiB0aGUgTWV0aG9kVGFi
bGUgdG8gbWFrZSAKKyAgICAgICAgY2FsbCBzaXRlcyBtb3JlIGNvbmNpc2UuICBJbXBsZW1lbnRh
dGlvbiBpcyBpbmxpbmUgaW4gSlNPYmplY3QuaC4KKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0
Lmg6CisgICAgICAgIChKU0M6OkpTQ2VsbDo6bWV0aG9kVGFibGUpOgorICAgICAgICAqIHJ1bnRp
bWUvSlNDZWxsLmg6CisKKyAgICAgICAgQWRkZWQgYW4gb3V0IG9mIGxpbmUgdmlydHVhbCBkZXN0
cnVjdG9yIHRvIEpTV3JhcHBlck9iamVjdCBhbmQgU2NvcGVDaGFpbk5vZGUgdG8gCisgICAgICAg
IGFwcGVhc2UgdGhlIHZ0YWJsZSBnb2RzLiAgSXQgcmVmdXNlZCB0byBjb21waWxlIGlmIHRoZXJl
IHdlcmUgbm8gdmlydHVhbCBtZXRob2RzIGluIAorICAgICAgICBib3RoIG9mIHRoZXNlIGNsYXNz
ZXMgZHVlIHRvIHRoZSBwcmVzZW5jZSBvZiBhIHdlYWsgdnRhYmxlIHBvaW50ZXIuCisgICAgICAg
ICogcnVudGltZS9KU1dyYXBwZXJPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU1dyYXBwZXJP
YmplY3Q6On5KU1dyYXBwZXJPYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNXcmFwcGVyT2Jq
ZWN0Lmg6CisgICAgICAgICogcnVudGltZS9TY29wZUNoYWluLmNwcDoKKyAgICAgICAgKEpTQzo6
U2NvcGVDaGFpbk5vZGU6On5TY29wZUNoYWluTm9kZSk6CisgICAgICAgICogcnVudGltZS9TY29w
ZUNoYWluLmg6CisKIDIwMTEtMDktMjggIFl1cWlhbmcgWGlhbiAgPHl1cWlhbmcueGlhbkBpbnRl
bC5jb20+CiAKICAgICAgICAgV3JvbmcgaW50ZWdlciBjaGVja3MgaW4gSlNWQUxVRTMyXzY0IERG
RyBKSVQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5l
eHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCmluZGV4IGVjMjkx
YzVmODFlNzhkMGQ4YjA5NTQ4MTdiYjcxZDVhMzBmM2ZlMmIuLmY4MjI5ODgxYWZmZTkzMGE4NjQ5
MTQ5NTQyMGUzMTU4MzhiOTI3N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5leHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmV4cApAQCAtMTY2LDcgKzE2Niw2IEBAIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDEzdmlz
aXRDaGlsZHJlbkVQTlNfNkpTQ2VsbEVSTlNfMTFTbG90VmlzaXRvckUKIF9fWk4zSlNDMTRKU0ds
b2JhbE9iamVjdDE2YWRkU3RhdGljR2xvYmFsc0VQTlMwXzE4R2xvYmFsUHJvcGVydHlJbmZvRWkK
IF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDE3cHV0V2l0aEF0dHJpYnV0ZXNFUE5TXzlFeGVjU3Rh
dGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFagogX19aTjNKU0MxNEpTR2xvYmFsT2Jq
ZWN0MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJF
Uk5TXzEyUHJvcGVydHlTbG90RQotX19aTjNKU0MxNEpTR2xvYmFsT2JqZWN0MjB2aXNpdENoaWxk
cmVuVmlydHVhbEVSTlNfMTFTbG90VmlzaXRvckUKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDI0
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVy
RVJOU18xOFByb3BlcnR5RGVzY3JpcHRvckUKIF9fWk4zSlNDMTRKU0dsb2JhbE9iamVjdDNwdXRF
UE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNfN0pTVmFsdWVFUk5TXzE1UHV0UHJv
cGVydHlTbG90RSAgCiBfX1pOM0pTQzE0SlNHbG9iYWxPYmplY3Q0aW5pdEVQTlNfOEpTT2JqZWN0
RQpAQCAtMjc3LDcgKzI3Niw2IEBAIF9fWk4zSlNDN0pTQXJyYXkxNGZpbmlzaENyZWF0aW9uRVJO
U18xMkpTR2xvYmFsRGF0YUUKIF9fWk4zSlNDN0pTQXJyYXkxNGZpbmlzaENyZWF0aW9uRVJOU18x
MkpTR2xvYmFsRGF0YUVSS05TXzdBcmdMaXN0RQogX19aTjNKU0M3SlNBcnJheTE1c2V0U3ViY2xh
c3NEYXRhRVB2CiBfX1pOM0pTQzdKU0FycmF5MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVj
U3RhdGVFalJOU18xMlByb3BlcnR5U2xvdEUKLV9fWk4zSlNDN0pTQXJyYXkyMHZpc2l0Q2hpbGRy
ZW5WaXJ0dWFsRVJOU18xMVNsb3RWaXNpdG9yRQogX19aTjNKU0M3SlNBcnJheTZzX2luZm9FCiBf
X1pOM0pTQzdKU0FycmF5OXNldExlbmd0aEVqCiBfX1pOM0pTQzdKU0FycmF5QzFFUk5TXzEySlNH
bG9iYWxEYXRhRVBOU185U3RydWN0dXJlRQpAQCAtMzIxLDcgKzMxOSw2IEBAIF9fWk4zSlNDOEpT
T2JqZWN0MTdwdXRXaXRoQXR0cmlidXRlc0VQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmll
ckVOU183SlNWYWx1CiBfX1pOM0pTQzhKU09iamVjdDE3cHV0V2l0aEF0dHJpYnV0ZXNFUE5TXzlF
eGVjU3RhdGVFak5TXzdKU1ZhbHVlRWoKIF9fWk4zSlNDOEpTT2JqZWN0MThnZXRPd25Qcm9wZXJ0
eVNsb3RFUE5TXzlFeGVjU3RhdGVFalJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDOEpTT2Jq
ZWN0MTlnZXRPd25Qcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFt
ZUFycmF5RU5TXzE1RW51bWVyYXRpb25Nb2RlRQotX19aTjNKU0M4SlNPYmplY3QyMHZpc2l0Q2hp
bGRyZW5WaXJ0dWFsRVJOU18xMVNsb3RWaXNpdG9yRQogX19aTjNKU0M4SlNPYmplY3QyMWdldFBy
b3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQ
cm9wZXJ0eURlc2NyaXB0b3JFCiBfX1pOM0pTQzhKU09iamVjdDIyZmlsbEdldHRlclByb3BlcnR5
U2xvdEVSTlNfMTJQcm9wZXJ0eVNsb3RFUE5TXzE2V3JpdGVCYXJyaWVyQmFzZUlOU183VW5rbm93
bkVFRQogX19aTjNKU0M4SlNPYmplY3QyM2FsbG9jYXRlUHJvcGVydHlTdG9yYWdlRVJOU18xMkpT
R2xvYmFsRGF0YUVtbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLmRlZgppbmRleCBhMzM1NWMzZTgzMzg2ZjFiMTFkOTdiMjA4MTg1ZmVlMGE4Mzk1
ZDRlLi44NjcyNTliNzRhYThjYWE5NzZjODc3ODU4ODU4NTcxNDYwNGE4OWM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmRlZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMzMs
NiArMzMsNyBAQCBFWFBPUlRTCiAgICAgPz8xSlNHbG9iYWxPYmplY3RASlNDQEBVQUVAWFoKICAg
ICA/PzFNdXRleEBXVEZAQFFBRUBYWgogICAgID8/MVJlZkNvdW50ZWRMZWFrQ291bnRlckBXVEZA
QFFBRUBYWgorICAgID8/MVNjb3BlQ2hhaW5Ob2RlQEpTQ0BARUFFQFhaCiAgICAgPz8xU291cmNl
UHJvdmlkZXJDYWNoZUBKU0NAQFFBRUBYWgogICAgID8/MVRocmVhZENvbmRpdGlvbkBXVEZAQFFB
RUBYWgogICAgID8/MVdURlRocmVhZERhdGFAV1RGQEBRQUVAWFoKQEAgLTM3Miw5ICszNzMsNiBA
QCBFWFBPUlRTCiAgICAgP3Z0YWJsZUFuY2hvckBJbnRlcm5hbEZ1bmN0aW9uQEpTQ0BARUFFWFha
CiAgICAgP3Zpc2l0Q2hpbGRyZW5ASlNHbG9iYWxPYmplY3RASlNDQEBTQVhQQVZKU0NlbGxAMkBB
QVZTbG90VmlzaXRvckAyQEBaCiAgICAgP3Zpc2l0Q2hpbGRyZW5ASlNPYmplY3RASlNDQEBTQVhQ
QVZKU0NlbGxAMkBBQVZTbG90VmlzaXRvckAyQEBaCi0gICAgP3Zpc2l0Q2hpbGRyZW5WaXJ0dWFs
QEpTR2xvYmFsT2JqZWN0QEpTQ0BAVUFFWEFBVlNsb3RWaXNpdG9yQDJAQFoKLSAgICA/dmlzaXRD
aGlsZHJlblZpcnR1YWxASlNPYmplY3RASlNDQEBVQUVYQUFWU2xvdFZpc2l0b3JAMkBAWgotICAg
ID92aXNpdENoaWxkcmVuVmlydHVhbEBTY29wZUNoYWluTm9kZUBKU0NAQFVBRVhBQVZTbG90Vmlz
aXRvckAyQEBaCiAgICAgP3dhaXRAVGhyZWFkQ29uZGl0aW9uQFdURkBAUUFFWEFBVk11dGV4QDJA
QFoKICAgICA/d2FpdEZvclRocmVhZENvbXBsZXRpb25AV1RGQEBZQUhJUEFQQVhAWgogICAgID93
cml0YWJsZUBQcm9wZXJ0eURlc2NyaXB0b3JASlNDQEBRQkVfTlhaCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCmluZGV4IGVm
OTdiMGZjNTliNDQ1ZmU4MzQ4ZDNkZjQ5MDJlMGRkZTJiZDRjNWIuLmQ3Yjg2NmQyNjgwMGFjODZj
YzFlMzZiOTNmYTE0OGIwZDc2NTk4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCkBAIC00MywxMSArNDMsNiBAQCB2
b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU09iamVjdCogYWN0aQogICAgIG1fYWN0aXZhdGlvbi5zZXQoZ2xvYmFsRGF0YSwg
dGhpcywgc3RhdGljX2Nhc3Q8SlNBY3RpdmF0aW9uKj4oYWN0aXZhdGlvbikpOwogfQogCi12b2lk
IERlYnVnZ2VyQWN0aXZhdGlvbjo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBE
ZWJ1Z2dlckFjdGl2YXRpb246OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRv
ciYgdmlzaXRvcikKIHsKICAgICBEZWJ1Z2dlckFjdGl2YXRpb24qIHRoaXNPYmplY3QgPSBzdGF0
aWNfY2FzdDxEZWJ1Z2dlckFjdGl2YXRpb24qPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAppbmRleCBiMGMyMGMyY2M5
MzlmZDliYzE3NGQ4NTI3ZjgwZDc4MGZhYTI2N2E2Li45NzExMGIyZjg4OTNlMDllZjRlMzQ1ODUz
YWMyZDdhYTA5MWQyMGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdn
ZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVn
Z2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCkBAIC00MSw3ICs0MSw2IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICAgICAgcmV0dXJuIGFjdGl2YXRpb247CiAgICAgICAgIH0KIAotICAgICAgICB2
aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKICAgICAgICAg
c3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogICAgICAg
ICB2aXJ0dWFsIFVTdHJpbmcgY2xhc3NOYW1lKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL01hcmtTdGFjay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrU3Rh
Y2suY3BwCmluZGV4IGMzOWM1N2ZjNGRkZDMwMjYzYzcwNzE1NDBlNTA4ZGNhYTEwZDhmY2MuLmU1
MzljNDFkOTNmMDI0ZWZkNjFkNmU0YjBjYTIxMmRhNzE3Y2U0M2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtTdGFjay5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvTWFya1N0YWNrLmNwcApAQCAtNzAsNyArNzAsNyBAQCBpbmxpbmUgdm9pZCBT
bG90VmlzaXRvcjo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwpCiAjZWxzZQogICAgICAgICBB
U1NFUlQoIW1faXNDaGVja2luZ0ZvckRlZmF1bHRNYXJrVmlvbGF0aW9uKTsKICAgICAgICAgbV9p
c0NoZWNraW5nRm9yRGVmYXVsdE1hcmtWaW9sYXRpb24gPSB0cnVlOwotICAgICAgICBjZWxsLT52
aXNpdENoaWxkcmVuVmlydHVhbCgqdGhpcyk7CisgICAgICAgIGNlbGwtPm1ldGhvZFRhYmxlKCkt
PnZpc2l0Q2hpbGRyZW4oY2VsbCwgKnRoaXMpOwogICAgICAgICBBU1NFUlQobV9pc0NoZWNraW5n
Rm9yRGVmYXVsdE1hcmtWaW9sYXRpb24pOwogICAgICAgICBtX2lzQ2hlY2tpbmdGb3JEZWZhdWx0
TWFya1Zpb2xhdGlvbiA9IGZhbHNlOwogI2VuZGlmCkBAIC04MCw3ICs4MCw3IEBAIGlubGluZSB2
b2lkIFNsb3RWaXNpdG9yOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCkKICAgICAgICAgYXNB
cnJheShjZWxsKS0+dmlzaXRDaGlsZHJlbkRpcmVjdCgqdGhpcyk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9Ci0gICAgY2VsbC0+dmlzaXRDaGlsZHJlblZpcnR1YWwoKnRoaXMpOworICAgIGNlbGwt
Pm1ldGhvZFRhYmxlKCktPnZpc2l0Q2hpbGRyZW4oY2VsbCwgKnRoaXMpOwogfQogCiB2b2lkIFNs
b3RWaXNpdG9yOjpkcmFpbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Bcmd1bWVudHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1l
bnRzLmNwcAppbmRleCA2MmY0ODVkOTA2Y2FjMDYwMTcwZDg3NGNhMzI3NzhiOTgzMzdiMGQ2Li5m
NTNiOWJkY2I2Yjg4MTI4YTYxM2NhNWRlNTMzYzg1NmZjZGFiNDNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKQEAgLTQzLDExICs0Myw2IEBAIEFyZ3Vt
ZW50czo6fkFyZ3VtZW50cygpCiAgICAgICAgIGRlbGV0ZSBbXSBkLT5leHRyYUFyZ3VtZW50czsK
IH0KIAotdm9pZCBBcmd1bWVudHM6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2
aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQg
QXJndW1lbnRzOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0
b3IpCiB7CiAgICAgQXJndW1lbnRzKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8QXJndW1lbnRz
Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1
bWVudHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCmluZGV4
IDVlMjMwNzQ2ZGMzY2NlMTNiMzBmNTE2YWQ1MjI2NzliNWFmOTk5NWMuLmZlOTkwYjQ0NzNlNGE5
ODAxMjhiOTNjY2JkOTU1ZjkyNjA2YmU3NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FyZ3VtZW50cy5oCkBAIC05MCw3ICs5MCw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAg
ICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgICAgIHZpcnR1YWwgdm9p
ZCB2aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYpOwogICAgICAgICBzdGF0aWMgdm9p
ZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAKICAgICAgICAgdm9pZCBm
aWxsQXJnTGlzdChFeGVjU3RhdGUqLCBNYXJrZWRBcmd1bWVudEJ1ZmZlciYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xhc3NJbmZvLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9DbGFzc0luZm8uaAppbmRleCAwMDdhYTVjNzdiNjRlMTFmZTJh
MzZkODIyYjk1ZmExODYxYTliNTBlLi45MTNlYmI3MzVkZWZkMjdiZDE1YzlkZDllMjBkMmQ3MGYz
ZjdjMDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbGFzc0lu
Zm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DbGFzc0luZm8uaApAQCAt
MzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgIHN0cnVjdCBNZXRob2RUYWJsZSB7
CiAgICAgICAgIHR5cGVkZWYgdm9pZCAoKlZpc2l0Q2hpbGRyZW5GdW5jdGlvblB0cikoSlNDZWxs
KiwgU2xvdFZpc2l0b3ImKTsKLSAgICAgICAgVmlzaXRDaGlsZHJlbkZ1bmN0aW9uUHRyIHZpc2l0
Q2hpbGRyZW5GdW5jdGlvblB0cjsKKyAgICAgICAgVmlzaXRDaGlsZHJlbkZ1bmN0aW9uUHRyIHZp
c2l0Q2hpbGRyZW47CiAgICAgfTsKIAogI2RlZmluZSBDUkVBVEVfTUVUSE9EX1RBQkxFKENsYXNz
TmFtZSkgeyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVj
dXRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3Bw
CmluZGV4IDc4MWI5MzRkY2EzZmJmZDJmMTIxODJiMGQxNjY0Zjg1YzgwMmMzOWMuLjNiYmFlMWIz
ODAxODk3ZDVlNDJkNWZhYmRiOWEwOTYyZDM1OTQyM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCkBAIC0yMzQsMTEgKzIzNCw2IEBAIHZvaWQgRXZh
bEV4ZWN1dGFibGU6OmpldHRpc29uT3B0aW1pemVkQ29kZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEpCiB9CiAjZW5kaWYKIAotdm9pZCBFdmFsRXhlY3V0YWJsZTo6dmlzaXRDaGlsZHJlblZpcnR1
YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNp
dG9yKTsKLX0KLQogdm9pZCBFdmFsRXhlY3V0YWJsZTo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNl
bGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEV2YWxFeGVjdXRhYmxlKiB0aGlzT2Jq
ZWN0ID0gc3RhdGljX2Nhc3Q8RXZhbEV4ZWN1dGFibGUqPihjZWxsKTsKQEAgLTM3OCwxMSArMzcz
LDYgQEAgdm9pZCBQcm9ncmFtRXhlY3V0YWJsZTo6dW5saW5rQ2FsbHMoKQogI2VuZGlmCiB9CiAK
LXZvaWQgUHJvZ3JhbUV4ZWN1dGFibGU6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9y
JiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZv
aWQgUHJvZ3JhbUV4ZWN1dGFibGU6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90Vmlz
aXRvciYgdmlzaXRvcikKIHsKICAgICBQcm9ncmFtRXhlY3V0YWJsZSogdGhpc09iamVjdCA9IHN0
YXRpY19jYXN0PFByb2dyYW1FeGVjdXRhYmxlKj4oY2VsbCk7CkBAIC01OTYsMTEgKzU4Niw2IEBA
IHZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlOjpqZXR0aXNvbk9wdGltaXplZENvZGVGb3JDb25zdHJ1
Y3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxECiB9CiAjZW5kaWYKIAotdm9pZCBGdW5jdGlvbkV4ZWN1
dGFibGU6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAg
IHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgRnVuY3Rpb25FeGVjdXRh
YmxlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7
CiAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8RnVuY3Rp
b25FeGVjdXRhYmxlKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVj
dXRhYmxlLmgKaW5kZXggMTUzMDhiZjY3ODBiMzFmMTFhM2Y1ZTU2NWQ2YjJjNTAyZDJmYTY5Ny4u
MjQ1NzcyOWViNjg4NDdjM2QzZTZiOGU1MGZlZDZhYThmYTYyMzkzMSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaApAQCAtMzU2LDcgKzM1Niw2IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICBFdmFsRXhlY3V0YWJsZShFeGVjU3RhdGUqLCBjb25zdCBTb3Vy
Y2VDb2RlJiwgYm9vbCk7CiAKICAgICAgICAgSlNPYmplY3QqIGNvbXBpbGVJbnRlcm5hbChFeGVj
U3RhdGUqLCBTY29wZUNoYWluTm9kZSosIEpJVENvZGU6OkpJVFR5cGUpOwotICAgICAgICB2aXJ0
dWFsIHZvaWQgdmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKICAgICAgICAgc3Rh
dGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogICAgICAgICB2
b2lkIHVubGlua0NhbGxzKCk7CiAKQEAgLTQyMiw3ICs0MjEsNiBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgUHJvZ3JhbUV4ZWN1dGFibGUoRXhlY1N0YXRlKiwgY29uc3QgU291cmNlQ29kZSYp
OwogCiAgICAgICAgIEpTT2JqZWN0KiBjb21waWxlSW50ZXJuYWwoRXhlY1N0YXRlKiwgU2NvcGVD
aGFpbk5vZGUqLCBKSVRDb2RlOjpKSVRUeXBlKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0
Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0
Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKICAgICAgICAgdm9pZCB1bmxpbmtDYWxs
cygpOwogCkBAIC01ODIsNyArNTgwLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFNoYXJl
ZFN5bWJvbFRhYmxlKiBzeW1ib2xUYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3ltYm9sVGFibGU7
IH0KIAogICAgICAgICB2b2lkIGRpc2NhcmRDb2RlKCk7Ci0gICAgICAgIHZvaWQgdmlzaXRDaGls
ZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGls
ZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogICAgICAgICBzdGF0aWMgRnVuY3Rpb25FeGVj
dXRhYmxlKiBmcm9tR2xvYmFsQ29kZShjb25zdCBJZGVudGlmaWVyJiwgRXhlY1N0YXRlKiwgRGVi
dWdnZXIqLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNPYmplY3QqKiBleGNlcHRpb24pOwogICAgICAg
ICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0dGVyLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dldHRlclNldHRlci5jcHAKaW5kZXggZDBhNTc4
YWU0ZjhmY2IwZWFhODdkNGI5NWI3OTc0ZTljMzM0N2RmOS4uYmVmOTg3ZjZhNzcxNmNhNmM5YjFj
ZDBlMzYxN2NlYmQyMTMxYjI0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvR2V0dGVyU2V0dGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9HZXR0ZXJTZXR0ZXIuY3BwCkBAIC0zMCwxMSArMzAsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
Y29uc3QgQ2xhc3NJbmZvIEdldHRlclNldHRlcjo6c19pbmZvID0geyAiR2V0dGVyU2V0dGVyIiwg
MCwgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShHZXR0ZXJTZXR0ZXIpIH07CiAKLXZvaWQgR2V0
dGVyU2V0dGVyOjp2aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYgdmlzaXRvcikKLXsK
LSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpOwotfQotCiB2b2lkIEdldHRlclNldHRl
cjo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewog
ICAgIEdldHRlclNldHRlciogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEdldHRlclNldHRlcio+
KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVy
U2V0dGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaApp
bmRleCBhMzEyZjczMGRkMzVmYzBiZWVjMzhkMzcwNzEyNWMzMDMyMWFhYzM4Li5kNWFhYjgxYzE5
N2E2YWEwM2JhZGE4MTM5ODQ3NTc1MTIwZDA3ZTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaApAQCAtNTMsNyArNTMsNiBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgICAgIHJldHVybiBnZXR0ZXJTZXR0ZXI7CiAgICAgICAgIH0KIAotICAgICAg
ICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKICAgICAg
ICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCiAg
ICAgICAgIEpTT2JqZWN0KiBnZXR0ZXIoKSBjb25zdCB7IHJldHVybiBtX2dldHRlci5nZXQoKTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9u
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQWN0aXZhdGlvbi5jcHAKaW5k
ZXggOTU5YmNmODA5YjAzOTg5ZDhjMWRkNTBlYzExM2Q5OThlNzUwMGRiMi4uNDQyYjc3ZjAzYjdh
NDEwZjZiOGFmMzEzZGQwZjMwYzcxYTQwYjAwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCkBAIC02MywxMSArNjMsNiBAQCBKU0FjdGl2YXRp
b246On5KU0FjdGl2YXRpb24oKQogICAgIHN0YXRpY19jYXN0PFNoYXJlZFN5bWJvbFRhYmxlKj4o
bV9zeW1ib2xUYWJsZSktPmRlcmVmKCk7CiB9CiAKLXZvaWQgSlNBY3RpdmF0aW9uOjp2aXNpdENo
aWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxkcmVu
KHRoaXMsIHZpc2l0b3IpOwotfQotCiB2b2lkIEpTQWN0aXZhdGlvbjo6dmlzaXRDaGlsZHJlbihK
U0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEpTQWN0aXZhdGlvbiog
dGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTQWN0aXZhdGlvbio+KGNlbGwpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAppbmRleCA5OTEwOTc2ZDM0Zjk4
ZGJkY2FkZjk4NDJlYzE4MDI3NTM1ZWZiYzUyLi5lNmU3NzRmN2E3MTgxOGMzZDQ1ZmJiOGEyZWFl
NWJmODZhODcwNGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0FjdGl2YXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2
YXRpb24uaApAQCAtNTUsNyArNTUsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2aXJ0
dWFsIH5KU0FjdGl2YXRpb24oKTsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJl
blZpcnR1YWwoU2xvdFZpc2l0b3ImKTsKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJl
bihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0R5bmFt
aWNTY29wZShib29sJiByZXF1aXJlc0R5bmFtaWNDaGVja3MpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAppbmRleCAxZDBhMTU2YWM1NmYyMDM2Yjk1MDNj
YTU3NWIyOTU1NGIwODBkZWUxLi4wMjBjY2YwYTM1M2Y5NWMxMDIxOGJjYjNjN2NiOTI2NjRmZjEz
ZjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcApAQCAtODcx
LDExICs4NzEsNiBAQCB2b2lkIEpTQXJyYXk6OnVuc2hpZnRDb3VudChFeGVjU3RhdGUqIGV4ZWMs
IGludCBjb3VudCkKICAgICAgICAgdmVjdG9yW2ldLmNsZWFyKCk7CiB9CiAKLXZvaWQgSlNBcnJh
eTo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlz
aXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBKU0FycmF5Ojp2aXNpdENoaWxk
cmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgSlNBcnJheSog
dGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTQXJyYXkqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQXJyYXkuaAppbmRleCBlOGZlNzg5NTAyOGRmOTM3MjlhMzAzNDZmMDBk
Y2NmNWZmNTk5ZWJhLi5lNTUzMmFiM2JiNTkxOWIzMWVkMDRkNTVlZmVmNmMyM2UyZDZjMTJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCkBAIC0xNzIsNyArMTcyLDYg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgICAgICB2aXJ0
dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
KTsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwg
UHJvcGVydHlOYW1lQXJyYXkmLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSA9IEV4Y2x1ZGVEb250RW51
bVByb3BlcnRpZXMpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgdmlzaXRDaGlsZHJlblZpcnR1YWwo
U2xvdFZpc2l0b3ImKTsKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwq
LCBTbG90VmlzaXRvciYpOwogCiAgICAgICAgIHZvaWQqIHN1YmNsYXNzRGF0YSgpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9u
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAK
aW5kZXggYmJjOWJkOTMzZjQyNzkyMGY3NjQzYTNhNWUzNWMzYTFmZTIyYzk5OS4uZmQzMWJjZGQ2
MzY1NDY3ODAwNThmMjZlZjU1OWViNDQ4MjBiMmRlOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCkBAIC0zMiw2ICszMiw4IEBAIG5h
bWVzcGFjZSBKU0MgewogCiBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTQm91bmRGdW5jdGlv
bik7CiAKK2NvbnN0IENsYXNzSW5mbyBKU0JvdW5kRnVuY3Rpb246OnNfaW5mbyA9IHsgIkZ1bmN0
aW9uIiwgJkJhc2U6OnNfaW5mbywgMCwgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0JvdW5kRnVu
Y3Rpb24pIH07CisKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRGdW5jdGlvbkNh
bGwoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTQm91bmRGdW5jdGlvbiogYm91bmRGdW5jdGlv
biA9IHN0YXRpY19jYXN0PEpTQm91bmRGdW5jdGlvbio+KGV4ZWMtPmNhbGxlZSgpKTsKQEAgLTE0
MCwxMSArMTQyLDYgQEAgdm9pZCBKU0JvdW5kRnVuY3Rpb246OmZpbmlzaENyZWF0aW9uKEV4ZWNT
dGF0ZSogZXhlYywgTmF0aXZlRXhlY3V0YWJsZSogZXhlY3V0YWIKICAgICBBU1NFUlQoaW5oZXJp
dHMoJnNfaW5mbykpOwogfQogCi12b2lkIEpTQm91bmRGdW5jdGlvbjo6dmlzaXRDaGlsZHJlblZp
cnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2
aXNpdG9yKTsKLX0KLQogdm9pZCBKU0JvdW5kRnVuY3Rpb246OnZpc2l0Q2hpbGRyZW4oSlNDZWxs
KiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU0JvdW5kRnVuY3Rpb24qIHRo
aXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0JvdW5kRnVuY3Rpb24qPihjZWxsKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmgKaW5kZXggNTI1MGU5
MDU0NTlhOTgzMDdmMjRjZTE5MDc4ODU3NWRjZThmNzY0NS4uZWJiYzQ2YzBmMjI3NzQ0OTU2YTVh
MTU1OTRlYmIxYzQxOWZhOTA2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNCb3VuZEZ1bmN0aW9uLmgKQEAgLTU0LDEwICs1NCwxMSBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oSlNGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7
IAogICAgIH0KIAorICAgIHN0YXRpYyBKU19FWFBPUlREQVRBIGNvbnN0IENsYXNzSW5mbyBzX2lu
Zm87CisKIHByb3RlY3RlZDoKLSAgICBjb25zdCBzdGF0aWMgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBPdmVycmlkZXNIYXNJbnN0YW5jZSB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgIGNv
bnN0IHN0YXRpYyB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0hhc0luc3RhbmNl
IHwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCi0gICAg
dmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJik7CiAgICAgc3Rh
dGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOwogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaAppbmRleCAyOTI4OGQ4YTMxNzRm
YmViYTgwNGQ4ODE5MjE2NDZmMDcyZWU0Yjk4Li44YmY3NWFjNTE3MzE4NGI1OTI2MTc2ODQ4NmU5
YTYwZmRjNzgxYTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NlbGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaApAQCAt
ODUsMTEgKzg1LDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIFVTdHJpbmcg
dG9TdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgSlNPYmplY3QqIHRv
T2JqZWN0KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAKLSAgICAgICAgdmly
dHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJik7CiAgICAgICAgIHN0
YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAogICAgICAg
ICAvLyBPYmplY3Qgb3BlcmF0aW9ucywgd2l0aCB0aGUgdG9PYmplY3Qgb3BlcmF0aW9uIGluY2x1
ZGVkLgogICAgICAgICBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0OworICAgICAg
ICBjb25zdCBNZXRob2RUYWJsZSogbWV0aG9kVGFibGUoKSBjb25zdDsKICAgICAgICAgdmlydHVh
bCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpT
VmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSk7CiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUpOwpAQCAtMTgxLDExICsxODEsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgcmV0
dXJuIG1fc3RydWN0dXJlLmdldCgpOwogICAgIH0KIAotICAgIGlubGluZSB2b2lkIEpTQ2VsbDo6
dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi0gICAgewotICAgICAg
ICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpOwotICAgIH0KLQogICAgIGlubGluZSB2b2lk
IEpTQ2VsbDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9y
KQogICAgIHsKICAgICAgICAgSlNDZWxsKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNDZWxs
Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1
bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3Bw
CmluZGV4IDRmYzc1Njg5NGJjOTIwMmFiOGYyMjRjYjczZWFiMDI3ZjkxZGQ4NWYuLmZiZWRkZWQ4
MWMyOTI4YWI1ZTBmMjU0ZmQxM2UwMTc1NDcwMzkxM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC0xNTEsMTEgKzE1MSw2IEBAIGNvbnN0IFVT
dHJpbmcgSlNGdW5jdGlvbjo6Y2FsY3VsYXRlZERpc3BsYXlOYW1lKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICByZXR1cm4gbmFtZShleGVjKTsKIH0KIAotdm9pZCBKU0Z1bmN0aW9uOjp2aXNpdENoaWxk
cmVuVmlydHVhbChTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxkcmVuKHRo
aXMsIHZpc2l0b3IpOwotfQotCiB2b2lkIEpTRnVuY3Rpb246OnZpc2l0Q2hpbGRyZW4oSlNDZWxs
KiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU0Z1bmN0aW9uKiB0aGlzT2Jq
ZWN0ID0gc3RhdGljX2Nhc3Q8SlNGdW5jdGlvbio+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCmluZGV4IDFlNjY4ZTllMjAxMDI3ZDMxYTI5MGM0MWY2
ZDkzMmNkMTY5Nzc1MGMuLjkxYzNjY2ZkOTUyNGMyYzljZDM1MDg1M2I2MDY1MmJiMmUxMGZhYWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKQEAgLTEzNSw3
ICsxMzUsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlE
ZXNjcmlwdG9yJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4
ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2RlID0gRXhjbHVkZURv
bnRFbnVtUHJvcGVydGllcyk7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW5W
aXJ0dWFsKFNsb3RWaXNpdG9yJik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4o
SlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggOThjMTFkNDA2NmU1
MWUwZjdiMWRhNjkyOWQyYmMzZDEyMjBlZWYyOC4uOTk2ZmMyOTIxMmE1MDg1Mjg2ZDVlMjIwNDVk
NzMxOTI2Y2RhMTM0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcApAQCAtMzA4LDExICszMDgsNiBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0
OjpyZXNldFByb3RvdHlwZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90
eXBlKQogICAgICAgICBvbGRMYXN0SW5Qcm90b3R5cGVDaGFpbi0+c2V0UHJvdG90eXBlKGdsb2Jh
bERhdGEsIG9iamVjdFByb3RvdHlwZSk7CiB9CiAKLXZvaWQgSlNHbG9iYWxPYmplY3Q6OnZpc2l0
Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRy
ZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgSlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRy
ZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsgCiAgICAgSlNHbG9iYWxP
YmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0dsb2JhbE9iamVjdCo+KGNlbGwpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXgg
M2YwYjg1ZDk2OWI2YzAxNmI2ZDlhNWYzNTcwYjYxNWRiYjEzY2YxYi4uOWRmYWQxMjIyZTlmNTE1
MDRlZGJhOGJiMDFkMWU5NTg2MWJhNmQxYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xNzUsNyArMTc1LDYgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIH5KU0dsb2JhbE9iamVjdCgpOwogCi0g
ICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYpOwog
ICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7
CiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBj
b25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdC5jcHAKaW5kZXggNTc4OTlmYWU3OTZjMjk5ZjA2OTgxZTBkZmM0OTNh
ZTkwZmZkZGRhNS4uYTc1YzM2YWQ4NWI2OTFkZmVlZGI2YjRkOGM3ZDQ4MzIwYTM3YzBjOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcApAQCAtNjgsMTEgKzY4
LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIGdldENsYXNzUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IENsYXNzSW5mbyogY2xhc3MKICAgICB9CiB9CiAKLXZvaWQgSlNPYmplY3Q6
OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0
Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgSlNPYmplY3Q6OnZpc2l0Q2hpbGRy
ZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU09iamVjdCog
dGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCAyN2I1Y2MwYThmZTMxZjg1YTg5YWZhNWIw
YzdhYjRkNGJlMWFlNmE0Li4yMTgzN2VhMmYxMTY1ODQ1MmU5ZDUwMmIxYjYwMGMxNWRiZWE4MDU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTc5LDEwICs3
OSwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSlND
ZWxsIEJhc2U7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNs
b3RWaXNpdG9yJik7CiAgICAgICAgIEFMV0FZU19JTkxJTkUgdm9pZCB2aXNpdENoaWxkcmVuRGly
ZWN0KFNsb3RWaXNpdG9yJik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlND
ZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAorICAgICAgICB2aXJ0dWFsIFVTdHJpbmcgY2xhc3NOYW1l
KCkgY29uc3Q7CisKICAgICAgICAgLy8gVGhlIGlubGluZSB2aXJ0dWFsIGRlc3RydWN0b3IgY2Fu
bm90IGJlIHRoZSBmaXJzdCB2aXJ0dWFsIGZ1bmN0aW9uIGRlY2xhcmVkCiAgICAgICAgIC8vIGlu
IHRoZSBjbGFzcyBhcyBpdCByZXN1bHRzIGluIHRoZSB2dGFibGUgYmVpbmcgZ2VuZXJhdGVkIGFz
IGEgd2VhayBzeW1ib2wKICAgICAgICAgdmlydHVhbCB+SlNPYmplY3QoKTsKQEAgLTkzLDggKzk0
LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIAogICAgICAgICBTdHJ1Y3R1cmUqIGluaGVy
aXRvcklEKEpTR2xvYmFsRGF0YSYpOwogCi0gICAgICAgIHZpcnR1YWwgVVN0cmluZyBjbGFzc05h
bWUoKSBjb25zdDsKLQogICAgICAgICBKU1ZhbHVlIGdldChFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUpIGNvbnN0OwogICAgICAgICBKU1ZhbHVlIGdldChFeGVjU3Rh
dGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpIGNvbnN0OwogCkBAIC00ODUsNiArNDg0LDExIEBA
IGlubGluZSBib29sIEpTQ2VsbDo6aW5oZXJpdHMoY29uc3QgQ2xhc3NJbmZvKiBpbmZvKSBjb25z
dAogICAgIHJldHVybiBjbGFzc0luZm8oKS0+aXNTdWJDbGFzc09mKGluZm8pOwogfQogCitpbmxp
bmUgY29uc3QgTWV0aG9kVGFibGUqIEpTQ2VsbDo6bWV0aG9kVGFibGUoKSBjb25zdAoreworICAg
IHJldHVybiAmY2xhc3NJbmZvKCktPm1ldGhvZFRhYmxlOworfQorCiAvLyB0aGlzIG1ldGhvZCBp
cyBoZXJlIHRvIGJlIGFmdGVyIHRoZSBpbmxpbmUgZGVjbGFyYXRpb24gb2YgSlNDZWxsOjppbmhl
cml0cwogaW5saW5lIGJvb2wgSlNWYWx1ZTo6aW5oZXJpdHMoY29uc3QgQ2xhc3NJbmZvKiBjbGFz
c0luZm8pIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCmluZGV4IDk3MDI1YTRlNGZiOTE4ZDMyZGYz
ODgxZmIzODQ4NWE0ZWI4OTE4ODEuLmFiYWI3OWVmN2RlZjM0MGM3N2U3MGY3OTU4ZjM4YTJhNzll
NGU4MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVy
dHlOYW1lSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
UHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCkBAIC05MiwxMSArOTIsNiBAQCBKU1ZhbHVlIEpTUHJv
cGVydHlOYW1lSXRlcmF0b3I6OmdldChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlLCBz
aXplX3QgaSkKICAgICByZXR1cm4gaWRlbnRpZmllcjsKIH0KIAotdm9pZCBKU1Byb3BlcnR5TmFt
ZUl0ZXJhdG9yOjp2aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYgdmlzaXRvcikKLXsK
LSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpOwotfQotCiB2b2lkIEpTUHJvcGVydHlO
YW1lSXRlcmF0b3I6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlz
aXRvcikKIHsKICAgICBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiB0aGlzT2JqZWN0ID0gc3RhdGlj
X2Nhc3Q8SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcio+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oCmluZGV4IGM2
ZjY5Nzk3MmNhNzU0NmI1MmE2NDZiMzcwYzlkMGZmNTcxYzg1NDguLjk3YTUwMzI2YmRjOWVjYzRi
OTgyNGUyZjUyY2U2YzIwNjBiNTY0ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgKQEAgLTU4LDcgKzU4LDYgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKENvbXBvdW5kVHlwZSwg
T3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiksICZzX2luZm8pOwogICAgICAgICB9CiAKLSAgICAgICAg
dmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJik7CiAgICAgICAg
IHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAogICAg
ICAgICBib29sIGdldE9mZnNldChzaXplX3QgaSwgaW50JiBvZmZzZXQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2JqZWN0LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwCmluZGV4
IDMxZGE4MGE3OWVjZDYwN2VlMTk5MjI3YjAyYWU3ZWQ0ZmQzZWIxODEuLmI2NzgwZWZiM2U0ZmIy
OWQ3Y2Y4ZjY4ZGU3YmFiNTU1NmY5Zjg3ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuY3BwCkBAIC0zMiwxMSArMzIsNiBA
QAogbmFtZXNwYWNlIEpTQyB7CiBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTU3RhdGljU2Nv
cGVPYmplY3QpOwogCi12b2lkIEpTU3RhdGljU2NvcGVPYmplY3Q6OnZpc2l0Q2hpbGRyZW5WaXJ0
dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlz
aXRvcik7Ci19Ci0KIHZvaWQgSlNTdGF0aWNTY29wZU9iamVjdDo6dmlzaXRDaGlsZHJlbihKU0Nl
bGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEpTU3RhdGljU2NvcGVPYmpl
Y3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1N0YXRpY1Njb3BlT2JqZWN0Kj4oY2VsbCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3Bl
T2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0YXRpY1Njb3BlT2Jq
ZWN0LmgKaW5kZXggODIxMTc4YTlhZmI4NjNjMjZlN2ZmY2VhNmEyYTRlMDhjYjhlZWRhZC4uNzky
ZDRiMGI0MmNmZDQxNGNjZTdmNGExYWFkNGIzZTZhNmRiOTg1MiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdGF0aWNTY29wZU9iamVjdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RhdGljU2NvcGVPYmplY3QuaApAQCAtNDEsNyAr
NDEsNiBAQCBuYW1lc3BhY2UgSlNDewogICAgICAgICAgICAgcmV0dXJuIHNjb3BlT2JqZWN0Owog
ICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNs
b3RWaXNpdG9yJik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwg
U2xvdFZpc2l0b3ImKTsKICAgICAgICAgYm9vbCBpc0R5bmFtaWNTY29wZShib29sJiByZXF1aXJl
c0R5bmFtaWNDaGVja3MpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB0b1RoaXNP
YmplY3QoRXhlY1N0YXRlKikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1ZhbHVlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Zh
bHVlLmgKaW5kZXggNTY3ZGE5NGI2YWY4OTlkNjIwNmVhYzk2NGIzN2Q3MWM2MDM5NzA0OC4uMzcy
YmVkZGM3Nzg1ZTA5MzBkYTU5NWE5YjhlMGQzM2JlYzVkNDQ3OCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTVmFsdWUuaApAQCAtNTQsNiArNTQsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgIHN0cnVjdCBDbGFzc0luZm87CiAgICAgc3RydWN0IEluc3RydWN0aW9uOworICAgIHN0
cnVjdCBNZXRob2RUYWJsZTsKIAogICAgIHRlbXBsYXRlIDxjbGFzcyBUPiBjbGFzcyBXcml0ZUJh
cnJpZXJCYXNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1dyYXBwZXJPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFw
cGVyT2JqZWN0LmNwcAppbmRleCA2OTE5MmZlM2NkNzgzZGYxNGUwNDQ1NDk5OTJkZDk1ZGJmOWUw
OTJkLi4zNGRmN2VhZjg0MDQwOTdkZTFjNzA1MjQ3YmU5ODY2ODQ0MmZhNTA1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5jcHAKQEAgLTI2
LDkgKzI2LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAKIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwo
SlNXcmFwcGVyT2JqZWN0KTsKIAotdm9pZCBKU1dyYXBwZXJPYmplY3Q6OnZpc2l0Q2hpbGRyZW5W
aXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKSAKK0pTV3JhcHBlck9iamVjdDo6fkpTV3JhcHBl
ck9iamVjdCgpCiB7Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKIH0KIAogdm9p
ZCBKU1dyYXBwZXJPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRv
ciYgdmlzaXRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
V3JhcHBlck9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVy
T2JqZWN0LmgKaW5kZXggN2RkNGIyODk3YWU4NTU0NmVlMjRmZjVmZDYyNjcyYmZlMDI5Njk5Zi4u
NzM3MTNjMGIzNGM2NDI0MmE4NGYyYWVkZDE3ZDUxNTU5NmExMGU0NiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2JqZWN0LmgKQEAgLTQ0LDggKzQ0LDkg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGV4cGxpY2l0IEpTV3JhcHBlck9iamVjdChKU0ds
b2JhbERhdGEmLCBTdHJ1Y3R1cmUqKTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IEpTTm9uRmluYWxPYmplY3Q6
OlN0cnVjdHVyZUZsYWdzOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuVmly
dHVhbChTbG90VmlzaXRvciYpOwogICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpT
Q2VsbCosIFNsb3RWaXNpdG9yJik7CisKKyAgICAgICAgdmlydHVhbCB+SlNXcmFwcGVyT2JqZWN0
KCk7CiAgICAgICAgIAogICAgIHByaXZhdGU6CiAgICAgICAgIFdyaXRlQmFycmllcjxVbmtub3du
PiBtX2ludGVybmFsVmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDA5Yzg3MDViYjQ2YjE0OWNj
ZGE1NDRkZjExOGNlMjRmZGUwYjc4ZjkuLmYyZTZiY2NmNzEwODNmZjI0ZjNhZDU1OTY4ZGY5Zjli
YzliNTk5ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2
ZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC0zNywxMSArMzcsNiBAQCBOYXRpdmVFcnJv
ckNvbnN0cnVjdG9yOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cgogewogfQogCi12b2lkIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I6OnZpc2l0
Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRy
ZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6dmlz
aXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIE5h
dGl2ZUVycm9yQ29uc3RydWN0b3IqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxOYXRpdmVFcnJv
ckNvbnN0cnVjdG9yKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgKaW5kZXggMGEyYmIyM2QzZTIwYjM5M2Vj
OWY5YjcxOGFiZWE2MTZjYmRkOGZkNC4uNjdmNTI4ZDBhZTcyZTNmOWIxMzYxNzBiMzM2ZTI4NDVl
ZGJhOGE3MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZl
RXJyb3JDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05h
dGl2ZUVycm9yQ29uc3RydWN0b3IuaApAQCAtNzEsNyArNzEsNiBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgdmlydHVhbCBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0
RGF0YSYpOwogICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhVmlydHVhbChDYWxs
RGF0YSYpOwogICAgICAgICBzdGF0aWMgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2Fs
bERhdGEmKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RW
aXNpdG9yJik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xv
dFZpc2l0b3ImKTsKIAogICAgICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2Vycm9yU3Ry
dWN0dXJlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5j
cHAKaW5kZXggYTVkN2ZlNjFlYzgwYjI3MGNmNjNjNTBlYTlhNDI3MzVkNGMzNDg1NC4uMmI4NDMy
NGZmZTg5MTdkNTMxYzhjNzczM2ZhNTAxNGNmODFiNTAzNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCkBAIC03OCwxMSArNzgsNiBAQCBSZWdF
eHBPYmplY3Q6On5SZWdFeHBPYmplY3QoKQogewogfQogCi12b2lkIFJlZ0V4cE9iamVjdDo6dmlz
aXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGls
ZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBSZWdFeHBPYmplY3Q6OnZpc2l0Q2hpbGRy
ZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBSZWdFeHBPYmpl
Y3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxSZWdFeHBPYmplY3QqPihjZWxsKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmgKaW5kZXggZTk2NjRhNDE3
MWY3NWJhMjExNDYyM2QyZDYyNzgyMTU2NzdjMTQ3OC4uZThhZjZkNmJjMWYzNzRiOTkyMWM5MGMz
YjYwNGQyZWY1NWI4YzUzOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwT2JqZWN0LmgKQEAgLTgxLDcgKzgxLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdCB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCi0gICAgICAg
IHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYpOwogICAgICAg
ICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CiAKICAg
ICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2Nv
cGVDaGFpbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZUNoYWluLmNw
cAppbmRleCBlODU5YzhjNDFmOGFhNDA4MWJjZTVmNTk3MmRmYjBiMzg4OTIxNjQ2Li42ZTJlMDM0
YWY2ZDdmZTE3M2JkYzY0OWY1Yjk1ODJiOWZjZDM4ODYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TY29wZUNoYWluLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TY29wZUNoYWluLmNwcApAQCAtMjksNiArMjksMTAgQEAKIAogbmFtZXNw
YWNlIEpTQyB7CiAKK1Njb3BlQ2hhaW5Ob2RlOjp+U2NvcGVDaGFpbk5vZGUoKQoreworfQorCiAj
aWZuZGVmIE5ERUJVRwogCiB2b2lkIFNjb3BlQ2hhaW5Ob2RlOjpwcmludCgpCkBAIC02NywxMSAr
NzEsNiBAQCBpbnQgU2NvcGVDaGFpbk5vZGU6OmxvY2FsRGVwdGgoKQogICAgIHJldHVybiBzY29w
ZURlcHRoOwogfQogCi12b2lkIFNjb3BlQ2hhaW5Ob2RlOjp2aXNpdENoaWxkcmVuVmlydHVhbChT
bG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3Ip
OwotfQotCiB2b2lkIFNjb3BlQ2hhaW5Ob2RlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgU2NvcGVDaGFpbk5vZGUqIHRoaXNPYmplY3Qg
PSBzdGF0aWNfY2FzdDxTY29wZUNoYWluTm9kZSo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5oCmluZGV4IGFjNTJjNjc3YmI1NDE5NjdiNDAwNjkwNmMz
ZjRjNzVmZWZlYTQ4M2IuLjQ4Mzg1ZDBjYmUxYTQ4OGFlNzljYWE2YWEzMTU4MWQ3NDYwMGM2OGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlQ2hhaW4uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZUNoYWluLmgKQEAgLTQ1LDYg
KzQ1LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgfQogCisgICAgICAg
IHZpcnR1YWwgflNjb3BlQ2hhaW5Ob2RlKCk7CisKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQogICAgICAgICB7CkBAIC04Nyw3ICs4OSw2IEBAIG5hbWVzcGFjZSBK
U0MgewogI2VuZGlmCiAgICAgICAgIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxE
YXRhLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhDb21wb3VuZFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgJnNfaW5mbyk7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW5W
aXJ0dWFsKFNsb3RWaXNpdG9yJik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4o
SlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKICAgICAgICAgc3RhdGljIEpTX0VYUE9SVERBVEEgY29u
c3QgQ2xhc3NJbmZvIHNfaW5mbzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0
cnVjdHVyZS5jcHAKaW5kZXggYjY3Yzg3ZjFjZDA3NGNmZTBjNzg3ZmVmZGFkZTg0OTQzZWZiM2Zh
OS4uZDdhZmExNWY1OGUzMjk1ZWM3MmFmOTMxNzY4MmI4Nzc0ODRlMWU1MCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCkBAIC03MjQsMTEgKzcyNCw2IEBA
IHZvaWQgU3RydWN0dXJlOjpnZXRQcm9wZXJ0eU5hbWVzKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgUHJvcGVydHlOYW1lQXJyYXkmIHByCiAgICAgfQogfQogCi12b2lkIFN0cnVjdHVyZTo6dmlz
aXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGls
ZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBTdHJ1Y3R1cmU6OnZpc2l0Q2hpbGRyZW4o
SlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBTdHJ1Y3R1cmUqIHRo
aXNPYmplY3QgPSBzdGF0aWNfY2FzdDxTdHJ1Y3R1cmUqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKaW5kZXggOTU4YWQxYjc1YjhmZTU3YmJiNTZmZGU4
YmI4MzhmNWViMmRmNjY0NS4uODRmZGQ3YmI4YjdjNTkyODAwMWNmNWRmYzliZGMxM2ZiMzQ3YTY2
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKQEAgLTEzMCw3
ICsxMzAsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSlNWYWx1ZSBzdG9yZWRQcm90b3R5
cGUoKSBjb25zdCB7IHJldHVybiBtX3Byb3RvdHlwZS5nZXQoKTsgfQogICAgICAgICBKU1ZhbHVl
IHByb3RvdHlwZUZvckxvb2t1cChFeGVjU3RhdGUqKSBjb25zdDsKICAgICAgICAgU3RydWN0dXJl
Q2hhaW4qIHByb3RvdHlwZUNoYWluKEV4ZWNTdGF0ZSopIGNvbnN0OwotICAgICAgICB2b2lkIHZp
c2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZp
c2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAogICAgICAgICBTdHJ1Y3R1cmUq
IHByZXZpb3VzSUQoKSBjb25zdCB7IEFTU0VSVChzdHJ1Y3R1cmUoKS0+Y2xhc3NJbmZvKCkgPT0g
JnNfaW5mbyk7IHJldHVybiBtX3ByZXZpb3VzLmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5jcHAKaW5kZXggYTczNjJhOTA3YTNhZmY3
ZTg2NjIxNGNjMDVjNjM3M2QxZTkyNDliNC4uMmJkNzgxZDRiZTY4ZjM4YjdjNGZhOTg4OGQyNzMw
NTE0MWE3MzkzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
dWN0dXJlQ2hhaW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZUNoYWluLmNwcApAQCAtNDMsMTEgKzQzLDYgQEAgU3RydWN0dXJlQ2hhaW46On5TdHJ1Y3R1
cmVDaGFpbigpCiB7CiB9CiAKLXZvaWQgU3RydWN0dXJlQ2hhaW46OnZpc2l0Q2hpbGRyZW5WaXJ0
dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlz
aXRvcik7Ci19Ci0KIHZvaWQgU3RydWN0dXJlQ2hhaW46OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBj
ZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBTdHJ1Y3R1cmVDaGFpbiogdGhpc09i
amVjdCA9IHN0YXRpY19jYXN0PFN0cnVjdHVyZUNoYWluKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uaAppbmRleCAxOTBjNWMyZjRlNDQ3
ZWNjMjA5MTgyZGFlZDg0NWU1MGYxOWY5OGY3Li4yODFmNjAyNGU0ZTZkNGM3OWJiMzU5YzBkMTdh
Y2M1MzE0MGE0NDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJ1Y3R1cmVDaGFpbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZUNoYWluLmgKQEAgLTUyLDcgKzUyLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAg
ICByZXR1cm4gY2hhaW47CiAgICAgICAgIH0KICAgICAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVy
ZT4qIGhlYWQoKSB7IHJldHVybiBtX3ZlY3Rvci5nZXQoKTsgfQotICAgICAgICB2b2lkIHZpc2l0
Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0
Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAogICAgICAgICBzdGF0aWMgU3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkgeyByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKENv
bXBvdW5kVHlwZSwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiksICZzX2luZm8pOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRH
bHVlL0NoYW5nZUxvZwppbmRleCA3YmU2MGU3NTU1NDI5YjU0ZmZjNWE3MjM2N2U5ZjhlYzk1OWVm
YzNhLi43MGMyMTgyYTY2NDE3MTIxYmZkMDkyMWNmZjcwNmRlNTI1ZTYzMDU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
R2x1ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0wOS0yOCAgTWFyayBIYWhuZW5i
ZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIERlLXZpcnR1YWxpemUgSlND
ZWxsOjp2aXNpdENoaWxkcmVuVmlydHVhbCBhbmQgcmVtb3ZlIGFsbCBvdGhlciB2aXNpdENoaWxk
cmVuVmlydHVhbCBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02ODgzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlbW92ZWQgdGhlIHJlbWFpbmluZyB2aXNpdENoaWxkcmVuVmlydHVhbCBtZXRo
b2RzLiAgVGhpcyBwYXRjaCBjb21wbGV0ZXMgdGhlIHByb2Nlc3Mgb2YgCisgICAgICAgIGRlLXZp
cnR1YWxpemluZyB2aXNpdENoaWxkcmVuLgorCisgICAgICAgICogVXNlck9iamVjdEltcC5jcHA6
CisgICAgICAgICogVXNlck9iamVjdEltcC5oOgorCiAyMDExLTA5LTI3ICBNYXJrIEhhaG5lbmJl
cmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN0YXRpYyB2ZXJzaW9u
IG9mIEpTQ2VsbDo6Z2V0Q2FsbERhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1
ZS9Vc2VyT2JqZWN0SW1wLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1w
LmNwcAppbmRleCAzYjQxNDRiOWFiNDk4YzUxNWI3MjBiMGEzYzk0MmJiZDY2NDRmZDc2Li42MzI1
OTk0ZjFlMWNmOWMyMDkwZmQ4MmY2YTAyM2M5NWI0MDEyZDJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRH
bHVlL1VzZXJPYmplY3RJbXAuY3BwCkBAIC00MTAsMTEgKzQxMCw2IEBAIFVTdHJpbmcgVXNlck9i
amVjdEltcDo6dG9TdHJpbmcoRXhlY1N0YXRlICpleGVjKSBjb25zdAogICAgIHJldHVybiByZXN1
bHQ7CiB9CiAKLXZvaWQgVXNlck9iamVjdEltcDo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0K
LQogdm9pZCBVc2VyT2JqZWN0SW1wOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgVXNlck9iamVjdEltcCogdGhpc09iamVjdCA9IHN0YXRp
Y19jYXN0PFVzZXJPYmplY3RJbXAqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmggYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVj
dEltcC5oCmluZGV4IDA0ODU0MzVhNjc1ZTBiNzYwMTc4Nzc5M2RjMzJhN2VmNDhiMzY1MTIuLjJk
NTZkNGEwOWQ3NjZkNzQ3ZWM3NTUzNTlkMjEwNTU1MDFmYTEyOGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRH
bHVlL1VzZXJPYmplY3RJbXAuaApAQCAtNjMsNyArNjMsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBkb3VibGUgdG9OdW1iZXIoRXhlY1N0YXRlICpleGVjKSBjb25zdDsKICAgICB2aXJ0dWFsIFVT
dHJpbmcgdG9TdHJpbmcoRXhlY1N0YXRlICpleGVjKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9p
ZCB2aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYpOwogICAgIHN0YXRpYyB2b2lkIHZp
c2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAogICAgIEpTVXNlck9iamVjdCAq
R2V0SlNVc2VyT2JqZWN0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGRlM2IxOTI3ZWUxMDZhNTBh
YWQ0YTE0ZjBmZTcxMDM1NzVlYjc1ZS4uMjI5ZDdjY2M4YTY1Y2Y3MGUyNzAyMDkyNDk4Yjc3NGZj
YTdmNzJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDExLTA5LTI4ICBNYXJrIEhh
aG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgRGUtdmlydHVhbGl6
ZSBKU0NlbGw6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsIGFuZCByZW1vdmUgYWxsIG90aGVyIHZpc2l0
Q2hpbGRyZW5WaXJ0dWFsIG1ldGhvZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY4ODM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgIFJlbW92ZWQgdGhlIHJlbWFp
bmluZyB2aXNpdENoaWxkcmVuVmlydHVhbCBtZXRob2RzLiAgVGhpcyBwYXRjaCBjb21wbGV0ZXMg
dGhlIHByb2Nlc3Mgb2YgCisgICAgICAgIGRlLXZpcnR1YWxpemluZyB2aXNpdENoaWxkcmVuLgor
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogYmluZGluZ3MvanMvSlNBdHRy
Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5j
cHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDU1NSdWxlQ3VzdG9tLmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNET01HbG9iYWxPYmplY3Q6On5KU0RPTUdsb2JhbE9iamVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTUdsb2JhbE9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5k
b3dDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaDoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0phdmFTY3JpcHRBdWRpb05vZGVDdXN0b20uY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTmFt
ZWROb2RlTWFwQ3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20u
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHA6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTU1ZHRWxlbWVudEluc3RhbmNlQ3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU1NoYXJlZFdvcmtlckN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNTdHlsZVNoZWV0Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1RyZWVXYWxr
ZXJDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250
ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0
b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJh
dGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICog
YnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcDoKKyAgICAgICAgKiBicmlkZ2UvcXQvcXRfcnVudGlt
ZS5jcHA6CisgICAgICAgICogYnJpZGdlL3F0L3F0X3J1bnRpbWUuaDoKKwogMjAxMS0wOS0yOCAg
RmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1d
IFNlcGVyYXRlIEdUSyBzcGVjaWZpYyBHeXAgcnVsZXMgZnJvbSBYMTEgR3lwIHJ1bGVzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCmluZGV4IDQ3MDQxYjAwMDg3MmVkYzNlYjQ1OGVlOWY4Yzk3YjIzMGM4ZWRh
MmEuLjJlZTA0M2QyMTI1NWEwZmMyOTUwYmI5MjJhYWM0ZjA0NzJlNGY5YzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCkBAIC04MTQsNyArODE0LDYgQEAgX19aTjdXZWJDb3JlNkVkaXRvcjZpbmRlbnRF
dgogX19aTjdXZWJDb3JlNkVkaXRvcjdDb21tYW5kQzFFdgogX19aTjdXZWJDb3JlNkVkaXRvcjdj
b21tYW5kRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlNkVkaXRvcjdvdXRkZW50RXYKLV9f
Wk43V2ViQ29yZTZKU05vZGUyMHZpc2l0Q2hpbGRyZW5WaXJ0dWFsRVJOM0pTQzExU2xvdFZpc2l0
b3JFCiBfX1pON1dlYkNvcmU2SlNOb2RlM3B1dEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRl
bnRpZmllckVOUzFfN0pTVmFsdWVFUk5TMV8xNVB1dFByb3BlcnR5U2xvdEUKIF9fWk43V2ViQ29y
ZTZKU05vZGU2c19pbmZvRQogX19aTjdXZWJDb3JlNlJlZ2lvbjV1bml0ZUVSS1MwXwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdHRyQ3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXR0ckN1c3RvbS5jcHAKaW5kZXggM2IxMDg2ZDU3NGY5
Njc3N2Q0Mjk0ZTAxOWRhMzE4ODY4ZmFjYWIyOS4uYWMxYWU2MDFmMWZjYjFmNWRkMDU4YWZlNTQy
MDg4NzA1Zjg2NTAzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNB
dHRyQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F0dHJDdXN0
b20uY3BwCkBAIC0zOSwxMSArMzksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7CiAKLXZvaWQgSlNBdHRyOjp2aXNpdENoaWxkcmVuVmlydHVhbChT
bG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3Ip
OwotfQotCiB2b2lkIEpTQXR0cjo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNp
dG9yJiB2aXNpdG9yKQogewogICAgIEpTQXR0ciogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpT
QXR0cio+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNB
dWRpb0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRp
b0NvbnRleHRDdXN0b20uY3BwCmluZGV4IDRlNmE0NmQzMTU2NzQ3ZjY5NzEyYzRjMmZiNTNhMjlj
MWEzYmU1NGEuLjViZmEzNWYxNDRhZTczNWQ5MTY0ZjE4NDc2Y2JmYzliNzUwZmNmYzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db250ZXh0Q3VzdG9tLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5j
cHAKQEAgLTM5LDExICszOSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotdm9pZCBKU0F1ZGlvQ29udGV4dDo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsK
LX0KLQogdm9pZCBKU0F1ZGlvQ29udGV4dDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNs
b3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEpTQXVkaW9Db250ZXh0KiB0aGlzT2JqZWN0ID0g
c3RhdGljX2Nhc3Q8SlNBdWRpb0NvbnRleHQqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0NTU1J1bGVDdXN0b20uY3BwCmluZGV4IDcxYjA2Y2UxZDI5Njc4NTg4Yzcw
NjE1ZGIyZTFmMGVmNWQ5YjZkYTAuLjRlY2FhNTJkNmM2ZTRmMmYyMzkzNTg0ODMwZDdmZTUxY2Y1
ZjJkZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUN1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDU1NSdWxlQ3VzdG9t
LmNwcApAQCAtNDgsMTEgKzQ4LDYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi12b2lkIEpTQ1NTUnVsZTo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0K
LQogdm9pZCBKU0NTU1J1bGU6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRv
ciYgdmlzaXRvcikKIHsKICAgICBKU0NTU1J1bGUqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxK
U0NTU1J1bGUqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0NTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwCmluZGV4IGNkOWFjZWU4ZDE4NGYy
MDNmOWZiODI3ZmUyYmUwMDI4ZTU2NTYxY2QuLjMzZDZhZjE2NzQxNDc2NWJjMDM5NDUxNWI0MTA1
MzQ4MDM0MGJkZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NT
U3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcApAQCAtNDMsMTEgKzQzLDYgQEAgdXNp
bmcgbmFtZXNwYWNlIFdURjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIEpTQ1NTU3R5
bGVEZWNsYXJhdGlvbjo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3Ip
Ci17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBKU0NTU1N0
eWxlRGVjbGFyYXRpb246OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYg
dmlzaXRvcikKIHsKICAgICBKU0NTU1N0eWxlRGVjbGFyYXRpb24qIHRoaXNPYmplY3QgPSBzdGF0
aWNfY2FzdDxKU0NTU1N0eWxlRGVjbGFyYXRpb24qPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHRDdXN0
b20uY3BwCmluZGV4IGRhNjAyOGMwODY2NjM1NWUyNDIyMDZjMjYxODZiMjkzMDY4OTY1N2QuLjE5
Mzc5YWRlODMwNjEzM2ExN2RhYjg1MWQxZWU4NTJhOWQ4ODI5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcApAQCAtMzksMTEgKzM5LDYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDo6dmlzaXRD
aGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJl
bih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQ6OnZp
c2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBK
U0NhbnZhc1JlbmRlcmluZ0NvbnRleHQqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAppbmRleCA2ZjRkMmE2OTMwNjhmNzUzNGZiMjA3NjU3
ZTZkZDNkNDZhMzlkMDhiLi40NWFkYjdiYmQ4Zjg4NWQ3NzNiNjlkMjNjOTEwMGFkNGYzNzRmMDMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3Qu
Y3BwCkBAIC00OSwxNSArNDksMTQgQEAgSlNET01HbG9iYWxPYmplY3Q6OkpTRE9NR2xvYmFsT2Jq
ZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3QKIHsKIH0KIAot
dm9pZCBKU0RPTUdsb2JhbE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBKU09iamVjdCogdGhpc1ZhbHVlKQorSlNET01HbG9iYWxPYmplY3Q6On5KU0RPTUds
b2JhbE9iamVjdCgpCiB7Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgdGhp
c1ZhbHVlKTsKLSAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQogCi12b2lkIEpTRE9N
R2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuVmlydHVhbChKU0M6OlNsb3RWaXNpdG9yJiB2aXNp
dG9yKQordm9pZCBKU0RPTUdsb2JhbE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU09iamVjdCogdGhpc1ZhbHVlKQogewotICAgIHZpc2l0Q2hpbGRyZW4o
dGhpcywgdmlzaXRvcik7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgdGhp
c1ZhbHVlKTsKKyAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogfQogCiB2b2lkIEpTRE9N
R2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2Jh
bE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3Qu
aAppbmRleCA5OWE2MzFmYzkzNjk4YTc5YjJjYjcwYzE0NGVhMmUxN2VlNmEwOWM5Li5lM2MzMjg3
YWZjNDU1NTU0NDI1ZDUzOWNhNWNjY2JkZjQ0MTcyNTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKQEAgLTQ3LDYgKzQ3LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBzdHJ1Y3QgSlNET01HbG9iYWxPYmplY3REYXRhOwogCiAg
ICAgICAgIEpTRE9NR2xvYmFsT2JqZWN0KEpTQzo6SlNHbG9iYWxEYXRhJiwgSlNDOjpTdHJ1Y3R1
cmUqLCBQYXNzUmVmUHRyPERPTVdyYXBwZXJXb3JsZD4pOworICAgICAgICB2aXJ0dWFsIH5KU0RP
TUdsb2JhbE9iamVjdCgpOwogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6SlNHbG9i
YWxEYXRhJiwgSlNDOjpKU09iamVjdCogdGhpc1ZhbHVlKTsKIAogICAgIHB1YmxpYzoKQEAgLTY0
LDcgKzY1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldEluamVjdGVk
U2NyaXB0KEpTT2JqZWN0Kik7CiAgICAgICAgIEpTT2JqZWN0KiBpbmplY3RlZFNjcmlwdCgpIGNv
bnN0OwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCB2aXNpdENoaWxkcmVuVmlydHVhbChKU0M6OlNs
b3RWaXNpdG9yJik7CiAgICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDOjpKU0Nl
bGwqLCBKU0M6OlNsb3RWaXNpdG9yJik7CiAKICAgICAgICAgRE9NV3JhcHBlcldvcmxkKiB3b3Js
ZCgpIHsgcmV0dXJuIG1fd29ybGQuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCBhZGIwNTFmNzY3OGE3YzMwNDc3ZTc1
NGFlN2QyNTBkMjExMzViYzM5Li4wNGI1Yjk3NjUyN2E0ZmQxOTViNDVhYjI4NDk1NjRlYWM4NWQy
ZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0
b20uY3BwCkBAIC03NywxMSArNzcsNiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXZvaWQgSlNET01XaW5kb3c6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNs
b3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7
Ci19Ci0KIHZvaWQgSlNET01XaW5kb3c6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90
VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU0RPTVdpbmRvdyogdGhpc09iamVjdCA9IHN0YXRp
Y19jYXN0PEpTRE9NV2luZG93Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCmluZGV4IGI3NzZiZTNkMzg5MWZkMTU4NjQzNmU3YWY4
ODI1MmRkYzZhODUwZmEuLjFmMmI5ZWRmMGE2MGM1NTc5YjdmNmVjZTYwODA2ZWYwOTEwMjAwNDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3Bw
CkBAIC04MywxMSArODMsNiBAQCB2b2lkIEpTRE9NV2luZG93U2hlbGw6OnNldFdpbmRvdyhQYXNz
UmVmUHRyPERPTVdpbmRvdz4gZG9tV2luZG93KQogLy8gSlNPYmplY3QgbWV0aG9kcwogLy8gLS0t
LQogCi12b2lkIEpTRE9NV2luZG93U2hlbGw6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKEpTQzo6U2xv
dFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsK
LX0KLQogdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgSlNET01XaW5kb3dTaGVsbCogdGhpc09iamVj
dCA9IHN0YXRpY19jYXN0PEpTRE9NV2luZG93U2hlbGwqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAppbmRleCBlOWFiYzE1ODEyY2Y0Njdh
MGYyODI2ZjZhMzA1OGM5OGU5M2YwNjQwLi4wMTJkNWI3MzViMTJhYzVlNzRkMDQwYWQwOWYzMTll
ZTA4ZDViNjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd1NoZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dT
aGVsbC5oCkBAIC03Nyw3ICs3Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9p
ZCogb3BlcmF0b3IgbmV3KHNpemVfdCk7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpP
dmVycmlkZXNWaXNpdENoaWxkcmVuIHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwg
QmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRy
ZW5WaXJ0dWFsKEpTQzo6U2xvdFZpc2l0b3ImKTsKICAgICAgICAgc3RhdGljIHZvaWQgdmlzaXRD
aGlsZHJlbihKU0M6OkpTQ2VsbCosIEpTQzo6U2xvdFZpc2l0b3ImKTsKICAgICAgICAgdmlydHVh
bCBKU0M6OlVTdHJpbmcgY2xhc3NOYW1lKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSmF2YVNjcmlwdEF1ZGlvTm9kZUN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0phdmFTY3JpcHRBdWRpb05vZGVDdXN0b20uY3BwCmlu
ZGV4IDAwNGQ4YmU5ZGI1Mjk3YTM4YmNhMGQ2MTM4MGRjZjI0ZjE1N2YzMjguLjRhZDRkNGQ3NjYy
ZTczNWJlMjc0ZDJmMzlhNGUzYTQ2ZjczYTgxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSmF2YVNjcmlwdEF1ZGlvTm9kZUN1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNKYXZhU2NyaXB0QXVkaW9Ob2RlQ3VzdG9tLmNwcApAQCAt
MzQsMTEgKzM0LDYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi12b2lkIEpTSmF2YVNjcmlwdEF1ZGlvTm9kZTo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsK
LX0KLQogdm9pZCBKU0phdmFTY3JpcHRBdWRpb05vZGU6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBj
ZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU0phdmFTY3JpcHRBdWRpb05vZGUq
IHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0phdmFTY3JpcHRBdWRpb05vZGUqPihjZWxsKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxD
dXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbEN1
c3RvbS5jcHAKaW5kZXggZmExOWM5ZDIyYzBhNmVkOWJmZDdiM2Q2YzQ3Y2QyNGFmMjY4MmMwNi4u
OGEwNDdhMTIwNjkxMjY5YjVhYzI3ODdkY2JiZGY4NzU1YmQzM2QxOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5jcHAKQEAg
LTMzLDExICszMyw2IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotdm9pZCBKU01lc3NhZ2VDaGFubmVsOjp2aXNpdENoaWxkcmVuVmlydHVhbChTbG90Vmlz
aXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpOwotfQot
CiB2b2lkIEpTTWVzc2FnZUNoYW5uZWw6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90
VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU01lc3NhZ2VDaGFubmVsKiB0aGlzT2JqZWN0ID0g
c3RhdGljX2Nhc3Q8SlNNZXNzYWdlQ2hhbm5lbCo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcAppbmRleCA5ZWVkNzM5MDFj
ZjdhNzhiYTM3YzA2NGIyMDEwMTUwMDUzYzNhYWE4Li41MWViZjg4YTlhYzkyODFiZjc2OTVhNGI0
MTAwMTg4ZjI5ZWU3OWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U01lc3NhZ2VQb3J0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U01lc3NhZ2VQb3J0Q3VzdG9tLmNwcApAQCAtNDIsMTEgKzQyLDYgQEAgdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIEpTTWVzc2FnZVBvcnQ6OnZpc2l0
Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRy
ZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgSlNNZXNzYWdlUG9ydDo6dmlzaXRDaGlsZHJl
bihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEpTTWVzc2FnZVBv
cnQqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU01lc3NhZ2VQb3J0Kj4oY2VsbCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAK
aW5kZXggYTEwZDUyYTE5YTdiMzhiMTM0MDY5NGYyNDUzZmFlODQyZDg4NDhlNS4uNDVhOWFjMDky
MWFkNTU0NWIyM2ExNzJhMTNmM2RlMWNlYjEzOWVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcApAQCAtMzUsMTEgKzM1LDYg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIEpT
TmFtZWROb2RlTWFwOjp2aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYgdmlzaXRvcikK
LXsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpOwotfQotCiBib29sIEpTTmFtZWRO
b2RlTWFwOjpjYW5HZXRJdGVtc0Zvck5hbWUoRXhlY1N0YXRlKiwgTmFtZWROb2RlTWFwKiBpbXBs
LCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIGltcGwtPmdl
dE5hbWVkSXRlbShpZGVudGlmaWVyVG9TdHJpbmcocHJvcGVydHlOYW1lKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAppbmRleCA5NzE1MjY2NTBhYzRiYmIw
NDUxNDUxZmIyNjRlNDQ0ZmI1MWM0NTEwLi4zZjJmMTU5YzJiNTQzNmRjMjYzYWJkZWYxYzU1YWU5
ZTNiN2RhMDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5j
cHAKQEAgLTE5MiwxMSArMTkyLDYgQEAgU2NvcGVDaGFpbk5vZGUqIEpTTm9kZTo6cHVzaEV2ZW50
SGFuZGxlclNjb3BlKEV4ZWNTdGF0ZSosIFNjb3BlQ2hhaW5Ob2RlKiBub2RlKQogICAgIHJldHVy
biBub2RlOwogfQogCi12b2lkIEpTTm9kZTo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0
b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQog
dm9pZCBKU05vZGU6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlz
aXRvcikKIHsKICAgICBKU05vZGUqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU05vZGUqPihj
ZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRl
ckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0
b20uY3BwCmluZGV4IDU2MDgxZWMxMzU2OTVjYjBiMDgyMWMyNmNjZjUyYjdjYTY2Y2I5NGEuLmU5
NDA5OGI2ODVmMzI1MWI0YmFlMDU5MzQ3NzEzNjVjN2ZiMGEzZTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcApAQCAtMzYsMTEgKzM2
LDYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lk
IEpTTm9kZUZpbHRlcjo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3Ip
Ci17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBKU05vZGVG
aWx0ZXI6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikK
IHsKICAgICBKU05vZGVGaWx0ZXIqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU05vZGVGaWx0
ZXIqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9k
ZUl0ZXJhdG9yQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUl0
ZXJhdG9yQ3VzdG9tLmNwcAppbmRleCA3MDU1OTQ2MmE1Nzg4NWQ5NjZiMDk1Y2E1ZjEzNTVlYjAw
MjgwMjU2Li44MTNlMDAwNjNiMGU3ODE0NzNlMDVlMTQyM2JlYzM1YjQ3YTkzZjNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVJdGVyYXRvckN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlSXRlcmF0b3JDdXN0b20uY3Bw
CkBAIC0yOSwxMSArMjksNiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXZvaWQgSlNOb2RlSXRlcmF0b3I6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RW
aXNpdG9yJiB2aXNpdG9yKQotewotICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19
Ci0KIHZvaWQgSlNOb2RlSXRlcmF0b3I6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90
VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBKU05vZGVJdGVyYXRvciogdGhpc09iamVjdCA9IHN0
YXRpY19jYXN0PEpTTm9kZUl0ZXJhdG9yKj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1NWR0VsZW1lbnRJbnN0YW5jZUN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR0VsZW1lbnRJbnN0YW5jZUN1c3RvbS5jcHAKaW5kZXgg
ODdlNmJmNjM5ZDkwZTQzZDc0OTM0MjIzYWNiYThmMDIwN2ExOWRlNy4uYmViOTlhODk3ZWYyZGRh
YTU4ZGYyODZjNzZiMmZiYjBhMmE4NTY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNTVkdFbGVtZW50SW5zdGFuY2VDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTU1ZHRWxlbWVudEluc3RhbmNlQ3VzdG9tLmNwcApAQCAtMzUsMTEg
KzM1LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIEpTU1ZHRWxlbWVudEluc3Rh
bmNlOjp2aXNpdENoaWxkcmVuVmlydHVhbChKU0M6OlNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewot
ICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgSlNTVkdFbGVtZW50
SW5zdGFuY2U6OnZpc2l0Q2hpbGRyZW4oSlNDOjpKU0NlbGwqIGNlbGwsIEpTQzo6U2xvdFZpc2l0
b3ImIHZpc2l0b3IpCiB7CiAgICAgSlNTVkdFbGVtZW50SW5zdGFuY2UqIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDxKU1NWR0VsZW1lbnRJbnN0YW5jZSo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFyZWRXb3JrZXJDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFyZWRXb3JrZXJDdXN0b20uY3BwCmluZGV4IDlmMzlh
MTRlNzVjM2M1NGQ1MTBhMTMzYzdmNzBhYjI2OGE3NDAwZTAuLjRkOWQyMmQ4Mjg4NmJiYWZlNmNl
MTZjYmQ2OGE0NGIwODI5M2VhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTU2hhcmVkV29ya2VyQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1NoYXJlZFdvcmtlckN1c3RvbS5jcHAKQEAgLTQzLDExICs0Myw2IEBAIHVzaW5nIG5h
bWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBKU1NoYXJlZFdvcmtl
cjo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlz
aXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBKU1NoYXJlZFdvcmtlcjo6dmlz
aXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewogICAgIEpT
U2hhcmVkV29ya2VyKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNTaGFyZWRXb3JrZXIqPihj
ZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3R5bGVTaGVl
dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRDdXN0
b20uY3BwCmluZGV4IDJkNzI2YWJiMTdmOGY0ZjM3NDgzYTVhNDAyM2FlM2EwYzY0ODBjY2UuLjVk
ZWZiY2MwMmE5YTYwODhlMDY0NTMyMGEzMjE2YzZmMjU5MWUyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3R5bGVTaGVldEN1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdHlsZVNoZWV0Q3VzdG9tLmNwcApAQCAtMzUsMTEgKzM1
LDYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lk
IEpTU3R5bGVTaGVldDo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZpc2l0b3Ip
Ci17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBKU1N0eWxl
U2hlZXQ6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikK
IHsKICAgICBKU1N0eWxlU2hlZXQqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1N0eWxlU2hl
ZXQqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVHJl
ZVdhbGtlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RyZWVXYWxr
ZXJDdXN0b20uY3BwCmluZGV4IDk1ZWRjMDVhNWE4MTY2N2NjNmExZjAyZWI4YTM3OWE3MTJkMTEw
MTguLjU3ZjIzYjBkMWM3ZWVlNzFkOTg2ZmE3OWNhOWNlMjY1NDE0ZjNkNmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVHJlZVdhbGtlckN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcApAQCAtMjks
MTEgKzI5LDYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci12b2lkIEpTVHJlZVdhbGtlcjo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZpc2l0b3ImIHZp
c2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0KLQogdm9pZCBK
U1RyZWVXYWxrZXI6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlz
aXRvcikKIHsKICAgICBKU1RyZWVXYWxrZXIqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1Ry
ZWVXYWxrZXIqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAppbmRleCAwZTQ3ZjUzMjI0
MWNmY2ZkNDY3MzlmMWY0MzZlYjMwOTQ4ZjM5ZjM4Li41NDg5YjhhOWIzMmYwNzYwNjk4ZWExYTkw
ZjZiNmZhNjdhYWZjYzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCkBAIC0xOTIsMTEgKzE5
Miw2IEBAIHN0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBXZWJHTEV4dGVuCiAgICAgcmV0dXJuIGpzTnVsbCgpOwogfQog
Ci12b2lkIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2aXNpdENoaWxkcmVuVmlydHVhbChTbG90
VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpOwot
fQotCiB2b2lkIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCog
Y2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgSlNXZWJHTFJlbmRlcmluZ0NvbnRl
eHQqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1dlYkdMUmVuZGVyaW5nQ29udGV4dCo+KGNl
bGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250
ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4
dEN1c3RvbS5jcHAKaW5kZXggZjkwMDQ5NjBiNDVkZjRiMWJmNWJmYjAyOTYzODgzYzcxYjNiNDA1
NC4uNjdmMmU5OWJhNjQwZTNjNjY1M2E3ZmRiZDY4Njc3OTVlY2YzYTdiNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwCkBA
IC01MywxMSArNTMsNiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXZvaWQgSlNXb3JrZXJDb250ZXh0Ojp2aXNpdENoaWxkcmVuVmlydHVhbChTbG90Vmlz
aXRvciYgdmlzaXRvcikKLXsKLSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpOwotfQot
CiB2b2lkIEpTV29ya2VyQ29udGV4dDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RW
aXNpdG9yJiB2aXNpdG9yKQogewogICAgIEpTV29ya2VyQ29udGV4dCogdGhpc09iamVjdCA9IHN0
YXRpY19jYXN0PEpTV29ya2VyQ29udGV4dCo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAppbmRleCA2MDkxMzgz
NjE2ODVhNTliNTUxMGFhNTVkMTQxYTJiMjQ5NTJhOWI5Li42MmY2MTY5OThhOGU3OGZjZTgwYjhk
ZTAyODRkMDcxODhlYzI2MDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcApAQCAtNTQsMTEgKzU0LDYgQEAgdXNpbmcg
bmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIEpTWE1MSHR0cFJl
cXVlc3Q6OnZpc2l0Q2hpbGRyZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAg
IHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7Ci19Ci0KIHZvaWQgSlNYTUxIdHRwUmVxdWVz
dDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewog
ICAgIEpTWE1MSHR0cFJlcXVlc3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU1hNTEh0dHBS
ZXF1ZXN0Kj4oY2VsbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1hQYXRoUmVzdWx0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBh
dGhSZXN1bHRDdXN0b20uY3BwCmluZGV4IDA5OTQyZjVlZWQwNGZkM2IxY2ZmZDEzNWQyYjE4Mjc5
YTFhNzA2YWUuLjIzNDFiNDNiZGZjOTk2ZDNiZGRiZmJlZWRiMTNhZmVhMGQxZjYyYWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFBhdGhSZXN1bHRDdXN0b20uY3Bw
CkBAIC0zNywxMSArMzcsNiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXZvaWQgSlNYUGF0aFJlc3VsdDo6dmlzaXRDaGlsZHJlblZpcnR1YWwoU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgdmlzaXRDaGlsZHJlbih0aGlzLCB2aXNpdG9yKTsKLX0K
LQogdm9pZCBKU1hQYXRoUmVzdWx0Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCiB7CiAgICAgSlNYUGF0aFJlc3VsdCogdGhpc09iamVjdCA9IHN0YXRp
Y19jYXN0PEpTWFBhdGhSZXN1bHQqPihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggNjg0ZjIzNzc5NGVkYjhhNGU0
MGI0OGIyYTAzMDVhY2VlM2I3Y2Y0OC4uMGFlN2UyYzRmNzRmM2VkNWYxOGE0MTBhMjQ2ZDU0N2Fk
ZjZhZjU2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KQEAgLTg3OCw3ICs4NzgsNiBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKIAog
ICAgICMgdmlzaXQgZnVuY3Rpb24KICAgICBpZiAoJG5lZWRzTWFya0NoaWxkcmVuKSB7Ci0gICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW5W
aXJ0dWFsKEpTQzo6U2xvdFZpc2l0b3ImKTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgSlNDOjpTbG90Vmlz
aXRvciYpO1xuXG4iKTsKICAgICAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6Ok92ZXJyaWRlc1Zp
c2l0Q2hpbGRyZW4ifSA9IDE7CiAgICAgfQpAQCAtMjIwMiwxMSArMjIwMSw2IEBAIHN1YiBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGlmICgkbmVl
ZHNNYXJrQ2hpbGRyZW4gJiYgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bU1hcmtGdW5jdGlvbiJ9KSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQg
JHtjbGFzc05hbWV9Ojp2aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYgdmlzaXRvcilc
biIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIHZpc2l0Q2hpbGRyZW4odGhpcywgdmlzaXRvcik7XG4i
KTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKLQogICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6dmlzaXRDaGlsZHJlbihK
U0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKVxuIik7CiAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgJHtjbGFzc05hbWV9KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8JHtjbGFzc05hbWV9Kj4o
Y2VsbCk7XG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9pbnN0
YW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwCmluZGV4
IDdkZTk4ZThkNDVkMTNjOWU1MTc1OTA2NjQ0NDE1MGE5OWFmNTk4NDguLjBkNjFhNjAyMjkwMmIw
Y2M2ZjU2NDkwMjI2ZTY0OTA1OWVhMzNiYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0
X2luc3RhbmNlLmNwcApAQCAtNjIsMTEgKzYyLDYgQEAgcHVibGljOgogICAgIAogICAgIHN0YXRp
YyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCi0gICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRy
ZW5WaXJ0dWFsKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotICAgIHsKLSAgICAgICAgdmlzaXRDaGls
ZHJlbih0aGlzLCB2aXNpdG9yKTsKLSAgICB9Ci0KICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxk
cmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiAgICAgewogICAgICAgICBR
dFJ1bnRpbWVPYmplY3QqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxRdFJ1bnRpbWVPYmplY3Qq
PihjZWxsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcAppbmRleCA2N2Zj
Y2ViYzE2ZWZlMmY3YjIyNDJhYzI0MDdkZDE2NWMxNThiZjJhLi41NTU3YjEzNjgyNWYwNTNlMzY3
NjI2MDQ1YWMzNmNjOGFhODhjMmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cXQvcXRfcnVudGltZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRp
bWUuY3BwCkBAIC0xNDM5LDExICsxNDM5LDYgQEAgdm9pZCBRdFJ1bnRpbWVNZXRhTWV0aG9kOjpm
aW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW4KICAg
ICBkLT5tX2FsbG93UHJpdmF0ZSA9IGFsbG93UHJpdmF0ZTsKIH0KIAotdm9pZCBRdFJ1bnRpbWVN
ZXRhTWV0aG9kOjp2aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYgdmlzaXRvcikKLXsK
LSAgICB2aXNpdENoaWxkcmVuKHRoaXMsIHZpc2l0b3IpOwotfQotCiB2b2lkIFF0UnVudGltZU1l
dGFNZXRob2Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRv
cikKIHsKICAgICBRdFJ1bnRpbWVNZXRhTWV0aG9kKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8
UXRSdW50aW1lTWV0YU1ldGhvZCo+KGNlbGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3F0L3F0X3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50
aW1lLmgKaW5kZXggODNlNWE2Yzk1MjkwZDMxOTAyNTQ3N2M5ZTQ1MTcxNjk3ZTcxN2Y4MS4uOWEy
NzYyOWU2ZGZjYjVhMDY5MzU4ZGFmMjg5YzNhYjkwMTViNDQwYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcXQvcXRfcnVudGltZS5oCkBAIC0xNjgsNyArMTY4LDYgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9w
ZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgRW51bWVyYXRpb25Nb2Rl
IG1vZGUgPSBFeGNsdWRlRG9udEVudW1Qcm9wZXJ0aWVzKTsKIAotICAgIHZpcnR1YWwgdm9pZCB2
aXNpdENoaWxkcmVuVmlydHVhbChTbG90VmlzaXRvciYpOwogICAgIHN0YXRpYyB2b2lkIHZpc2l0
Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAogcHJvdGVjdGVkOgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>