<?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>221380</bug_id>
          
          <creation_ts>2021-02-03 21:35:31 -0800</creation_ts>
          <short_desc>[JSC] Implement Object.entries in C++</short_desc>
          <delta_ts>2021-02-04 02:43:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1725486</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-03 21:35:31 -0800</bug_when>
    <thetext>[JSC] Implement Object.entries in C++</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725490</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-03 21:40:13 -0800</bug_when>
    <thetext>*** Bug 221233 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725491</commentid>
    <comment_count>2</comment_count>
      <attachid>419230</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-03 21:53:15 -0800</bug_when>
    <thetext>Created attachment 419230
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725497</commentid>
    <comment_count>3</comment_count>
      <attachid>419230</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-02-03 22:08:49 -0800</bug_when>
    <thetext>Comment on attachment 419230
Patch

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

Neatly done! r=me with nits.

&gt; Source/JavaScriptCore/runtime/ObjectConstructor.cpp:436
&gt; +        if (propertyName.isSymbol())

Given PropertyNameMode::Strings, I am pretty sure we can assert that `propertyName` is not a symbol.

&gt; Source/JavaScriptCore/runtime/ObjectConstructor.cpp:-410
&gt; -    auto addValue = [&amp;] (PropertyName propertyName) {

Since we are modifying the signature, maybe we should consider more descriptive name? add{Value,Entry} does not always add a value/entry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725499</commentid>
    <comment_count>4</comment_count>
      <attachid>419230</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-02-03 22:14:54 -0800</bug_when>
    <thetext>Comment on attachment 419230
Patch

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

&gt; Source/JavaScriptCore/runtime/ObjectConstructor.cpp:434
&gt; +    for (unsigned i = 0, numProperties = properties.size(); i &lt; numProperties; i++) {

I wonder if it&apos;s measurably faster than using `for (const auto&amp; propertyName : properties)`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725503</commentid>
    <comment_count>5</comment_count>
      <attachid>419230</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-03 22:26:22 -0800</bug_when>
    <thetext>Comment on attachment 419230
Patch

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

Thanks!

&gt;&gt; Source/JavaScriptCore/runtime/ObjectConstructor.cpp:434
&gt;&gt; +    for (unsigned i = 0, numProperties = properties.size(); i &lt; numProperties; i++) {
&gt; 
&gt; I wonder if it&apos;s measurably faster than using `for (const auto&amp; propertyName : properties)`?

I don&apos;t think there is any perf difference. Changed to for (const auto&amp; propertyName : properties).

&gt;&gt; Source/JavaScriptCore/runtime/ObjectConstructor.cpp:436
&gt;&gt; +        if (propertyName.isSymbol())
&gt; 
&gt; Given PropertyNameMode::Strings, I am pretty sure we can assert that `propertyName` is not a symbol.

Right! Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/ObjectConstructor.cpp:-410
&gt;&gt; -    auto addValue = [&amp;] (PropertyName propertyName) {
&gt; 
&gt; Since we are modifying the signature, maybe we should consider more descriptive name? add{Value,Entry} does not always add a value/entry.

OK, changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725504</commentid>
    <comment_count>6</comment_count>
      <attachid>419234</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-03 22:28:15 -0800</bug_when>
    <thetext>Created attachment 419234
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725505</commentid>
    <comment_count>7</comment_count>
      <attachid>419235</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-03 22:29:31 -0800</bug_when>
    <thetext>Created attachment 419235
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725509</commentid>
    <comment_count>8</comment_count>
      <attachid>419235</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-03 23:04:47 -0800</bug_when>
    <thetext>Comment on attachment 419235
Patch

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

&gt; Source/JavaScriptCore/runtime/ObjectConstructor.cpp:429
&gt; +        MarkedArgumentBuffer args;
&gt; +        args.append(jsOwnedString(vm, propertyName.uid()));
&gt; +        args.append(value);
&gt; +        JSArray* entry = constructArray(globalObject, static_cast&lt;ArrayAllocationProfile*&gt;(nullptr), args);

Slightly optimized it with

        {
            ObjectInitializationScope initializationScope(vm);
            if ((entry = JSArray::tryCreateUninitializedRestricted(initializationScope, nullptr, globalObject-&gt;arrayStructureForIndexingTypeDuringAllocation(ArrayWithContiguous), 2))) {
                entry-&gt;initializeIndex(initializationScope, 0, key);
                entry-&gt;initializeIndex(initializationScope, 1, value);
            }
        }
        if (!entry) {
            throwOutOfMemoryError(globalObject, scope);
            return;
        }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725510</commentid>
    <comment_count>9</comment_count>
      <attachid>419238</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-02-03 23:07:20 -0800</bug_when>
    <thetext>Created attachment 419238
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725567</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-04 02:42:27 -0800</bug_when>
    <thetext>Committed r272364: &lt;https://trac.webkit.org/changeset/272364&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 419238.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725568</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-04 02:43:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/73973248&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419230</attachid>
            <date>2021-02-03 21:53:15 -0800</date>
            <delta_ts>2021-02-03 22:10:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221380-20210203215314.patch</filename>
            <type>text/plain</type>
            <size>20069</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZmZiMzc0MGIzZGI1ZDVhNjY4MWYyOThjOTQ4YjM3Nzk5Yjc1MTkxLi5mMDM4N2JhN2E4YTMzYmQ2
MjY4MzkyYzJhNTAwODc2Njg1Y2I0ZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAyMS0wMi0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEltcGxlbWVudCBPYmplY3QuZW50cmllcyBpbiBDKysKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTM4MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1w
bGVtZW50cyBPYmplY3QuZW50cmllcyBpbiBDKysgYmVjYXVzZSBpdCBpcyBtb3JlIGVmZmljaWVu
dC4KKyAgICAgICAgSXQgaXMgbm90IHVzaW5nIGR5bmFtaWMgZmVhdHVyZSAobGlrZSwgY2FsbGlu
ZyBhIGNhbGxiYWNrKS4gQW5kIGluIEMrKywKKyAgICAgICAgd2UgY2FuIGF2b2lkIEpTQXJyYXkg
YWxsb2NhdGlvbnMgZm9yIEBPYmplY3QuQGdldE93blByb3BlcnR5TmFtZXMuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBhbHNvIHJlbW92ZXMgdW5uZWNlc3NhcnkgSlMgcHJpdmF0ZSBmdW5jdGlvbnMs
IEBwcm9wZXJ0eUlzRW51bWVyYWJsZSwKKyAgICAgICAgQGdldE93blByb3BlcnR5TmFtZXMsIGFu
ZCBAZW50cmllcy4KKworICAgICAgICAqIGJ1aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAgICAg
ICAqIGJ1aWx0aW5zL09iamVjdENvbnN0cnVjdG9yLmpzOgorICAgICAgICAoZW50cmllcyk6IERl
bGV0ZWQuCisgICAgICAgICogYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5oOgorICAgICAgICAq
IHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpBcnJheVByb3RvdHlw
ZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMu
aDoKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6
SlNHbG9iYWxPYmplY3Q6OmluaXQpOgorICAgICAgICAqIHJ1bnRpbWUvSlNUeXBlZEFycmF5Vmll
d1Byb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGU6
OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL01hcFByb3RvdHlwZS5jcHA6Cisg
ICAgICAgIChKU0M6Ok1hcFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1
bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1
Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04pOgorICAgICAgICAqIHJ1bnRpbWUvU2V0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpT
Qzo6U2V0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisKIDIwMjEtMDItMDMgIFl1c3VrZSBT
dXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBJbnNlcnQgUGhhbnRv
bUxvY2FsIGp1c3QgYmVmb3JlIFNldExvY2FsIGZvciB8dGhpc3wgdG8gZW5zdXJlIGxpdmVuZXNz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVz
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKaW5kZXgg
NjdlMzY0ZjJjNDY0ZDJjN2YxM2FiZTg0MDAxMzgzYmE2NzYxZWRiNy4uNTJiNDkwZmY3Y2ZlOGFm
MjI3YmI4YmUwOGFiYjE3MTE0OWUxZmZhYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
dWlsdGlucy9CdWlsdGluTmFtZXMuaApAQCAtNjYsNyArNjYsNiBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICBtYWNybyhjcmVhdGUpIFwKICAgICBtYWNybyhkZWZpbmVQcm9wZXJ0eSkgXAogICAgIG1h
Y3JvKGRlZmF1bHRQcm9taXNlVGhlbikgXAotICAgIG1hY3JvKGdldE93blByb3BlcnR5TmFtZXMp
IFwKICAgICBtYWNybyhTZXQpIFwKICAgICBtYWNybyh0aHJvd1R5cGVFcnJvckZ1bmN0aW9uKSBc
CiAgICAgbWFjcm8odHlwZWRBcnJheUxlbmd0aCkgXApAQCAtMTY5LDcgKzE2OCw2IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIG1hY3JvKG1ha2VCb3VuZEZ1bmN0aW9uKSBcCiAgICAgbWFjcm8oaGFz
T3duTGVuZ3RoUHJvcGVydHkpIFwKICAgICBtYWNybyhpbXBvcnRNb2R1bGUpIFwKLSAgICBtYWNy
byhwcm9wZXJ0eUlzRW51bWVyYWJsZSkgXAogICAgIG1hY3JvKGNvcHlEYXRhUHJvcGVydGllcykg
XAogICAgIG1hY3JvKG1ldGEpIFwKICAgICBtYWNybyh3ZWJBc3NlbWJseUNvbXBpbGVTdHJlYW1p
bmdJbnRlcm5hbCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L09iamVjdENvbnN0cnVjdG9yLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL09i
amVjdENvbnN0cnVjdG9yLmpzCmluZGV4IGFmNDU2YzQ2MGEzNTA1NDkyYjFkMjMxMWI1ZGNkYjZl
MTgwZWZjMGMuLjA1NWEzYzNiM2Q4MGVjMWE2ZTk5NWFkOWQ3MTc1M2YxNmM3Y2IyODEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9PYmplY3RDb25zdHJ1Y3Rvci5q
cworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvT2JqZWN0Q29uc3RydWN0b3Iu
anMKQEAgLTI1LDIyICsyNSw2IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLWZ1bmN0aW9uIGVu
dHJpZXMob2JqZWN0KQotewotICAgICJ1c2Ugc3RyaWN0IjsKLQotICAgIHZhciBvYmogPSBAdG9P
YmplY3Qob2JqZWN0LCAiT2JqZWN0LmVudHJpZXMgcmVxdWlyZXMgdGhhdCBpbnB1dCBwYXJhbWV0
ZXIgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkIik7Ci0gICAgdmFyIG5hbWVzID0gQE9iamVjdC5A
Z2V0T3duUHJvcGVydHlOYW1lcyhvYmopOwotICAgIHZhciBwcm9wZXJ0aWVzID0gW107Ci0gICAg
Zm9yICh2YXIgaSA9IDAsIGxlbmd0aCA9IG5hbWVzLmxlbmd0aDsgaSA8IGxlbmd0aDsgKytpKSB7
Ci0gICAgICAgIHZhciBuYW1lID0gbmFtZXNbaV07Ci0gICAgICAgIGlmIChAcHJvcGVydHlJc0Vu
dW1lcmFibGUob2JqLCBuYW1lKSkKLSAgICAgICAgICAgIEBhcnJheVB1c2gocHJvcGVydGllcywg
W25hbWUsIG9ialtuYW1lXV0pOwotICAgIH0KLQotICAgIHJldHVybiBwcm9wZXJ0aWVzOwotfQot
CiBmdW5jdGlvbiBmcm9tRW50cmllcyhpdGVyYWJsZSkKIHsKICAgICAidXNlIHN0cmljdCI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFu
dC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xpbmtUaW1lQ29uc3RhbnQuaApp
bmRleCBlMDI5MjU2NDlmZDNhMWJhZTBlZjg3ZGMxNWFjZmNmZDA1YWM4N2ExLi4yZWFiMGYwMzk5
MGNlNWE0ZjcyYzhlNjZmNjIwYTU2MDM4MzNkYzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9MaW5rVGltZUNvbnN0YW50LmgKQEAgLTQ0LDcgKzQ0LDYgQEAgY2xh
c3MgSlNHbG9iYWxPYmplY3Q7CiAgICAgdihzZXRCdWNrZXROZXh0LCBudWxscHRyKSBcCiAgICAg
dihzZXRCdWNrZXRLZXksIG51bGxwdHIpIFwKICAgICB2KHNldFByb3RvdHlwZURpcmVjdCwgbnVs
bHB0cikgXAotICAgIHYocHJvcGVydHlJc0VudW1lcmFibGUsIG51bGxwdHIpIFwKICAgICB2KGNv
cHlEYXRhUHJvcGVydGllcywgbnVsbHB0cikgXAogICAgIHYoZW5xdWV1ZUpvYiwgbnVsbHB0cikg
XAogICAgIHYobWFrZVR5cGVFcnJvciwgbnVsbHB0cikgXApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCmluZGV4IGJmZmZjODdiZjRhYzg4Y2I0
NGE0MDkyY2U3NGE5MzgzYTc3OTI5OWIuLjBmNWMxNjE2ZTQxMjg3NjI1ZmM4MTc4YzM5Y2U5YWU4
ODNhNDIzZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5
UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVBy
b3RvdHlwZS5jcHAKQEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lkIEFycmF5UHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgSlND
X0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1
aWx0aW5OYW1lcygpLnJlZHVjZVJpZ2h0UHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZVJlZHVj
ZVJpZ2h0Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSkpOwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5tYXBQdWJsaWNOYW1lKCksIGFy
cmF5UHJvdG90eXBlTWFwQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNU
SU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5r
ZXlzUHVibGljTmFtZSgpLCBhcnJheVByb3RvRnVuY0tleXMsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwLCBBcnJheUtleXNJbnRyaW5zaWMpOwot
ICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5lbnRyaWVzUHVibGljTmFtZSgpLCBhcnJheVBy
b3RvRnVuY0VudHJpZXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pLCAwLCBBcnJheUVudHJpZXNJbnRyaW5zaWMpOworICAgIEpTQ19OQVRJVkVfSU5U
UklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5lbnRy
aWVzLCBhcnJheVByb3RvRnVuY0VudHJpZXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwLCBBcnJheUVudHJpZXNJbnRyaW5zaWMpOwogICAgIEpT
Q19CVUlMVElOX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5maW5kUHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZUZpbmRDb2RlR2Vu
ZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSk7CiAgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZpbmRJbmRleFB1YmxpY05hbWUoKSwgYXJyYXlQcm90
b3R5cGVGaW5kSW5kZXhDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9V
VF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmluY2x1ZGVzUHVi
bGljTmFtZSgpLCBhcnJheVByb3RvdHlwZUluY2x1ZGVzQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwpAQCAtMTE0LDcgKzEx
NCw2IEBAIHZvaWQgQXJyYXlQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBpZiAoT3B0aW9uczo6dXNlQXRNZXRob2QoKSkK
ICAgICAgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmF0UHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZUF0
Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSkpOwogCi0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJpZXNQcml2YXRlTmFtZSgpLCBnZXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJpZXNQdWJsaWNOYW1lKCkp
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CiAg
ICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLmZvckVhY2hQcml2YXRlTmFtZSgpLCBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZvckVhY2hQdWJsaWNOYW1lKCkpLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CiAgICAgcHV0RGlyZWN0V2l0
aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmtleXNQ
cml2YXRlTmFtZSgpLCBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1l
cygpLmtleXNQdWJsaWNOYW1lKCkpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5KSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZt
LnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnZhbHVlc1ByaXZhdGVOYW1lKCksIGdsb2Jh
bE9iamVjdC0+YXJyYXlQcm90b1ZhbHVlc0Z1bmN0aW9uKCksIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKQEAgLTEyMyw3ICsxMjIsNyBAQCB2b2lk
IEFycmF5UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCiAgICAgdW5zY29wYWJsZXMtPmNvbnZlcnRUb0RpY3Rpb25hcnkodm0pOwog
ICAgIGNvbnN0IElkZW50aWZpZXIqIGNvbnN0IHVuc2NvcGFibGVOYW1lc1tdID0gewogICAgICAg
ICAmdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuY29weVdpdGhpblB1YmxpY05hbWUo
KSwKLSAgICAgICAgJnZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJpZXNQdWJs
aWNOYW1lKCksCisgICAgICAgICZ2bS5wcm9wZXJ0eU5hbWVzLT5lbnRyaWVzLAogICAgICAgICAm
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZmlsbFB1YmxpY05hbWUoKSwKICAgICAg
ICAgJnZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZpbmRQdWJsaWNOYW1lKCksCiAg
ICAgICAgICZ2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5maW5kSW5kZXhQdWJsaWNO
YW1lKCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25J
ZGVudGlmaWVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRp
ZmllcnMuaAppbmRleCBjMGZhMjI4NzY0NDQxYWQ2YTYzYTRlMDZkY2YwNGNiNWE0N2FiOWYxLi4w
OWRjZjljNThhMGM4OWY3ZTc5OGRlMzVmMTU1MTZlNzUyNWJiNjUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKQEAgLTEwNiw2ICsx
MDYsNyBAQAogICAgIG1hY3JvKGRpc3BsYXlOYW1lKSBcCiAgICAgbWFjcm8oZG9uZSkgXAogICAg
IG1hY3JvKGRvdEFsbCkgXAorICAgIG1hY3JvKGVudHJpZXMpIFwKICAgICBtYWNybyhlbnVtZXJh
YmxlKSBcCiAgICAgbWFjcm8oZXJhKSBcCiAgICAgbWFjcm8oZXJyb3JzKSBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggM2YwOGU3
YmRiMGVjMTZkMTk4MGQ4ODU3NGI4YmQwNDM3MWQ0NjdjMC4uM2ZmYzdhNGE1ZGYzMGY3ZjA5NGIx
YWNjMjRjZTk1Mzg0MDk5MzM5MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMTE4Nyw5ICsxMTg3LDYgQEAgY2FwaXRhbE5hbWUg
IyMgQ29uc3RydWN0b3IqIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3RvciA9IGZlYXR1cmVGbGFnID8g
Y2FwaXRhbE5hbWUKICAgICBtX2xpbmtUaW1lQ29uc3RhbnRzW3N0YXRpY19jYXN0PHVuc2lnbmVk
PihMaW5rVGltZUNvbnN0YW50OjppbXBvcnRNb2R1bGUpXS5pbml0TGF0ZXIoW10gKGNvbnN0IElu
aXRpYWxpemVyPEpTQ2VsbD4mIGluaXQpIHsKICAgICAgICAgICAgIGluaXQuc2V0KEpTRnVuY3Rp
b246OmNyZWF0ZShpbml0LnZtLCBqc0Nhc3Q8SlNHbG9iYWxPYmplY3QqPihpbml0Lm93bmVyKSwg
MCwgU3RyaW5nKCksIGdsb2JhbEZ1bmNJbXBvcnRNb2R1bGUpKTsKICAgICAgICAgfSk7Ci0gICAg
bV9saW5rVGltZUNvbnN0YW50c1tzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTGlua1RpbWVDb25zdGFu
dDo6cHJvcGVydHlJc0VudW1lcmFibGUpXS5pbml0TGF0ZXIoW10gKGNvbnN0IEluaXRpYWxpemVy
PEpTQ2VsbD4mIGluaXQpIHsKLSAgICAgICAgICAgIGluaXQuc2V0KEpTRnVuY3Rpb246OmNyZWF0
ZShpbml0LnZtLCBqc0Nhc3Q8SlNHbG9iYWxPYmplY3QqPihpbml0Lm93bmVyKSwgMCwgU3RyaW5n
KCksIGdsb2JhbEZ1bmNQcm9wZXJ0eUlzRW51bWVyYWJsZSkpOwotICAgICAgICB9KTsKICAgICBt
X2xpbmtUaW1lQ29uc3RhbnRzW3N0YXRpY19jYXN0PHVuc2lnbmVkPihMaW5rVGltZUNvbnN0YW50
Ojpjb3B5RGF0YVByb3BlcnRpZXMpXS5pbml0TGF0ZXIoW10gKGNvbnN0IEluaXRpYWxpemVyPEpT
Q2VsbD4mIGluaXQpIHsKICAgICAgICAgICAgIGluaXQuc2V0KEpTRnVuY3Rpb246OmNyZWF0ZShp
bml0LnZtLCBqc0Nhc3Q8SlNHbG9iYWxPYmplY3QqPihpbml0Lm93bmVyKSwgMiwgU3RyaW5nKCks
IGdsb2JhbEZ1bmNDb3B5RGF0YVByb3BlcnRpZXMpKTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90
b3R5cGUuY3BwCmluZGV4IDdjZjk2OTE3YjE5Y2EwZGI2Njk4ZmU2M2Y1YWU4MGRlNmY1M2ZiODcu
LmNkZmZiY2QxY2E5ZWUyM2ZhZWNhYTcyZjVkNjdhNzI5MTA5MDgwMDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90
b3R5cGUuY3BwCkBAIC00NDgsNyArNDQ4LDcgQEAgdm9pZCBKU1R5cGVkQXJyYXlWaWV3UHJvdG90
eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAg
ICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImV2ZXJ5IiwgdHlwZWRB
cnJheVByb3RvdHlwZUV2ZXJ5Q29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogICAgIEpTQ19CVUlMVElOX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTigiZmlsdGVyIiwgdHlwZWRBcnJheVByb3RvdHlwZUZpbHRlckNvZGVH
ZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pKTsKICAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInNvcnQi
LCB0eXBlZEFycmF5UHJvdG90eXBlU29ydENvZGVHZW5lcmF0b3IsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKLSAgICBKU0NfTkFUSVZFX0lOVFJJ
TlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRp
bk5hbWVzKCkuZW50cmllc1B1YmxpY05hbWUoKSwgdHlwZWRBcnJheVByb3RvVmlld0Z1bmNFbnRy
aWVzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
MCwgVHlwZWRBcnJheUVudHJpZXNJbnRyaW5zaWMpOworICAgIEpTQ19OQVRJVkVfSU5UUklOU0lD
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5lbnRyaWVzLCB0
eXBlZEFycmF5UHJvdG9WaWV3RnVuY0VudHJpZXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwLCBUeXBlZEFycmF5RW50cmllc0ludHJpbnNpYyk7
CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImluY2x1ZGVzIiwg
dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmNsdWRlcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05f
V0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmZpbGxQ
dWJsaWNOYW1lKCksIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jRmlsbCwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEpOwogICAgIEpTQ19CVUlMVElO
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZmluZCIsIHR5cGVkQXJyYXlQcm90b3R5cGVG
aW5kQ29kZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TWFwUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcFByb3Rv
dHlwZS5jcHAKaW5kZXggNGZhZTZhOTM0ZDdiMzM2NzEyMTc3NjkyMzgxOTQyNjQ3YTZhZDhjNC4u
N2FlMThmZGZiNzZmYmVmNzY0MTZmOWM1YmJmYzEyZTRlZGI0YTViMSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBQcm90b3R5cGUuY3BwCkBAIC03MCw4ICs3MCw4IEBA
IHZvaWQgTWFwUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCiAgICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9V
VF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdldFByaXZhdGVO
YW1lKCksIG1hcFByb3RvRnVuY0dldCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSksIDEsIEpTTWFwR2V0SW50cmluc2ljKTsKICAgICBKU0NfTkFUSVZF
X0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+
YnVpbHRpbk5hbWVzKCkuc2V0UHJpdmF0ZU5hbWUoKSwgbWFwUHJvdG9GdW5jU2V0LCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMiwgSlNNYXBTZXRJ
bnRyaW5zaWMpOwogCi0gICAgSlNGdW5jdGlvbiogZW50cmllcyA9IEpTRnVuY3Rpb246OmNyZWF0
ZSh2bSwgZ2xvYmFsT2JqZWN0LCAwLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5l
bnRyaWVzUHVibGljTmFtZSgpLnN0cmluZygpLCBtYXBQcm90b0Z1bmNFbnRyaWVzLCBKU01hcEVu
dHJpZXNJbnRyaW5zaWMpOwotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5lbnRyaWVzUHVibGljTmFtZSgpLCBlbnRyaWVz
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7Cisg
ICAgSlNGdW5jdGlvbiogZW50cmllcyA9IEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCAwLCB2bS5wcm9wZXJ0eU5hbWVzLT5lbnRyaWVzLnN0cmluZygpLCBtYXBQcm90b0Z1bmNF
bnRyaWVzLCBKU01hcEVudHJpZXNJbnRyaW5zaWMpOworICAgIHB1dERpcmVjdFdpdGhvdXRUcmFu
c2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5lbnRyaWVzLCBlbnRyaWVzLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAgICAgcHV0RGlyZWN0
V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sLCBl
bnRyaWVzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSk7CiAgICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcApp
bmRleCBiZmFlNTNlMDMxN2UyNDgyZTMwYjE0MjkyNjYzYmYxNGUzZDhjZDMxLi40OTkzYjYyOTg0
MGFiZTI0MDFlNDA1Y2Q4MTQ3MDIwNzAwMWZiN2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCkBAIC0zMiw2ICszMiw3IEBA
CiBuYW1lc3BhY2UgSlNDIHsKIAogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2Jq
ZWN0Q29uc3RydWN0b3JBc3NpZ24pOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
b2JqZWN0Q29uc3RydWN0b3JFbnRyaWVzKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKG9iamVjdENvbnN0cnVjdG9yVmFsdWVzKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKG9iamVjdENvbnN0cnVjdG9yR2V0UHJvdG90eXBlT2YpOwogc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JTZXRQcm90b3R5cGVPZik7CkBAIC03
Niw3ICs3Nyw3IEBAIGNvbnN0IENsYXNzSW5mbyBPYmplY3RDb25zdHJ1Y3Rvcjo6c19pbmZvID0g
eyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pCiAgIGlzICAgICAgICAgICAgICAg
ICAgICAgICAgb2JqZWN0Q29uc3RydWN0b3JJcyAgICAgICAgICAgICAgICAgICAgICAgICBEb250
RW51bXxGdW5jdGlvbiAyIE9iamVjdElzSW50cmluc2ljCiAgIGFzc2lnbiAgICAgICAgICAgICAg
ICAgICAgb2JqZWN0Q29uc3RydWN0b3JBc3NpZ24gICAgICAgICAgICAgICAgICAgICBEb250RW51
bXxGdW5jdGlvbiAyCiAgIHZhbHVlcyAgICAgICAgICAgICAgICAgICAgb2JqZWN0Q29uc3RydWN0
b3JWYWx1ZXMgICAgICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCi0gIGVudHJp
ZXMgICAgICAgICAgICAgICAgICAgSlNCdWlsdGluICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCisgIGVudHJpZXMgICAgICAgICAgICAgICAgICAg
b2JqZWN0Q29uc3RydWN0b3JFbnRyaWVzICAgICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5j
dGlvbiAxCiAgIGZyb21FbnRyaWVzICAgICAgICAgICAgICAgSlNCdWlsdGluICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCiBAZW5kCiAqLwpAQCAt
OTgsNyArOTksNiBAQCB2b2lkIE9iamVjdENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE9iagogCiAgICAgSlNDX05BVElWRV9G
VU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkuY3JlYXRlUHJpdmF0ZU5hbWUoKSwgb2JqZWN0Q29uc3RydWN0b3JDcmVhdGUsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAyKTsKICAgICBKU0Nf
TkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5kZWZpbmVQcm9wZXJ0eVByaXZhdGVOYW1lKCksIG9iamVjdENvbnN0cnVjdG9y
RGVmaW5lUHJvcGVydHksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pLCAzKTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElP
Tih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZXRPd25Qcm9wZXJ0eU5hbWVzUHJp
dmF0ZU5hbWUoKSwgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eU5hbWVzLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CiB9CiAKIC8v
IEVTIDE5LjEuMS4xIE9iamVjdChbdmFsdWVdKQpAQCAtMzg4LDYgKzM4OCw2MSBAQCBKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JBc3NpZ24sIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGFyZ2V0KTsKIH0K
IAorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9yRW50cmllcywgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOworCisgICAgSlNWYWx1ZSB0YXJnZXRWYWx1ZSA9IGNhbGxGcmFtZS0+
YXJndW1lbnQoMCk7CisgICAgaWYgKHRhcmdldFZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCisg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJPYmpl
Y3QuZW50cmllcyByZXF1aXJlcyB0aGF0IGlucHV0IHBhcmFtZXRlciBub3QgYmUgbnVsbCBvciB1
bmRlZmluZWQiX3MpOworICAgIEpTT2JqZWN0KiB0YXJnZXQgPSB0YXJnZXRWYWx1ZS50b09iamVj
dChnbG9iYWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisK
KyAgICBKU0FycmF5KiBlbnRyaWVzID0gY29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxPYmplY3Qs
IG51bGxwdHIpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBQ
cm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0aWVzKHZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdz
LCBQcml2YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSk7CisgICAgdGFyZ2V0LT5tZXRob2RUYWJsZSh2
bSktPmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0LCBnbG9iYWxPYmplY3QsIHByb3BlcnRpZXMs
IERvbnRFbnVtUHJvcGVydGllc01vZGU6OkluY2x1ZGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHsgfSk7CisKKyAgICB1bnNpZ25lZCBpbmRleCA9IDA7CisgICAgYXV0byBhZGRF
bnRyeSA9IFsmXSAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHBy
b3BlcnR5TmFtZSkgeworICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCh0YXJnZXQsIFByb3BlcnR5
U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXRPd25Qcm9wZXJ0eSk7CisgICAgICAgIGJvb2wg
aGFzUHJvcGVydHkgPSB0YXJnZXQtPm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVydHlTbG90
KHRhcmdldCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOworICAgICAgICBpZiAoIWhhc1Byb3BlcnR5
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoc2xvdC5hdHRyaWJ1dGVzKCkgJiBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgSlNWYWx1ZSB2YWx1ZTsKKyAgICAgICAgaWYgKExJS0VMWSghc2xvdC5pc1RhaW50ZWRCeU9w
YXF1ZU9iamVjdCgpKSkKKyAgICAgICAgICAgIHZhbHVlID0gc2xvdC5nZXRWYWx1ZShnbG9iYWxP
YmplY3QsIHByb3BlcnR5TmFtZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHZhbHVlID0g
dGFyZ2V0LT5nZXQoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpOworICAgICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOworCisgICAgICAgIE1hcmtlZEFyZ3VtZW50QnVm
ZmVyIGFyZ3M7CisgICAgICAgIGFyZ3MuYXBwZW5kKGpzT3duZWRTdHJpbmcodm0sIHByb3BlcnR5
TmFtZS51aWQoKSkpOworICAgICAgICBhcmdzLmFwcGVuZCh2YWx1ZSk7CisgICAgICAgIEpTQXJy
YXkqIGVudHJ5ID0gY29uc3RydWN0QXJyYXkoZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxBcnJh
eUFsbG9jYXRpb25Qcm9maWxlKj4obnVsbHB0ciksIGFyZ3MpOworICAgICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOworICAgICAgICBlbnRyaWVzLT5wdXREaXJlY3RJbmRl
eChnbG9iYWxPYmplY3QsIGluZGV4KyssIGVudHJ5KTsKKyAgICB9OworCisgICAgZm9yICh1bnNp
Z25lZCBpID0gMCwgbnVtUHJvcGVydGllcyA9IHByb3BlcnRpZXMuc2l6ZSgpOyBpIDwgbnVtUHJv
cGVydGllczsgaSsrKSB7CisgICAgICAgIGNvbnN0IGF1dG8mIHByb3BlcnR5TmFtZSA9IHByb3Bl
cnRpZXNbaV07CisgICAgICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworCisgICAgICAgIGFkZEVudHJ5KGdsb2JhbE9iamVjdCwgcHJvcGVydHlO
YW1lKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKyAgICB9CisK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGVudHJpZXMpOworfQorCiBKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JWYWx1ZXMsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwpAQCAtNDA3LDcgKzQ2Miw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihvYmplY3RDb25zdHJ1Y3RvclZhbHVlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAgIHVuc2lnbmVkIGlu
ZGV4ID0gMDsKLSAgICBhdXRvIGFkZFZhbHVlID0gWyZdIChQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YW1lKSB7CisgICAgYXV0byBhZGRWYWx1ZSA9IFsmXSAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkgewogICAgICAgICBQcm9wZXJ0eVNsb3Qg
c2xvdCh0YXJnZXQsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXRPd25Qcm9w
ZXJ0eSk7CiAgICAgICAgIGJvb2wgaGFzUHJvcGVydHkgPSB0YXJnZXQtPm1ldGhvZFRhYmxlKHZt
KS0+Z2V0T3duUHJvcGVydHlTbG90KHRhcmdldCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwpAQCAt
NDMxLDcgKzQ4Niw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3Rv
clZhbHVlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgICAgIGlmIChwcm9w
ZXJ0eU5hbWUuaXNTeW1ib2woKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGFk
ZFZhbHVlKHByb3BlcnR5TmFtZSk7CisgICAgICAgIGFkZFZhbHVlKGdsb2JhbE9iamVjdCwgcHJv
cGVydHlOYW1lKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldFByb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRQcm90b3R5cGUuY3Bw
CmluZGV4IDMzYTA0OTFjNjU0NTc2YjUzMTUzNzRmNmM0ZTBkYmY3OGI3N2QwNzYuLjJlMTQwYjUw
ZGMxYjVhZGIzZTAwYWIzMGY2OTI1ZDM4ZDE0Y2Q4NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NldFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2V0UHJvdG90eXBlLmNwcApAQCAtNjEsNyArNjEsNyBAQCB2b2lkIFNl
dFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnBy
b3BlcnR5TmFtZXMtPmNsZWFyLCBzZXRQcm90b0Z1bmNDbGVhciwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDApOwogICAgIEpTQ19OQVRJVkVfRlVO
Q1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmRlbGV0ZUtleXdvcmQs
IHNldFByb3RvRnVuY0RlbGV0ZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSksIDEpOwogICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5oYXMsIHNldFByb3RvRnVuY0hhcywg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEsIEpT
U2V0SGFzSW50cmluc2ljKTsKLSAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZW50cmllc1B1
YmxpY05hbWUoKSwgc2V0UHJvdG9GdW5jRW50cmllcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDAsIEpTU2V0RW50cmllc0ludHJpbnNpYyk7Cisg
ICAgSlNDX05BVElWRV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnBy
b3BlcnR5TmFtZXMtPmVudHJpZXMsIHNldFByb3RvRnVuY0VudHJpZXMsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAwLCBKU1NldEVudHJpZXNJbnRy
aW5zaWMpOwogICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5oYXNQcml2YXRlTmFtZSgpLCBz
ZXRQcm90b0Z1bmNIYXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pLCAxLCBKU1NldEhhc0ludHJpbnNpYyk7CiAgICAgSlNDX05BVElWRV9JTlRSSU5T
SUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLmFkZFByaXZhdGVOYW1lKCksIHNldFByb3RvRnVuY0FkZCwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDEsIEpTU2V0QWRkSW50cmluc2lj
KTsKIAo=
</data>
<flag name="review"
          id="437416"
          type_id="1"
          status="+"
          setter="ashvayka"
    />
    <flag name="commit-queue"
          id="437419"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419234</attachid>
            <date>2021-02-03 22:28:15 -0800</date>
            <delta_ts>2021-02-03 22:29:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221380-20210203222814.patch</filename>
            <type>text/plain</type>
            <size>12365</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZmZiMzc0MGIzZGI1ZDVhNjY4MWYyOThjOTQ4YjM3Nzk5Yjc1MTkxLi5iMWVhMmMyMTNlYWJjODAz
N2M2Mjg0OTQwNjBiZDMyYTliYTRjODQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMS0wMi0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEltcGxlbWVudCBPYmplY3QuZW50cmllcyBpbiBDKysKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTM4MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IEFsZXhleSBTaHZheWthLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1w
bGVtZW50cyBPYmplY3QuZW50cmllcyBpbiBDKysgYmVjYXVzZSBpdCBpcyBtb3JlIGVmZmljaWVu
dC4KKyAgICAgICAgSXQgaXMgbm90IHVzaW5nIGR5bmFtaWMgZmVhdHVyZSAobGlrZSwgY2FsbGlu
ZyBhIGNhbGxiYWNrKS4gQW5kIGluIEMrKywKKyAgICAgICAgd2UgY2FuIGF2b2lkIEpTQXJyYXkg
YWxsb2NhdGlvbnMgZm9yIEBPYmplY3QuQGdldE93blByb3BlcnR5TmFtZXMuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBhbHNvIHJlbW92ZXMgdW5uZWNlc3NhcnkgSlMgcHJpdmF0ZSBmdW5jdGlvbnMs
IEBwcm9wZXJ0eUlzRW51bWVyYWJsZSwKKyAgICAgICAgQGdldE93blByb3BlcnR5TmFtZXMsIGFu
ZCBAZW50cmllcy4KKworICAgICAgICAqIGJ1aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAgICAg
ICAqIGJ1aWx0aW5zL09iamVjdENvbnN0cnVjdG9yLmpzOgorICAgICAgICAoZW50cmllcyk6IERl
bGV0ZWQuCisgICAgICAgICogYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5oOgorICAgICAgICAq
IHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpBcnJheVByb3RvdHlw
ZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3Bw
OgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6aW5pdCk6CisgICAgICAgICogcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9y
OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tik6CisKIDIwMjEtMDItMDMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbSlNDXSBJbnNlcnQgUGhhbnRvbUxvY2FsIGp1c3QgYmVmb3JlIFNldExvY2FsIGZv
ciB8dGhpc3wgdG8gZW5zdXJlIGxpdmVuZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVp
bHRpbnMvQnVpbHRpbk5hbWVzLmgKaW5kZXggNjdlMzY0ZjJjNDY0ZDJjN2YxM2FiZTg0MDAxMzgz
YmE2NzYxZWRiNy4uNjZiYmQzODgzYmM5ZTU3ZWM1YjAzZWI2NTJmYTVlYzM1ZGI5MDkwMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaApAQCAtNjYs
NyArNjYsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBtYWNybyhjcmVhdGUpIFwKICAgICBtYWNy
byhkZWZpbmVQcm9wZXJ0eSkgXAogICAgIG1hY3JvKGRlZmF1bHRQcm9taXNlVGhlbikgXAotICAg
IG1hY3JvKGdldE93blByb3BlcnR5TmFtZXMpIFwKICAgICBtYWNybyhTZXQpIFwKICAgICBtYWNy
byh0aHJvd1R5cGVFcnJvckZ1bmN0aW9uKSBcCiAgICAgbWFjcm8odHlwZWRBcnJheUxlbmd0aCkg
XApAQCAtMTY5LDcgKzE2OCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIG1hY3JvKG1ha2VCb3Vu
ZEZ1bmN0aW9uKSBcCiAgICAgbWFjcm8oaGFzT3duTGVuZ3RoUHJvcGVydHkpIFwKICAgICBtYWNy
byhpbXBvcnRNb2R1bGUpIFwKLSAgICBtYWNybyhwcm9wZXJ0eUlzRW51bWVyYWJsZSkgXAogICAg
IG1hY3JvKGNvcHlEYXRhUHJvcGVydGllcykgXAogICAgIG1hY3JvKG1ldGEpIFwKICAgICBtYWNy
byh3ZWJBc3NlbWJseUNvbXBpbGVTdHJlYW1pbmdJbnRlcm5hbCkgXApAQCAtMTc3LDYgKzE3NSw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIG1hY3JvKGluc3RhbmNlRmllbGRJbml0aWFsaXplcikg
XAogICAgIG1hY3JvKGhhc093blByb3BlcnR5RnVuY3Rpb24pIFwKICAgICBtYWNybyhjcmVhdGVQ
cml2YXRlU3ltYm9sKSBcCisgICAgbWFjcm8oZW50cmllcykgXAogCiAKIG5hbWVzcGFjZSBTeW1i
b2xzIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9PYmplY3RD
b25zdHJ1Y3Rvci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9PYmplY3RDb25z
dHJ1Y3Rvci5qcwppbmRleCBhZjQ1NmM0NjBhMzUwNTQ5MmIxZDIzMTFiNWRjZGI2ZTE4MGVmYzBj
Li4wNTVhM2MzYjNkODBlYzFhNmU5OTVhZDlkNzE3NTNmMTZjN2NiMjgxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvT2JqZWN0Q29uc3RydWN0b3IuanMKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL09iamVjdENvbnN0cnVjdG9yLmpzCkBAIC0y
NSwyMiArMjUsNiBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1mdW5jdGlvbiBlbnRyaWVzKG9i
amVjdCkKLXsKLSAgICAidXNlIHN0cmljdCI7Ci0KLSAgICB2YXIgb2JqID0gQHRvT2JqZWN0KG9i
amVjdCwgIk9iamVjdC5lbnRyaWVzIHJlcXVpcmVzIHRoYXQgaW5wdXQgcGFyYW1ldGVyIG5vdCBi
ZSBudWxsIG9yIHVuZGVmaW5lZCIpOwotICAgIHZhciBuYW1lcyA9IEBPYmplY3QuQGdldE93blBy
b3BlcnR5TmFtZXMob2JqKTsKLSAgICB2YXIgcHJvcGVydGllcyA9IFtdOwotICAgIGZvciAodmFy
IGkgPSAwLCBsZW5ndGggPSBuYW1lcy5sZW5ndGg7IGkgPCBsZW5ndGg7ICsraSkgewotICAgICAg
ICB2YXIgbmFtZSA9IG5hbWVzW2ldOwotICAgICAgICBpZiAoQHByb3BlcnR5SXNFbnVtZXJhYmxl
KG9iaiwgbmFtZSkpCi0gICAgICAgICAgICBAYXJyYXlQdXNoKHByb3BlcnRpZXMsIFtuYW1lLCBv
YmpbbmFtZV1dKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcHJvcGVydGllczsKLX0KLQogZnVuY3Rp
b24gZnJvbUVudHJpZXMoaXRlcmFibGUpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xpbmtUaW1lQ29uc3RhbnQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MaW5rVGltZUNvbnN0YW50LmgKaW5kZXggZTAy
OTI1NjQ5ZmQzYTFiYWUwZWY4N2RjMTVhY2ZjZmQwNWFjODdhMS4uMmVhYjBmMDM5OTBjZTVhNGY3
MmM4ZTY2ZjYyMGE1NjAzODMzZGMwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0xpbmtUaW1lQ29uc3RhbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5oCkBAIC00NCw3ICs0NCw2IEBAIGNsYXNzIEpTR2xv
YmFsT2JqZWN0OwogICAgIHYoc2V0QnVja2V0TmV4dCwgbnVsbHB0cikgXAogICAgIHYoc2V0QnVj
a2V0S2V5LCBudWxscHRyKSBcCiAgICAgdihzZXRQcm90b3R5cGVEaXJlY3QsIG51bGxwdHIpIFwK
LSAgICB2KHByb3BlcnR5SXNFbnVtZXJhYmxlLCBudWxscHRyKSBcCiAgICAgdihjb3B5RGF0YVBy
b3BlcnRpZXMsIG51bGxwdHIpIFwKICAgICB2KGVucXVldWVKb2IsIG51bGxwdHIpIFwKICAgICB2
KG1ha2VUeXBlRXJyb3IsIG51bGxwdHIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAppbmRleCBiZmZmYzg3YmY0YWM4OGNiNDRhNDA5MmNl
NzRhOTM4M2E3NzkyOTliLi5mYmE2ZDdjZDc3MjMzZDVhNGZhM2FkMTM5YWM4NDJhYWQ2ODNiYmM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlw
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUu
Y3BwCkBAIC0xMTQsNyArMTE0LDYgQEAgdm9pZCBBcnJheVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIGlmIChPcHRpb25z
Ojp1c2VBdE1ldGhvZCgpKQogICAgICAgICBKU0NfQlVJTFRJTl9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuYXRQdWJsaWNOYW1lKCks
IGFycmF5UHJvdG90eXBlQXRDb2RlR2VuZXJhdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiAKLSAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNp
dGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZW50cmllc1ByaXZhdGVO
YW1lKCksIGdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZW50
cmllc1B1YmxpY05hbWUoKSksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0
ZTo6UmVhZE9ubHkpKTsKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJv
cGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZm9yRWFjaFByaXZhdGVOYW1lKCksIGdldERpcmVj
dCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZm9yRWFjaFB1YmxpY05hbWUo
KSksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsK
ICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVp
bHRpbk5hbWVzKCkua2V5c1ByaXZhdGVOYW1lKCksIGdldERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkua2V5c1B1YmxpY05hbWUoKSksIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKICAgICBwdXREaXJlY3RXaXRob3V0
VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkudmFsdWVzUHJp
dmF0ZU5hbWUoKSwgZ2xvYmFsT2JqZWN0LT5hcnJheVByb3RvVmFsdWVzRnVuY3Rpb24oKSwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDNm
MDhlN2JkYjBlYzE2ZDE5ODBkODg1NzRiOGJkMDQzNzFkNDY3YzAuLjNmZmM3YTRhNWRmMzBmN2Yw
OTRiMWFjYzI0Y2U5NTM4NDA5OTMzOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTExODcsOSArMTE4Nyw2IEBAIGNhcGl0YWxO
YW1lICMjIENvbnN0cnVjdG9yKiBsb3dlck5hbWUgIyMgQ29uc3RydWN0b3IgPSBmZWF0dXJlRmxh
ZyA/IGNhcGl0YWxOYW1lCiAgICAgbV9saW5rVGltZUNvbnN0YW50c1tzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oTGlua1RpbWVDb25zdGFudDo6aW1wb3J0TW9kdWxlKV0uaW5pdExhdGVyKFtdIChjb25z
dCBJbml0aWFsaXplcjxKU0NlbGw+JiBpbml0KSB7CiAgICAgICAgICAgICBpbml0LnNldChKU0Z1
bmN0aW9uOjpjcmVhdGUoaW5pdC52bSwganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4oaW5pdC5vd25l
ciksIDAsIFN0cmluZygpLCBnbG9iYWxGdW5jSW1wb3J0TW9kdWxlKSk7CiAgICAgICAgIH0pOwot
ICAgIG1fbGlua1RpbWVDb25zdGFudHNbc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KExpbmtUaW1lQ29u
c3RhbnQ6OnByb3BlcnR5SXNFbnVtZXJhYmxlKV0uaW5pdExhdGVyKFtdIChjb25zdCBJbml0aWFs
aXplcjxKU0NlbGw+JiBpbml0KSB7Ci0gICAgICAgICAgICBpbml0LnNldChKU0Z1bmN0aW9uOjpj
cmVhdGUoaW5pdC52bSwganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4oaW5pdC5vd25lciksIDAsIFN0
cmluZygpLCBnbG9iYWxGdW5jUHJvcGVydHlJc0VudW1lcmFibGUpKTsKLSAgICAgICAgfSk7CiAg
ICAgbV9saW5rVGltZUNvbnN0YW50c1tzdGF0aWNfY2FzdDx1bnNpZ25lZD4oTGlua1RpbWVDb25z
dGFudDo6Y29weURhdGFQcm9wZXJ0aWVzKV0uaW5pdExhdGVyKFtdIChjb25zdCBJbml0aWFsaXpl
cjxKU0NlbGw+JiBpbml0KSB7CiAgICAgICAgICAgICBpbml0LnNldChKU0Z1bmN0aW9uOjpjcmVh
dGUoaW5pdC52bSwganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4oaW5pdC5vd25lciksIDIsIFN0cmlu
ZygpLCBnbG9iYWxGdW5jQ29weURhdGFQcm9wZXJ0aWVzKSk7CiAgICAgICAgIH0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCmlu
ZGV4IGJmYWU1M2UwMzE3ZTI0ODJlMzBiMTQyOTI2NjNiZjE0ZTNkOGNkMzEuLjA4MzQ1YzVmNzUz
MjkyYTZiMzgzNmY2MzhhNDkxYTM1NGVjZDg4MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAK
IG5hbWVzcGFjZSBKU0MgewogCiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihvYmpl
Y3RDb25zdHJ1Y3RvckFzc2lnbik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihv
YmplY3RDb25zdHJ1Y3RvckVudHJpZXMpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04ob2JqZWN0Q29uc3RydWN0b3JWYWx1ZXMpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04ob2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZik7CiBzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvclNldFByb3RvdHlwZU9mKTsKQEAgLTc2
LDcgKzc3LDcgQEAgY29uc3QgQ2xhc3NJbmZvIE9iamVjdENvbnN0cnVjdG9yOjpzX2luZm8gPSB7
ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2kKICAgaXMgICAgICAgICAgICAgICAg
ICAgICAgICBvYmplY3RDb25zdHJ1Y3RvcklzICAgICAgICAgICAgICAgICAgICAgICAgIERvbnRF
bnVtfEZ1bmN0aW9uIDIgT2JqZWN0SXNJbnRyaW5zaWMKICAgYXNzaWduICAgICAgICAgICAgICAg
ICAgICBvYmplY3RDb25zdHJ1Y3RvckFzc2lnbiAgICAgICAgICAgICAgICAgICAgIERvbnRFbnVt
fEZ1bmN0aW9uIDIKICAgdmFsdWVzICAgICAgICAgICAgICAgICAgICBvYmplY3RDb25zdHJ1Y3Rv
clZhbHVlcyAgICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKLSAgZW50cmll
cyAgICAgICAgICAgICAgICAgICBKU0J1aWx0aW4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKKyAgZW50cmllcyAgICAgICAgICAgICAgICAgICBv
YmplY3RDb25zdHJ1Y3RvckVudHJpZXMgICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0
aW9uIDEKICAgZnJvbUVudHJpZXMgICAgICAgICAgICAgICBKU0J1aWx0aW4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKIEBlbmQKICovCkBAIC05
OCw3ICs5OSw2IEBAIHZvaWQgT2JqZWN0Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgT2JqCiAKICAgICBKU0NfTkFUSVZFX0ZV
TkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5jcmVhdGVQcml2YXRlTmFtZSgpLCBvYmplY3RDb25zdHJ1Y3RvckNyZWF0ZSwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIDIpOwogICAgIEpTQ19O
QVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLmRlZmluZVByb3BlcnR5UHJpdmF0ZU5hbWUoKSwgb2JqZWN0Q29uc3RydWN0b3JE
ZWZpbmVQcm9wZXJ0eSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSksIDMpOwotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmdldE93blByb3BlcnR5TmFtZXNQcml2
YXRlTmFtZSgpLCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5TmFtZXMsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKIH0KIAogLy8g
RVMgMTkuMS4xLjEgT2JqZWN0KFt2YWx1ZV0pCkBAIC0zODgsNiArMzg4LDU3IEBAIEpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvckFzc2lnbiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0YXJnZXQpOwogfQog
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JFbnRyaWVzLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CisKKyAgICBKU1ZhbHVlIHRhcmdldFZhbHVlID0gY2FsbEZyYW1lLT5h
cmd1bWVudCgwKTsKKyAgICBpZiAodGFyZ2V0VmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkKKyAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIk9iamVj
dC5lbnRyaWVzIHJlcXVpcmVzIHRoYXQgaW5wdXQgcGFyYW1ldGVyIG5vdCBiZSBudWxsIG9yIHVu
ZGVmaW5lZCJfcyk7CisgICAgSlNPYmplY3QqIHRhcmdldCA9IHRhcmdldFZhbHVlLnRvT2JqZWN0
KGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKwor
ICAgIEpTQXJyYXkqIGVudHJpZXMgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGdsb2JhbE9iamVjdCwg
bnVsbHB0cik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKKworICAgIFBy
b3BlcnR5TmFtZUFycmF5IHByb3BlcnRpZXModm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3Ms
IFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKTsKKyAgICB0YXJnZXQtPm1ldGhvZFRhYmxlKHZt
KS0+Z2V0T3duUHJvcGVydHlOYW1lcyh0YXJnZXQsIGdsb2JhbE9iamVjdCwgcHJvcGVydGllcywg
RG9udEVudW1Qcm9wZXJ0aWVzTW9kZTo6SW5jbHVkZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgeyB9KTsKKworICAgIHVuc2lnbmVkIGluZGV4ID0gMDsKKyAgICBhdXRvIGFwcGVu
ZCA9IFsmXSAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSkgeworICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCh0YXJnZXQsIFByb3BlcnR5U2xv
dDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXRPd25Qcm9wZXJ0eSk7CisgICAgICAgIGJvb2wgaGFz
UHJvcGVydHkgPSB0YXJnZXQtPm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVydHlTbG90KHRh
cmdldCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOworICAgICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOworICAgICAgICBpZiAoIWhhc1Byb3BlcnR5KQor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoc2xvdC5hdHRyaWJ1dGVzKCkgJiBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
SlNWYWx1ZSB2YWx1ZTsKKyAgICAgICAgaWYgKExJS0VMWSghc2xvdC5pc1RhaW50ZWRCeU9wYXF1
ZU9iamVjdCgpKSkKKyAgICAgICAgICAgIHZhbHVlID0gc2xvdC5nZXRWYWx1ZShnbG9iYWxPYmpl
Y3QsIHByb3BlcnR5TmFtZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHZhbHVlID0gdGFy
Z2V0LT5nZXQoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpOworICAgICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOworCisgICAgICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVy
IGFyZ3M7CisgICAgICAgIGFyZ3MuYXBwZW5kKGpzT3duZWRTdHJpbmcodm0sIHByb3BlcnR5TmFt
ZS51aWQoKSkpOworICAgICAgICBhcmdzLmFwcGVuZCh2YWx1ZSk7CisgICAgICAgIEpTQXJyYXkq
IGVudHJ5ID0gY29uc3RydWN0QXJyYXkoZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxBcnJheUFs
bG9jYXRpb25Qcm9maWxlKj4obnVsbHB0ciksIGFyZ3MpOworICAgICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB2b2lkKCkpOworICAgICAgICBlbnRyaWVzLT5wdXREaXJlY3RJbmRleChn
bG9iYWxPYmplY3QsIGluZGV4KyssIGVudHJ5KTsKKyAgICB9OworCisgICAgZm9yIChjb25zdCBh
dXRvJiBwcm9wZXJ0eU5hbWUgOiBwcm9wZXJ0aWVzKSB7CisgICAgICAgIGFwcGVuZChnbG9iYWxP
YmplY3QsIHByb3BlcnR5TmFtZSk7CisgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHsgfSk7CisgICAgfQorCisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShlbnRyaWVzKTsKK30K
KwogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9yVmFsdWVzLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTQwNyw3ICs0NTgsNyBAQCBKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JWYWx1ZXMsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LAogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAK
ICAgICB1bnNpZ25lZCBpbmRleCA9IDA7Ci0gICAgYXV0byBhZGRWYWx1ZSA9IFsmXSAoUHJvcGVy
dHlOYW1lIHByb3BlcnR5TmFtZSkgeworICAgIGF1dG8gYXBwZW5kID0gWyZdIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSB7CiAgICAgICAg
IFByb3BlcnR5U2xvdCBzbG90KHRhcmdldCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5
cGU6OkdldE93blByb3BlcnR5KTsKICAgICAgICAgYm9vbCBoYXNQcm9wZXJ0eSA9IHRhcmdldC0+
bWV0aG9kVGFibGUodm0pLT5nZXRPd25Qcm9wZXJ0eVNsb3QodGFyZ2V0LCBnbG9iYWxPYmplY3Qs
IHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHZvaWQoKSk7CkBAIC00MjYsMTIgKzQ3Nyw4IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihv
YmplY3RDb25zdHJ1Y3RvclZhbHVlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAg
ICAgICAgIHZhbHVlcy0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBpbmRleCsrLCB2YWx1
ZSk7CiAgICAgfTsKIAotICAgIGZvciAodW5zaWduZWQgaSA9IDAsIG51bVByb3BlcnRpZXMgPSBw
cm9wZXJ0aWVzLnNpemUoKTsgaSA8IG51bVByb3BlcnRpZXM7IGkrKykgewotICAgICAgICBjb25z
dCBhdXRvJiBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0aWVzW2ldOwotICAgICAgICBpZiAocHJvcGVy
dHlOYW1lLmlzU3ltYm9sKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBhZGRW
YWx1ZShwcm9wZXJ0eU5hbWUpOworICAgIGZvciAoY29uc3QgYXV0byYgcHJvcGVydHlOYW1lIDog
cHJvcGVydGllcykgeworICAgICAgICBhcHBlbmQoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUp
OwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419235</attachid>
            <date>2021-02-03 22:29:31 -0800</date>
            <delta_ts>2021-02-03 23:04:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221380-20210203222931.patch</filename>
            <type>text/plain</type>
            <size>14577</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZmZiMzc0MGIzZGI1ZDVhNjY4MWYyOThjOTQ4YjM3Nzk5Yjc1MTkxLi5mY2Y4MTM3MTkzOWM3YzRi
YTE4Y2M3Nzg5MTZmYzI2ZDNhYTVmY2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAyMS0wMi0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEltcGxlbWVudCBPYmplY3QuZW50cmllcyBpbiBDKysKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTM4MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IEFsZXhleSBTaHZheWthLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1w
bGVtZW50cyBPYmplY3QuZW50cmllcyBpbiBDKysgYmVjYXVzZSBpdCBpcyBtb3JlIGVmZmljaWVu
dC4KKyAgICAgICAgSXQgaXMgbm90IHVzaW5nIGR5bmFtaWMgZmVhdHVyZSAobGlrZSwgY2FsbGlu
ZyBhIGNhbGxiYWNrKS4gQW5kIGluIEMrKywKKyAgICAgICAgd2UgY2FuIGF2b2lkIEpTQXJyYXkg
YWxsb2NhdGlvbnMgZm9yIEBPYmplY3QuQGdldE93blByb3BlcnR5TmFtZXMuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBhbHNvIHJlbW92ZXMgdW5uZWNlc3NhcnkgSlMgcHJpdmF0ZSBmdW5jdGlvbnMs
IEBwcm9wZXJ0eUlzRW51bWVyYWJsZSwKKyAgICAgICAgQGdldE93blByb3BlcnR5TmFtZXMsIGFu
ZCBAZW50cmllcy4KKworICAgICAgICAqIGJ1aWx0aW5zL0J1aWx0aW5OYW1lcy5oOgorICAgICAg
ICAqIGJ1aWx0aW5zL09iamVjdENvbnN0cnVjdG9yLmpzOgorICAgICAgICAoZW50cmllcyk6IERl
bGV0ZWQuCisgICAgICAgICogYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5oOgorICAgICAgICAq
IHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpBcnJheVByb3RvdHlw
ZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3Bw
OgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6aW5pdCk6CisgICAgICAgICogcnVudGlt
ZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHA6CisgICAgICAgICogcnVudGltZS9KU0dsb2Jh
bE9iamVjdEZ1bmN0aW9ucy5oOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorCiAyMDIxLTAyLTAzICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gSW5zZXJ0
IFBoYW50b21Mb2NhbCBqdXN0IGJlZm9yZSBTZXRMb2NhbCBmb3IgfHRoaXN8IHRvIGVuc3VyZSBs
aXZlbmVzcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0
aW5OYW1lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5o
CmluZGV4IDY3ZTM2NGYyYzQ2NGQyYzdmMTNhYmU4NDAwMTM4M2JhNjc2MWVkYjcuLjY2YmJkMzg4
M2JjOWU1N2VjNWIwM2ViNjUyZmE1ZWMzNWRiOTA5MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmgKQEAgLTY2LDcgKzY2LDYgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgbWFjcm8oY3JlYXRlKSBcCiAgICAgbWFjcm8oZGVmaW5lUHJvcGVydHkpIFwK
ICAgICBtYWNybyhkZWZhdWx0UHJvbWlzZVRoZW4pIFwKLSAgICBtYWNybyhnZXRPd25Qcm9wZXJ0
eU5hbWVzKSBcCiAgICAgbWFjcm8oU2V0KSBcCiAgICAgbWFjcm8odGhyb3dUeXBlRXJyb3JGdW5j
dGlvbikgXAogICAgIG1hY3JvKHR5cGVkQXJyYXlMZW5ndGgpIFwKQEAgLTE2OSw3ICsxNjgsNiBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICBtYWNybyhtYWtlQm91bmRGdW5jdGlvbikgXAogICAgIG1h
Y3JvKGhhc093bkxlbmd0aFByb3BlcnR5KSBcCiAgICAgbWFjcm8oaW1wb3J0TW9kdWxlKSBcCi0g
ICAgbWFjcm8ocHJvcGVydHlJc0VudW1lcmFibGUpIFwKICAgICBtYWNybyhjb3B5RGF0YVByb3Bl
cnRpZXMpIFwKICAgICBtYWNybyhtZXRhKSBcCiAgICAgbWFjcm8od2ViQXNzZW1ibHlDb21waWxl
U3RyZWFtaW5nSW50ZXJuYWwpIFwKQEAgLTE3Nyw2ICsxNzUsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICBtYWNybyhpbnN0YW5jZUZpZWxkSW5pdGlhbGl6ZXIpIFwKICAgICBtYWNybyhoYXNPd25Q
cm9wZXJ0eUZ1bmN0aW9uKSBcCiAgICAgbWFjcm8oY3JlYXRlUHJpdmF0ZVN5bWJvbCkgXAorICAg
IG1hY3JvKGVudHJpZXMpIFwKIAogCiBuYW1lc3BhY2UgU3ltYm9scyB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvT2JqZWN0Q29uc3RydWN0b3IuanMgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvT2JqZWN0Q29uc3RydWN0b3IuanMKaW5kZXggYWY0
NTZjNDYwYTM1MDU0OTJiMWQyMzExYjVkY2RiNmUxODBlZmMwYy4uMDU1YTNjM2IzZDgwZWMxYTZl
OTk1YWQ5ZDcxNzUzZjE2YzdjYjI4MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J1aWx0aW5zL09iamVjdENvbnN0cnVjdG9yLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9idWlsdGlucy9PYmplY3RDb25zdHJ1Y3Rvci5qcwpAQCAtMjUsMjIgKzI1LDYgQEAKICAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAotZnVuY3Rpb24gZW50cmllcyhvYmplY3QpCi17Ci0gICAgInVzZSBz
dHJpY3QiOwotCi0gICAgdmFyIG9iaiA9IEB0b09iamVjdChvYmplY3QsICJPYmplY3QuZW50cmll
cyByZXF1aXJlcyB0aGF0IGlucHV0IHBhcmFtZXRlciBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQi
KTsKLSAgICB2YXIgbmFtZXMgPSBAT2JqZWN0LkBnZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaik7Ci0g
ICAgdmFyIHByb3BlcnRpZXMgPSBbXTsKLSAgICBmb3IgKHZhciBpID0gMCwgbGVuZ3RoID0gbmFt
ZXMubGVuZ3RoOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIG5hbWUgPSBuYW1lc1tp
XTsKLSAgICAgICAgaWYgKEBwcm9wZXJ0eUlzRW51bWVyYWJsZShvYmosIG5hbWUpKQotICAgICAg
ICAgICAgQGFycmF5UHVzaChwcm9wZXJ0aWVzLCBbbmFtZSwgb2JqW25hbWVdXSk7Ci0gICAgfQot
Ci0gICAgcmV0dXJuIHByb3BlcnRpZXM7Ci19Ci0KIGZ1bmN0aW9uIGZyb21FbnRyaWVzKGl0ZXJh
YmxlKQogewogICAgICJ1c2Ugc3RyaWN0IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9MaW5rVGltZUNvbnN0YW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5oCmluZGV4IGUwMjkyNTY0OWZkM2ExYmFlMGVmODdk
YzE1YWNmY2ZkMDVhYzg3YTEuLjJlYWIwZjAzOTkwY2U1YTRmNzJjOGU2NmY2MjBhNTYwMzgzM2Rj
MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MaW5rVGltZUNv
bnN0YW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xpbmtUaW1lQ29u
c3RhbnQuaApAQCAtNDQsNyArNDQsNiBAQCBjbGFzcyBKU0dsb2JhbE9iamVjdDsKICAgICB2KHNl
dEJ1Y2tldE5leHQsIG51bGxwdHIpIFwKICAgICB2KHNldEJ1Y2tldEtleSwgbnVsbHB0cikgXAog
ICAgIHYoc2V0UHJvdG90eXBlRGlyZWN0LCBudWxscHRyKSBcCi0gICAgdihwcm9wZXJ0eUlzRW51
bWVyYWJsZSwgbnVsbHB0cikgXAogICAgIHYoY29weURhdGFQcm9wZXJ0aWVzLCBudWxscHRyKSBc
CiAgICAgdihlbnF1ZXVlSm9iLCBudWxscHRyKSBcCiAgICAgdihtYWtlVHlwZUVycm9yLCBudWxs
cHRyKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVBy
b3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlw
ZS5jcHAKaW5kZXggYmZmZmM4N2JmNGFjODhjYjQ0YTQwOTJjZTc0YTkzODNhNzc5Mjk5Yi4uZmJh
NmQ3Y2Q3NzIzM2Q1YTRmYTNhZDEzOWFjODQyYWFkNjgzYmJjNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtMTE0LDcgKzExNCw2
IEBAIHZvaWQgQXJyYXlQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBpZiAoT3B0aW9uczo6dXNlQXRNZXRob2QoKSkKICAg
ICAgICAgSlNDX0JVSUxUSU5fRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmF0UHVibGljTmFtZSgpLCBhcnJheVByb3RvdHlwZUF0Q29k
ZUdlbmVyYXRvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSkpOwogCi0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJpZXNQcml2YXRlTmFtZSgpLCBnZXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJpZXNQdWJsaWNOYW1lKCkpLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CiAgICAg
cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLmZvckVhY2hQcml2YXRlTmFtZSgpLCBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFt
ZXMtPmJ1aWx0aW5OYW1lcygpLmZvckVhY2hQdWJsaWNOYW1lKCkpLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CiAgICAgcHV0RGlyZWN0V2l0aG91
dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmtleXNQcml2
YXRlTmFtZSgpLCBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LmtleXNQdWJsaWNOYW1lKCkpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5KSk7CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnZhbHVlc1ByaXZhdGVOYW1lKCksIGdsb2JhbE9i
amVjdC0+YXJyYXlQcm90b1ZhbHVlc0Z1bmN0aW9uKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCAzZjA4ZTdiZGIwZWMxNmQxOTgwZDg4
NTc0YjhiZDA0MzcxZDQ2N2MwLi4zZmZjN2E0YTVkZjMwZjdmMDk0YjFhY2MyNGNlOTUzODQwOTkz
MzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuY3BwCkBAIC0xMTg3LDkgKzExODcsNiBAQCBjYXBpdGFsTmFtZSAjIyBDb25zdHJ1Y3Rvciog
bG93ZXJOYW1lICMjIENvbnN0cnVjdG9yID0gZmVhdHVyZUZsYWcgPyBjYXBpdGFsTmFtZQogICAg
IG1fbGlua1RpbWVDb25zdGFudHNbc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KExpbmtUaW1lQ29uc3Rh
bnQ6OmltcG9ydE1vZHVsZSldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNDZWxs
PiYgaW5pdCkgewogICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQu
dm0sIGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAwLCBTdHJpbmcoKSwgZ2xv
YmFsRnVuY0ltcG9ydE1vZHVsZSkpOwogICAgICAgICB9KTsKLSAgICBtX2xpbmtUaW1lQ29uc3Rh
bnRzW3N0YXRpY19jYXN0PHVuc2lnbmVkPihMaW5rVGltZUNvbnN0YW50Ojpwcm9wZXJ0eUlzRW51
bWVyYWJsZSldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNDZWxsPiYgaW5pdCkg
ewotICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQudm0sIGpzQ2Fz
dDxKU0dsb2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAwLCBTdHJpbmcoKSwgZ2xvYmFsRnVuY1By
b3BlcnR5SXNFbnVtZXJhYmxlKSk7Ci0gICAgICAgIH0pOwogICAgIG1fbGlua1RpbWVDb25zdGFu
dHNbc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KExpbmtUaW1lQ29uc3RhbnQ6OmNvcHlEYXRhUHJvcGVy
dGllcyldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNDZWxsPiYgaW5pdCkgewog
ICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQudm0sIGpzQ2FzdDxK
U0dsb2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAyLCBTdHJpbmcoKSwgZ2xvYmFsRnVuY0NvcHlE
YXRhUHJvcGVydGllcykpOwogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAppbmRleCBkNGRm
MDMzZTljMzFhNTQ4MzAzY2M5NTNjYTU5MjlmMWFjZGVmZDJlLi44NzQ0ODkyNjA5ZGM4ODBkM2E1
NGE1ZjExYmY0NDI0NDE2ZDg5YzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCkBAIC04MTUsMjIgKzgx
NSw2IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jSW1wb3J0TW9kdWxlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHByb21pc2UpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1Byb3Bl
cnR5SXNFbnVtZXJhYmxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBSRUxFQVNFX0FTU0VS
VChjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSA9PSAyKTsKLSAgICBKU09iamVjdCogb2JqZWN0
ID0ganNDYXN0PEpTT2JqZWN0Kj4oY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7Ci0g
ICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRv
UHJvcGVydHlLZXkoZ2xvYmFsT2JqZWN0KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBlbmNvZGVkSlNWYWx1ZSgpKTsKLQotICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBQcm9wZXJ0
eURlc2NyaXB0b3IgZGVzY3JpcHRvcjsKLSAgICBib29sIGVudW1lcmFibGUgPSBvYmplY3QtPmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3Jp
cHRvcikgJiYgZGVzY3JpcHRvci5lbnVtZXJhYmxlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc0Jvb2xlYW4oZW51bWVyYWJsZSkpOwotfQotCiBzdGF0aWMgYm9vbCBjYW5QZXJmb3Jt
RmFzdFByb3BlcnR5RW51bWVyYXRpb25Gb3JDb3B5RGF0YVByb3BlcnRpZXMoU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCiB7CiAgICAgaWYgKHN0cnVjdHVyZS0+dHlwZUluZm8oKS5vdmVycmlkZXNHZXRP
d25Qcm9wZXJ0eVNsb3QoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oCmluZGV4IDRkZmI3ZWY2ZDZkZGYwMTZkMzBk
YWRjNjQxZWZiM2I3NWJiZTRlMDUuLmE3NjU0MjhlODNkMDJjZjNhNWQ0ZjMzZmVkMDAzYjU5MjNl
YWYxMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3RGdW5jdGlvbnMuaApAQCAtNTYsNyArNTYsNiBAQCBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGdsb2JhbEZ1bmNIb3N0UHJvbWlzZVJlamVjdGlvblRyYWNrZXIpOwogSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jQnVpbHRpbkxvZyk7CiBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNCdWlsdGluRGVzY3JpYmUpOwogSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihnbG9iYWxGdW5jSW1wb3J0TW9kdWxlKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZ2xvYmFsRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlKTsKIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZ2xvYmFsRnVuY0NvcHlEYXRhUHJvcGVydGllcyk7CiBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGdsb2JhbEZ1bmNEYXRlVGltZUZvcm1hdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAppbmRleCBiZmFlNTNl
MDMxN2UyNDgyZTMwYjE0MjkyNjYzYmYxNGUzZDhjZDMxLi4wODM0NWM1Zjc1MzI5MmE2YjM4MzZm
NjM4YTQ5MWEzNTRlY2Q4ODEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCkBAIC0zMiw2ICszMiw3IEBACiBuYW1lc3BhY2Ug
SlNDIHsKIAogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0
b3JBc3NpZ24pOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3Ry
dWN0b3JFbnRyaWVzKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdENv
bnN0cnVjdG9yVmFsdWVzKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVj
dENvbnN0cnVjdG9yR2V0UHJvdG90eXBlT2YpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04ob2JqZWN0Q29uc3RydWN0b3JTZXRQcm90b3R5cGVPZik7CkBAIC03Niw3ICs3Nyw3IEBA
IGNvbnN0IENsYXNzSW5mbyBPYmplY3RDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24i
LCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pCiAgIGlzICAgICAgICAgICAgICAgICAgICAgICAgb2Jq
ZWN0Q29uc3RydWN0b3JJcyAgICAgICAgICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlv
biAyIE9iamVjdElzSW50cmluc2ljCiAgIGFzc2lnbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0
Q29uc3RydWN0b3JBc3NpZ24gICAgICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAy
CiAgIHZhbHVlcyAgICAgICAgICAgICAgICAgICAgb2JqZWN0Q29uc3RydWN0b3JWYWx1ZXMgICAg
ICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCi0gIGVudHJpZXMgICAgICAgICAg
ICAgICAgICAgSlNCdWlsdGluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb250
RW51bXxGdW5jdGlvbiAxCisgIGVudHJpZXMgICAgICAgICAgICAgICAgICAgb2JqZWN0Q29uc3Ry
dWN0b3JFbnRyaWVzICAgICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCiAgIGZy
b21FbnRyaWVzICAgICAgICAgICAgICAgSlNCdWlsdGluICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCiBAZW5kCiAqLwpAQCAtOTgsNyArOTksNiBA
QCB2b2lkIE9iamVjdENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIE9iagogCiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuY3JlYXRlUHJp
dmF0ZU5hbWUoKSwgb2JqZWN0Q29uc3RydWN0b3JDcmVhdGUsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAyKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNU
SU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5k
ZWZpbmVQcm9wZXJ0eVByaXZhdGVOYW1lKCksIG9iamVjdENvbnN0cnVjdG9yRGVmaW5lUHJvcGVy
dHksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAz
KTsKLSAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0
eU5hbWVzLT5idWlsdGluTmFtZXMoKS5nZXRPd25Qcm9wZXJ0eU5hbWVzUHJpdmF0ZU5hbWUoKSwg
b2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eU5hbWVzLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CiB9CiAKIC8vIEVTIDE5LjEuMS4x
IE9iamVjdChbdmFsdWVdKQpAQCAtMzg4LDYgKzM4OCw1NyBAQCBKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04ob2JqZWN0Q29uc3RydWN0b3JBc3NpZ24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGFyZ2V0KTsKIH0KIAorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9yRW50cmllcywgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOworCisgICAgSlNWYWx1ZSB0YXJnZXRWYWx1ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7
CisgICAgaWYgKHRhcmdldFZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCisgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJPYmplY3QuZW50cmllcyBy
ZXF1aXJlcyB0aGF0IGlucHV0IHBhcmFtZXRlciBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQiX3Mp
OworICAgIEpTT2JqZWN0KiB0YXJnZXQgPSB0YXJnZXRWYWx1ZS50b09iamVjdChnbG9iYWxPYmpl
Y3QpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBKU0FycmF5
KiBlbnRyaWVzID0gY29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxPYmplY3QsIG51bGxwdHIpOwor
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBQcm9wZXJ0eU5hbWVB
cnJheSBwcm9wZXJ0aWVzKHZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQcml2YXRlU3lt
Ym9sTW9kZTo6RXhjbHVkZSk7CisgICAgdGFyZ2V0LT5tZXRob2RUYWJsZSh2bSktPmdldE93blBy
b3BlcnR5TmFtZXModGFyZ2V0LCBnbG9iYWxPYmplY3QsIHByb3BlcnRpZXMsIERvbnRFbnVtUHJv
cGVydGllc01vZGU6OkluY2x1ZGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7CisKKyAgICB1bnNpZ25lZCBpbmRleCA9IDA7CisgICAgYXV0byBhcHBlbmQgPSBbJl0gKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpIHsK
KyAgICAgICAgUHJvcGVydHlTbG90IHNsb3QodGFyZ2V0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFs
TWV0aG9kVHlwZTo6R2V0T3duUHJvcGVydHkpOworICAgICAgICBib29sIGhhc1Byb3BlcnR5ID0g
dGFyZ2V0LT5tZXRob2RUYWJsZSh2bSktPmdldE93blByb3BlcnR5U2xvdCh0YXJnZXQsIGdsb2Jh
bE9iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgdm9pZCgpKTsKKyAgICAgICAgaWYgKCFoYXNQcm9wZXJ0eSkKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgaWYgKHNsb3QuYXR0cmlidXRlcygpICYgUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEpTVmFsdWUgdmFs
dWU7CisgICAgICAgIGlmIChMSUtFTFkoIXNsb3QuaXNUYWludGVkQnlPcGFxdWVPYmplY3QoKSkp
CisgICAgICAgICAgICB2YWx1ZSA9IHNsb3QuZ2V0VmFsdWUoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0
eU5hbWUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB2YWx1ZSA9IHRhcmdldC0+Z2V0KGds
b2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgdm9pZCgpKTsKKworICAgICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOworICAg
ICAgICBhcmdzLmFwcGVuZChqc093bmVkU3RyaW5nKHZtLCBwcm9wZXJ0eU5hbWUudWlkKCkpKTsK
KyAgICAgICAgYXJncy5hcHBlbmQodmFsdWUpOworICAgICAgICBKU0FycmF5KiBlbnRyeSA9IGNv
bnN0cnVjdEFycmF5KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8QXJyYXlBbGxvY2F0aW9uUHJv
ZmlsZSo+KG51bGxwdHIpLCBhcmdzKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgdm9pZCgpKTsKKyAgICAgICAgZW50cmllcy0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0
LCBpbmRleCsrLCBlbnRyeSk7CisgICAgfTsKKworICAgIGZvciAoY29uc3QgYXV0byYgcHJvcGVy
dHlOYW1lIDogcHJvcGVydGllcykgeworICAgICAgICBhcHBlbmQoZ2xvYmFsT2JqZWN0LCBwcm9w
ZXJ0eU5hbWUpOworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAg
IH0KKworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZW50cmllcyk7Cit9CisKIEpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvclZhbHVlcywgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CkBAIC00MDcsNyArNDU4LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKG9iamVjdENvbnN0cnVjdG9yVmFsdWVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgdW5zaWdu
ZWQgaW5kZXggPSAwOwotICAgIGF1dG8gYWRkVmFsdWUgPSBbJl0gKFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUpIHsKKyAgICBhdXRvIGFwcGVuZCA9IFsmXSAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkgewogICAgICAgICBQcm9wZXJ0eVNs
b3Qgc2xvdCh0YXJnZXQsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXRPd25Q
cm9wZXJ0eSk7CiAgICAgICAgIGJvb2wgaGFzUHJvcGVydHkgPSB0YXJnZXQtPm1ldGhvZFRhYmxl
KHZtKS0+Z2V0T3duUHJvcGVydHlTbG90KHRhcmdldCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwpA
QCAtNDI2LDEyICs0NzcsOCBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3Ry
dWN0b3JWYWx1ZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgICAgICB2YWx1
ZXMtPnB1dERpcmVjdEluZGV4KGdsb2JhbE9iamVjdCwgaW5kZXgrKywgdmFsdWUpOwogICAgIH07
CiAKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBudW1Qcm9wZXJ0aWVzID0gcHJvcGVydGllcy5z
aXplKCk7IGkgPCBudW1Qcm9wZXJ0aWVzOyBpKyspIHsKLSAgICAgICAgY29uc3QgYXV0byYgcHJv
cGVydHlOYW1lID0gcHJvcGVydGllc1tpXTsKLSAgICAgICAgaWYgKHByb3BlcnR5TmFtZS5pc1N5
bWJvbCgpKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgYWRkVmFsdWUocHJvcGVy
dHlOYW1lKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHByb3BlcnR5TmFtZSA6IHByb3BlcnRpZXMp
IHsKKyAgICAgICAgYXBwZW5kKGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsKICAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419238</attachid>
            <date>2021-02-03 23:07:20 -0800</date>
            <delta_ts>2021-02-04 02:42:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221380-20210203230719.patch</filename>
            <type>text/plain</type>
            <size>13393</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
ZmZiMzc0MGIzZGI1ZDVhNjY4MWYyOThjOTQ4YjM3Nzk5Yjc1MTkxLi40MDZmNmI0MDliMThjNTdh
YjJkODE0MWNiZjI5NTI2YzIzYzNkNDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMS0wMi0wMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEltcGxlbWVudCBPYmplY3QuZW50cmllcyBpbiBDKysKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTM4MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IEFsZXhleSBTaHZheWthLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1w
bGVtZW50cyBPYmplY3QuZW50cmllcyBpbiBDKysgYmVjYXVzZSBpdCBpcyBtb3JlIGVmZmljaWVu
dC4KKyAgICAgICAgSXQgaXMgbm90IHVzaW5nIGR5bmFtaWMgZmVhdHVyZSAobGlrZSwgY2FsbGlu
ZyBhIGNhbGxiYWNrKS4gQW5kIGluIEMrKywKKyAgICAgICAgd2UgY2FuIGF2b2lkIEpTQXJyYXkg
YWxsb2NhdGlvbnMgZm9yIEBPYmplY3QuQGdldE93blByb3BlcnR5TmFtZXMuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBhbHNvIHJlbW92ZXMgdW5uZWNlc3NhcnkgSlMgcHJpdmF0ZSBmdW5jdGlvbnMs
IEBwcm9wZXJ0eUlzRW51bWVyYWJsZSwKKyAgICAgICAgYW5kIEBnZXRPd25Qcm9wZXJ0eU5hbWVz
LgorCisgICAgICAgICogYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogYnVpbHRp
bnMvT2JqZWN0Q29uc3RydWN0b3IuanM6CisgICAgICAgIChlbnRyaWVzKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBieXRlY29kZS9MaW5rVGltZUNvbnN0YW50Lmg6CisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KToK
KyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgICogcnVudGltZS9P
YmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpm
aW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisKIDIwMjEtMDItMDMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbSlNDXSBJbnNlcnQgUGhhbnRvbUxvY2FsIGp1c3QgYmVmb3JlIFNldExvY2FsIGZvciB8
dGhpc3wgdG8gZW5zdXJlIGxpdmVuZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnVpbHRpbnMvQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRp
bnMvQnVpbHRpbk5hbWVzLmgKaW5kZXggNjdlMzY0ZjJjNDY0ZDJjN2YxM2FiZTg0MDAxMzgzYmE2
NzYxZWRiNy4uNjZiYmQzODgzYmM5ZTU3ZWM1YjAzZWI2NTJmYTVlYzM1ZGI5MDkwMyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaApAQCAtNjYsNyAr
NjYsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBtYWNybyhjcmVhdGUpIFwKICAgICBtYWNybyhk
ZWZpbmVQcm9wZXJ0eSkgXAogICAgIG1hY3JvKGRlZmF1bHRQcm9taXNlVGhlbikgXAotICAgIG1h
Y3JvKGdldE93blByb3BlcnR5TmFtZXMpIFwKICAgICBtYWNybyhTZXQpIFwKICAgICBtYWNybyh0
aHJvd1R5cGVFcnJvckZ1bmN0aW9uKSBcCiAgICAgbWFjcm8odHlwZWRBcnJheUxlbmd0aCkgXApA
QCAtMTY5LDcgKzE2OCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIG1hY3JvKG1ha2VCb3VuZEZ1
bmN0aW9uKSBcCiAgICAgbWFjcm8oaGFzT3duTGVuZ3RoUHJvcGVydHkpIFwKICAgICBtYWNybyhp
bXBvcnRNb2R1bGUpIFwKLSAgICBtYWNybyhwcm9wZXJ0eUlzRW51bWVyYWJsZSkgXAogICAgIG1h
Y3JvKGNvcHlEYXRhUHJvcGVydGllcykgXAogICAgIG1hY3JvKG1ldGEpIFwKICAgICBtYWNybyh3
ZWJBc3NlbWJseUNvbXBpbGVTdHJlYW1pbmdJbnRlcm5hbCkgXApAQCAtMTc3LDYgKzE3NSw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgIG1hY3JvKGluc3RhbmNlRmllbGRJbml0aWFsaXplcikgXAog
ICAgIG1hY3JvKGhhc093blByb3BlcnR5RnVuY3Rpb24pIFwKICAgICBtYWNybyhjcmVhdGVQcml2
YXRlU3ltYm9sKSBcCisgICAgbWFjcm8oZW50cmllcykgXAogCiAKIG5hbWVzcGFjZSBTeW1ib2xz
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9PYmplY3RDb25z
dHJ1Y3Rvci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9PYmplY3RDb25zdHJ1
Y3Rvci5qcwppbmRleCBhZjQ1NmM0NjBhMzUwNTQ5MmIxZDIzMTFiNWRjZGI2ZTE4MGVmYzBjLi4w
NTVhM2MzYjNkODBlYzFhNmU5OTVhZDlkNzE3NTNmMTZjN2NiMjgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvT2JqZWN0Q29uc3RydWN0b3IuanMKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL09iamVjdENvbnN0cnVjdG9yLmpzCkBAIC0yNSwy
MiArMjUsNiBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1mdW5jdGlvbiBlbnRyaWVzKG9iamVj
dCkKLXsKLSAgICAidXNlIHN0cmljdCI7Ci0KLSAgICB2YXIgb2JqID0gQHRvT2JqZWN0KG9iamVj
dCwgIk9iamVjdC5lbnRyaWVzIHJlcXVpcmVzIHRoYXQgaW5wdXQgcGFyYW1ldGVyIG5vdCBiZSBu
dWxsIG9yIHVuZGVmaW5lZCIpOwotICAgIHZhciBuYW1lcyA9IEBPYmplY3QuQGdldE93blByb3Bl
cnR5TmFtZXMob2JqKTsKLSAgICB2YXIgcHJvcGVydGllcyA9IFtdOwotICAgIGZvciAodmFyIGkg
PSAwLCBsZW5ndGggPSBuYW1lcy5sZW5ndGg7IGkgPCBsZW5ndGg7ICsraSkgewotICAgICAgICB2
YXIgbmFtZSA9IG5hbWVzW2ldOwotICAgICAgICBpZiAoQHByb3BlcnR5SXNFbnVtZXJhYmxlKG9i
aiwgbmFtZSkpCi0gICAgICAgICAgICBAYXJyYXlQdXNoKHByb3BlcnRpZXMsIFtuYW1lLCBvYmpb
bmFtZV1dKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcHJvcGVydGllczsKLX0KLQogZnVuY3Rpb24g
ZnJvbUVudHJpZXMoaXRlcmFibGUpCiB7CiAgICAgInVzZSBzdHJpY3QiOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xpbmtUaW1lQ29uc3RhbnQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MaW5rVGltZUNvbnN0YW50LmgKaW5kZXggZTAyOTI1
NjQ5ZmQzYTFiYWUwZWY4N2RjMTVhY2ZjZmQwNWFjODdhMS4uMmVhYjBmMDM5OTBjZTVhNGY3MmM4
ZTY2ZjYyMGE1NjAzODMzZGMwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0xpbmtUaW1lQ29uc3RhbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvTGlua1RpbWVDb25zdGFudC5oCkBAIC00NCw3ICs0NCw2IEBAIGNsYXNzIEpTR2xvYmFs
T2JqZWN0OwogICAgIHYoc2V0QnVja2V0TmV4dCwgbnVsbHB0cikgXAogICAgIHYoc2V0QnVja2V0
S2V5LCBudWxscHRyKSBcCiAgICAgdihzZXRQcm90b3R5cGVEaXJlY3QsIG51bGxwdHIpIFwKLSAg
ICB2KHByb3BlcnR5SXNFbnVtZXJhYmxlLCBudWxscHRyKSBcCiAgICAgdihjb3B5RGF0YVByb3Bl
cnRpZXMsIG51bGxwdHIpIFwKICAgICB2KGVucXVldWVKb2IsIG51bGxwdHIpIFwKICAgICB2KG1h
a2VUeXBlRXJyb3IsIG51bGxwdHIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAppbmRleCAzZjA4ZTdiZGIwZWMxNmQxOTgwZDg4NTc0Yjhi
ZDA0MzcxZDQ2N2MwLi4zZmZjN2E0YTVkZjMwZjdmMDk0YjFhY2MyNGNlOTUzODQwOTkzMzkxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3Bw
CkBAIC0xMTg3LDkgKzExODcsNiBAQCBjYXBpdGFsTmFtZSAjIyBDb25zdHJ1Y3RvciogbG93ZXJO
YW1lICMjIENvbnN0cnVjdG9yID0gZmVhdHVyZUZsYWcgPyBjYXBpdGFsTmFtZQogICAgIG1fbGlu
a1RpbWVDb25zdGFudHNbc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KExpbmtUaW1lQ29uc3RhbnQ6Omlt
cG9ydE1vZHVsZSldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNDZWxsPiYgaW5p
dCkgewogICAgICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQudm0sIGpz
Q2FzdDxKU0dsb2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAwLCBTdHJpbmcoKSwgZ2xvYmFsRnVu
Y0ltcG9ydE1vZHVsZSkpOwogICAgICAgICB9KTsKLSAgICBtX2xpbmtUaW1lQ29uc3RhbnRzW3N0
YXRpY19jYXN0PHVuc2lnbmVkPihMaW5rVGltZUNvbnN0YW50Ojpwcm9wZXJ0eUlzRW51bWVyYWJs
ZSldLmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNDZWxsPiYgaW5pdCkgewotICAg
ICAgICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQudm0sIGpzQ2FzdDxKU0ds
b2JhbE9iamVjdCo+KGluaXQub3duZXIpLCAwLCBTdHJpbmcoKSwgZ2xvYmFsRnVuY1Byb3BlcnR5
SXNFbnVtZXJhYmxlKSk7Ci0gICAgICAgIH0pOwogICAgIG1fbGlua1RpbWVDb25zdGFudHNbc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KExpbmtUaW1lQ29uc3RhbnQ6OmNvcHlEYXRhUHJvcGVydGllcyld
LmluaXRMYXRlcihbXSAoY29uc3QgSW5pdGlhbGl6ZXI8SlNDZWxsPiYgaW5pdCkgewogICAgICAg
ICAgICAgaW5pdC5zZXQoSlNGdW5jdGlvbjo6Y3JlYXRlKGluaXQudm0sIGpzQ2FzdDxKU0dsb2Jh
bE9iamVjdCo+KGluaXQub3duZXIpLCAyLCBTdHJpbmcoKSwgZ2xvYmFsRnVuY0NvcHlEYXRhUHJv
cGVydGllcykpOwogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAppbmRleCBkNGRmMDMzZTlj
MzFhNTQ4MzAzY2M5NTNjYTU5MjlmMWFjZGVmZDJlLi44NzQ0ODkyNjA5ZGM4ODBkM2E1NGE1ZjEx
YmY0NDI0NDE2ZDg5YzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCkBAIC04MTUsMjIgKzgxNSw2IEBA
IEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jSW1wb3J0TW9kdWxlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHByb21p
c2UpOwogfQogCi1KU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1Byb3BlcnR5SXNF
bnVtZXJhYmxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBSRUxFQVNFX0FTU0VSVChjYWxs
RnJhbWUtPmFyZ3VtZW50Q291bnQoKSA9PSAyKTsKLSAgICBKU09iamVjdCogb2JqZWN0ID0ganND
YXN0PEpTT2JqZWN0Kj4oY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7Ci0gICAgYXV0
byBwcm9wZXJ0eU5hbWUgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvUHJvcGVy
dHlLZXkoZ2xvYmFsT2JqZWN0KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNv
ZGVkSlNWYWx1ZSgpKTsKLQotICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBQcm9wZXJ0eURlc2Ny
aXB0b3IgZGVzY3JpcHRvcjsKLSAgICBib29sIGVudW1lcmFibGUgPSBvYmplY3QtPmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcikg
JiYgZGVzY3JpcHRvci5lbnVtZXJhYmxlKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c0Jvb2xlYW4oZW51bWVyYWJsZSkpOwotfQotCiBzdGF0aWMgYm9vbCBjYW5QZXJmb3JtRmFzdFBy
b3BlcnR5RW51bWVyYXRpb25Gb3JDb3B5RGF0YVByb3BlcnRpZXMoU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCiB7CiAgICAgaWYgKHN0cnVjdHVyZS0+dHlwZUluZm8oKS5vdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oCmluZGV4IDRkZmI3ZWY2ZDZkZGYwMTZkMzBkYWRjNjQx
ZWZiM2I3NWJiZTRlMDUuLmE3NjU0MjhlODNkMDJjZjNhNWQ0ZjMzZmVkMDAzYjU5MjNlYWYxMTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3RGdW5jdGlvbnMuaApAQCAtNTYsNyArNTYsNiBAQCBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGdsb2JhbEZ1bmNIb3N0UHJvbWlzZVJlamVjdGlvblRyYWNrZXIpOwogSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihnbG9iYWxGdW5jQnVpbHRpbkxvZyk7CiBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGdsb2JhbEZ1bmNCdWlsdGluRGVzY3JpYmUpOwogSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihnbG9iYWxGdW5jSW1wb3J0TW9kdWxlKTsKLUpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
Z2xvYmFsRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlKTsKIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZ2xvYmFsRnVuY0NvcHlEYXRhUHJvcGVydGllcyk7CiBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGdsb2JhbEZ1bmNEYXRlVGltZUZvcm1hdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAppbmRleCBiZmFlNTNlMDMxN2Uy
NDgyZTMwYjE0MjkyNjYzYmYxNGUzZDhjZDMxLi44M2ZhMmEwYzlkMGNiOGU3MWI4NzU0YjZhNDYw
MTRlNGU2MzYxZTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
YmplY3RDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T2JqZWN0Q29uc3RydWN0b3IuY3BwCkBAIC0zMiw2ICszMiw3IEBACiBuYW1lc3BhY2UgSlNDIHsK
IAogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JBc3Np
Z24pOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JF
bnRyaWVzKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVj
dG9yVmFsdWVzKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0
cnVjdG9yR2V0UHJvdG90eXBlT2YpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
b2JqZWN0Q29uc3RydWN0b3JTZXRQcm90b3R5cGVPZik7CkBAIC03Niw3ICs3Nyw3IEBAIGNvbnN0
IENsYXNzSW5mbyBPYmplY3RDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50
ZXJuYWxGdW5jdGlvbjo6c19pCiAgIGlzICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0Q29u
c3RydWN0b3JJcyAgICAgICAgICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAyIE9i
amVjdElzSW50cmluc2ljCiAgIGFzc2lnbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0Q29uc3Ry
dWN0b3JBc3NpZ24gICAgICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAyCiAgIHZh
bHVlcyAgICAgICAgICAgICAgICAgICAgb2JqZWN0Q29uc3RydWN0b3JWYWx1ZXMgICAgICAgICAg
ICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCi0gIGVudHJpZXMgICAgICAgICAgICAgICAg
ICAgSlNCdWlsdGluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb250RW51bXxG
dW5jdGlvbiAxCisgIGVudHJpZXMgICAgICAgICAgICAgICAgICAgb2JqZWN0Q29uc3RydWN0b3JF
bnRyaWVzICAgICAgICAgICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCiAgIGZyb21FbnRy
aWVzICAgICAgICAgICAgICAgSlNCdWlsdGluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBEb250RW51bXxGdW5jdGlvbiAxCiBAZW5kCiAqLwpAQCAtOTgsNyArOTksNiBAQCB2b2lk
IE9iamVjdENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIE9iagogCiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuY3JlYXRlUHJpdmF0ZU5h
bWUoKSwgb2JqZWN0Q29uc3RydWN0b3JDcmVhdGUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAyKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5kZWZpbmVQ
cm9wZXJ0eVByaXZhdGVOYW1lKCksIG9iamVjdENvbnN0cnVjdG9yRGVmaW5lUHJvcGVydHksIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAzKTsKLSAg
ICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS5nZXRPd25Qcm9wZXJ0eU5hbWVzUHJpdmF0ZU5hbWUoKSwgb2JqZWN0
Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eU5hbWVzLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSk7CiB9CiAKIC8vIEVTIDE5LjEuMS4xIE9iamVj
dChbdmFsdWVdKQpAQCAtMzg4LDYgKzM4OCw2NSBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
b2JqZWN0Q29uc3RydWN0b3JBc3NpZ24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGFyZ2V0KTsKIH0KIAorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9yRW50cmllcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwor
CisgICAgSlNWYWx1ZSB0YXJnZXRWYWx1ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CisgICAg
aWYgKHRhcmdldFZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpCisgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJPYmplY3QuZW50cmllcyByZXF1aXJl
cyB0aGF0IGlucHV0IHBhcmFtZXRlciBub3QgYmUgbnVsbCBvciB1bmRlZmluZWQiX3MpOworICAg
IEpTT2JqZWN0KiB0YXJnZXQgPSB0YXJnZXRWYWx1ZS50b09iamVjdChnbG9iYWxPYmplY3QpOwor
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBKU0FycmF5KiBlbnRy
aWVzID0gY29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxPYmplY3QsIG51bGxwdHIpOworICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisKKyAgICBQcm9wZXJ0eU5hbWVBcnJheSBw
cm9wZXJ0aWVzKHZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQcml2YXRlU3ltYm9sTW9k
ZTo6RXhjbHVkZSk7CisgICAgdGFyZ2V0LT5tZXRob2RUYWJsZSh2bSktPmdldE93blByb3BlcnR5
TmFtZXModGFyZ2V0LCBnbG9iYWxPYmplY3QsIHByb3BlcnRpZXMsIERvbnRFbnVtUHJvcGVydGll
c01vZGU6OkluY2x1ZGUpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisK
KyAgICB1bnNpZ25lZCBpbmRleCA9IDA7CisgICAgYXV0byBhcHBlbmQgPSBbJl0gKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpIHsKKyAgICAg
ICAgUHJvcGVydHlTbG90IHNsb3QodGFyZ2V0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9k
VHlwZTo6R2V0T3duUHJvcGVydHkpOworICAgICAgICBib29sIGhhc1Byb3BlcnR5ID0gdGFyZ2V0
LT5tZXRob2RUYWJsZSh2bSktPmdldE93blByb3BlcnR5U2xvdCh0YXJnZXQsIGdsb2JhbE9iamVj
dCwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgdm9pZCgpKTsKKyAgICAgICAgaWYgKCFoYXNQcm9wZXJ0eSkKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgaWYgKHNsb3QuYXR0cmlidXRlcygpICYgUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEpTVmFsdWUgdmFsdWU7Cisg
ICAgICAgIGlmIChMSUtFTFkoIXNsb3QuaXNUYWludGVkQnlPcGFxdWVPYmplY3QoKSkpCisgICAg
ICAgICAgICB2YWx1ZSA9IHNsb3QuZ2V0VmFsdWUoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICB2YWx1ZSA9IHRhcmdldC0+Z2V0KGdsb2JhbE9i
amVjdCwgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
dm9pZCgpKTsKKworICAgICAgICBKU1N0cmluZyoga2V5ID0ganNPd25lZFN0cmluZyh2bSwgcHJv
cGVydHlOYW1lLnVpZCgpKTsKKyAgICAgICAgSlNBcnJheSogZW50cnkgPSBudWxscHRyOworICAg
ICAgICB7CisgICAgICAgICAgICBPYmplY3RJbml0aWFsaXphdGlvblNjb3BlIGluaXRpYWxpemF0
aW9uU2NvcGUodm0pOworICAgICAgICAgICAgaWYgKChlbnRyeSA9IEpTQXJyYXk6OnRyeUNyZWF0
ZVVuaW5pdGlhbGl6ZWRSZXN0cmljdGVkKGluaXRpYWxpemF0aW9uU2NvcGUsIG51bGxwdHIsIGds
b2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9u
KEFycmF5V2l0aENvbnRpZ3VvdXMpLCAyKSkpIHsKKyAgICAgICAgICAgICAgICBlbnRyeS0+aW5p
dGlhbGl6ZUluZGV4KGluaXRpYWxpemF0aW9uU2NvcGUsIDAsIGtleSk7CisgICAgICAgICAgICAg
ICAgZW50cnktPmluaXRpYWxpemVJbmRleChpbml0aWFsaXphdGlvblNjb3BlLCAxLCB2YWx1ZSk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFlbnRyeSkgeworICAgICAg
ICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGVudHJpZXMtPnB1dERpcmVjdEluZGV4
KGdsb2JhbE9iamVjdCwgaW5kZXgrKywgZW50cnkpOworICAgIH07CisKKyAgICBmb3IgKGNvbnN0
IGF1dG8mIHByb3BlcnR5TmFtZSA6IHByb3BlcnRpZXMpIHsKKyAgICAgICAgYXBwZW5kKGdsb2Jh
bE9iamVjdCwgcHJvcGVydHlOYW1lKTsKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgeyB9KTsKKyAgICB9CisKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGVudHJpZXMpOwor
fQorCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JWYWx1ZXMsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtNDA3LDcgKzQ2Niw3IEBAIEpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvclZhbHVlcywgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsK
IAogICAgIHVuc2lnbmVkIGluZGV4ID0gMDsKLSAgICBhdXRvIGFkZFZhbHVlID0gWyZdIChQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lKSB7CisgICAgYXV0byBhcHBlbmQgPSBbJl0gKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpIHsKICAgICAg
ICAgUHJvcGVydHlTbG90IHNsb3QodGFyZ2V0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9k
VHlwZTo6R2V0T3duUHJvcGVydHkpOwogICAgICAgICBib29sIGhhc1Byb3BlcnR5ID0gdGFyZ2V0
LT5tZXRob2RUYWJsZSh2bSktPmdldE93blByb3BlcnR5U2xvdCh0YXJnZXQsIGdsb2JhbE9iamVj
dCwgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgdm9pZCgpKTsKQEAgLTQyNiwxMiArNDg1LDggQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KG9iamVjdENvbnN0cnVjdG9yVmFsdWVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwK
ICAgICAgICAgdmFsdWVzLT5wdXREaXJlY3RJbmRleChnbG9iYWxPYmplY3QsIGluZGV4KyssIHZh
bHVlKTsKICAgICB9OwogCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMCwgbnVtUHJvcGVydGllcyA9
IHByb3BlcnRpZXMuc2l6ZSgpOyBpIDwgbnVtUHJvcGVydGllczsgaSsrKSB7Ci0gICAgICAgIGNv
bnN0IGF1dG8mIHByb3BlcnR5TmFtZSA9IHByb3BlcnRpZXNbaV07Ci0gICAgICAgIGlmIChwcm9w
ZXJ0eU5hbWUuaXNTeW1ib2woKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGFk
ZFZhbHVlKHByb3BlcnR5TmFtZSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBwcm9wZXJ0eU5hbWUg
OiBwcm9wZXJ0aWVzKSB7CisgICAgICAgIGFwcGVuZChnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFt
ZSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>