<?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>194962</bug_id>
          
          <creation_ts>2019-02-22 15:54:25 -0800</creation_ts>
          <short_desc>Add an exception check and some assertions in StringPrototype.cpp.</short_desc>
          <delta_ts>2019-02-23 10:16:19 -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>JavaScriptCore</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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1509203</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-22 15:54:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/48013416&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509211</commentid>
    <comment_count>1</comment_count>
      <attachid>362775</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-22 16:01:36 -0800</bug_when>
    <thetext>Created attachment 362775
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509217</commentid>
    <comment_count>2</comment_count>
      <attachid>362775</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-02-22 16:06:53 -0800</bug_when>
    <thetext>Comment on attachment 362775
proposed patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509218</commentid>
    <comment_count>3</comment_count>
      <attachid>362775</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-02-22 16:07:53 -0800</bug_when>
    <thetext>Comment on attachment 362775
proposed patch.

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

&gt; Source/WTF/wtf/CheckedArithmetic.h:545
&gt; +inline bool observesOverflows() { return true; }

constexpr?

I&apos;d also name this &quot;ovservesOverflow&quot;

&gt; Source/WTF/wtf/CheckedArithmetic.h:548
&gt; +inline bool observesOverflows&lt;AssertNoOverflow&gt;() { return !ASSERT_DISABLED; }

constexpr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509229</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-22 16:27:16 -0800</bug_when>
    <thetext>Thanks for the reviews.

(In reply to Saam Barati from comment #3)
&gt; Comment on attachment 362775 [details]
&gt; proposed patch.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=362775&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/CheckedArithmetic.h:545
&gt; &gt; +inline bool observesOverflows() { return true; }
&gt; 
&gt; constexpr?
&gt; 
&gt; I&apos;d also name this &quot;ovservesOverflow&quot;
&gt; 
&gt; &gt; Source/WTF/wtf/CheckedArithmetic.h:548
&gt; &gt; +inline bool observesOverflows&lt;AssertNoOverflow&gt;() { return !ASSERT_DISABLED; }
&gt; 
&gt; constexpr?

I&apos;ll apply these changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509231</commentid>
    <comment_count>5</comment_count>
      <attachid>362784</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-22 16:28:54 -0800</bug_when>
    <thetext>Created attachment 362784
patch for landing w/ build fixes.

Let&apos;s see if the EWS likes this better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509253</commentid>
    <comment_count>6</comment_count>
      <attachid>362790</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-22 16:56:18 -0800</bug_when>
    <thetext>Created attachment 362790
patch for landing.

Let&apos;s try the EWS again with a different fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509274</commentid>
    <comment_count>7</comment_count>
      <attachid>362800</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-22 17:18:27 -0800</bug_when>
    <thetext>Created attachment 362800
patch for landing (uploaded to hopefully tickle the EWS bots into running).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509285</commentid>
    <comment_count>8</comment_count>
      <attachid>362805</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-22 17:42:38 -0800</bug_when>
    <thetext>Created attachment 362805
patch for landing.

The issue does not repro on my local builds.  So let&apos;s try another speculative build fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509291</commentid>
    <comment_count>9</comment_count>
      <attachid>362807</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-22 17:52:45 -0800</bug_when>
    <thetext>Created attachment 362807
patch for landing: 6th time&apos;s the charm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509377</commentid>
    <comment_count>10</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-23 10:16:19 -0800</bug_when>
    <thetext>Landed in r241991: &lt;http://trac.webkit.org/r241991&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362775</attachid>
            <date>2019-02-22 16:01:36 -0800</date>
            <delta_ts>2019-02-22 16:28:54 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-194962.patch</filename>
            <type>text/plain</type>
            <size>13660</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQxOTY3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDE5LTAyLTIyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgYW4gZXhjZXB0aW9uIGNoZWNrIGFuZCBzb21lIGFzc2VydGlvbnMgaW4gU3RyaW5nUHJvdG90
eXBlLmNwcC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5NDk2MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgwMTM0MTY+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ1Byb3Rv
dHlwZS5jcHA6CisgICAgICAgIChKU0M6OmpzU3BsaWNlU3Vic3RyaW5ncyk6CisgICAgICAgIChK
U0M6OmpzU3BsaWNlU3Vic3RyaW5nc1dpdGhTZXBhcmF0b3JzKToKKyAgICAgICAgKEpTQzo6b3Bl
cmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVwbGFjZVJlZ0V4cEVtcHR5U3RyKToKKwogMjAxOS0wMi0y
MiAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgogCiAgICAgICAgIEIzUmVk
dWNlU3RyZW5ndGg6IG1pc3NpbmcgcGVlcGhvbGUgb3B0aW1pemF0aW9ucyBmb3IgYmluYXJ5IG9w
ZXJhdGlvbnMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3Rv
dHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3Ry
aW5nUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMjQxOTYzKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsx
LDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0
ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUs
IEluYy4KICAqICBDb3B5cmlnaHQgKEMpIDIwMTUgSm9yZGFuIEhhcmJhbmQgKGxqaGFyYkBnbWFp
bC5jb20pCiAgKgpAQCAtMzI0LDkgKzMyNCwxNCBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBKU1N0
cmluZyoganNTcGxpY2VTCiAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwganNTdHJp
bmcoZXhlYywgU3RyaW5nSW1wbDo6Y3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwoKnNvdXJjZS5p
bXBsKCksIHN0ZDo6bWF4KDAsIHBvc2l0aW9uKSwgc3RkOjptaW4oc291cmNlU2l6ZSwgbGVuZ3Ro
KSkpKTsKICAgICB9CiAKLSAgICBpbnQgdG90YWxMZW5ndGggPSAwOworICAgIC8vIFdlIGtub3cg
dGhhdCB0aGUgc3VtIG9mIHN1YnN0cmluZ1JhbmdlcyBsZW5ndGhzIGNhbm5vdCBleGNlZWQgbGVu
Z3RoIG9mCisgICAgLy8gc291cmNlIGJlY2F1c2UgdGhlIHN1YnN0cmluZ1JhbmdlcyB3ZXJlIGNv
bXB1dGVkIGZyb20gdGhlIHNvdXJjZSBzdHJpbmcKKyAgICAvLyBpbiByZW1vdmVVc2luZ1JlZ0V4
cFNlYXJjaCgpLiBIZW5jZSwgdG90YWxMZW5ndGggY2Fubm90IGV4Y2VlZAorICAgIC8vIFN0cmlu
Zzo6TWF4TGVuZ3RoLCBhbmQgdGhlcmVmb3JlLCBjYW5ub3Qgb3ZlcmZsb3cuCisgICAgQ2hlY2tl
ZDxpbnQsIEFzc2VydE5vT3ZlcmZsb3c+IHRvdGFsTGVuZ3RoID0gMDsKICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IHJhbmdlQ291bnQ7IGkrKykKICAgICAgICAgdG90YWxMZW5ndGggKz0gc3Vic3Ry
aW5nUmFuZ2VzW2ldLmxlbmd0aDsKKyAgICBBU1NFUlQodG90YWxMZW5ndGggPD0gU3RyaW5nOjpN
YXhMZW5ndGgpOwogCiAgICAgaWYgKCF0b3RhbExlbmd0aCkKICAgICAgICAgcmV0dXJuIGpzRW1w
dHlTdHJpbmcoZXhlYyk7CkBAIC0zMzQsMTYgKzMzOSwxNiBAQCBzdGF0aWMgQUxXQVlTX0lOTElO
RSBKU1N0cmluZyoganNTcGxpY2VTCiAgICAgaWYgKHNvdXJjZS5pczhCaXQoKSkgewogICAgICAg
ICBMQ2hhciogYnVmZmVyOwogICAgICAgICBjb25zdCBMQ2hhciogc291cmNlRGF0YSA9IHNvdXJj
ZS5jaGFyYWN0ZXJzOCgpOwotICAgICAgICBhdXRvIGltcGwgPSBTdHJpbmdJbXBsOjp0cnlDcmVh
dGVVbmluaXRpYWxpemVkKHRvdGFsTGVuZ3RoLCBidWZmZXIpOworICAgICAgICBhdXRvIGltcGwg
PSBTdHJpbmdJbXBsOjp0cnlDcmVhdGVVbmluaXRpYWxpemVkKHRvdGFsTGVuZ3RoLnVuc2FmZUdl
dCgpLCBidWZmZXIpOwogICAgICAgICBpZiAoIWltcGwpIHsKICAgICAgICAgICAgIHRocm93T3V0
T2ZNZW1vcnlFcnJvcihleGVjLCBzY29wZSk7CiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICAgICAgfQogCi0gICAgICAgIGludCBidWZmZXJQb3MgPSAwOworICAgICAgICBDaGVja2Vk
PGludCwgQXNzZXJ0Tm9PdmVyZmxvdz4gYnVmZmVyUG9zID0gMDsKICAgICAgICAgZm9yIChpbnQg
aSA9IDA7IGkgPCByYW5nZUNvdW50OyBpKyspIHsKICAgICAgICAgICAgIGlmIChpbnQgc3JjTGVu
ID0gc3Vic3RyaW5nUmFuZ2VzW2ldLmxlbmd0aCkgewotICAgICAgICAgICAgICAgIFN0cmluZ0lt
cGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciArIGJ1ZmZlclBvcywgc291cmNlRGF0YSArIHN1YnN0
cmluZ1Jhbmdlc1tpXS5wb3NpdGlvbiwgc3JjTGVuKTsKKyAgICAgICAgICAgICAgICBTdHJpbmdJ
bXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZmZXJQb3MudW5zYWZlR2V0KCksIHNvdXJj
ZURhdGEgKyBzdWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xlbik7CiAgICAgICAgICAg
ICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAt
MzU0LDE2ICszNTksMTYgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgSlNTdHJpbmcqIGpzU3BsaWNl
UwogICAgIFVDaGFyKiBidWZmZXI7CiAgICAgY29uc3QgVUNoYXIqIHNvdXJjZURhdGEgPSBzb3Vy
Y2UuY2hhcmFjdGVyczE2KCk7CiAKLSAgICBhdXRvIGltcGwgPSBTdHJpbmdJbXBsOjp0cnlDcmVh
dGVVbmluaXRpYWxpemVkKHRvdGFsTGVuZ3RoLCBidWZmZXIpOworICAgIGF1dG8gaW1wbCA9IFN0
cmluZ0ltcGw6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQodG90YWxMZW5ndGgudW5zYWZlR2V0KCks
IGJ1ZmZlcik7CiAgICAgaWYgKCFpbXBsKSB7CiAgICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJv
cihleGVjLCBzY29wZSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIGlu
dCBidWZmZXJQb3MgPSAwOworICAgIENoZWNrZWQ8aW50LCBBc3NlcnROb092ZXJmbG93PiBidWZm
ZXJQb3MgPSAwOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmFuZ2VDb3VudDsgaSsrKSB7CiAg
ICAgICAgIGlmIChpbnQgc3JjTGVuID0gc3Vic3RyaW5nUmFuZ2VzW2ldLmxlbmd0aCkgewotICAg
ICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNoYXJhY3RlcnMoYnVmZmVyICsgYnVmZmVyUG9zLCBz
b3VyY2VEYXRhICsgc3Vic3RyaW5nUmFuZ2VzW2ldLnBvc2l0aW9uLCBzcmNMZW4pOworICAgICAg
ICAgICAgU3RyaW5nSW1wbDo6Y29weUNoYXJhY3RlcnMoYnVmZmVyICsgYnVmZmVyUG9zLnVuc2Fm
ZUdldCgpLCBzb3VyY2VEYXRhICsgc3Vic3RyaW5nUmFuZ2VzW2ldLnBvc2l0aW9uLCBzcmNMZW4p
OwogICAgICAgICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAgICAgfQogICAgIH0KQEAg
LTQxNCwxNyArNDE5LDE3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpTU3RyaW5nKiBqc1NwbGlj
ZVMKICAgICAgICAgfQogCiAgICAgICAgIGludCBtYXhDb3VudCA9IHN0ZDo6bWF4KHJhbmdlQ291
bnQsIHNlcGFyYXRvckNvdW50KTsKLSAgICAgICAgaW50IGJ1ZmZlclBvcyA9IDA7CisgICAgICAg
IENoZWNrZWQ8aW50LCBBc3NlcnROb092ZXJmbG93PiBidWZmZXJQb3MgPSAwOwogICAgICAgICBm
b3IgKGludCBpID0gMDsgaSA8IG1heENvdW50OyBpKyspIHsKICAgICAgICAgICAgIGlmIChpIDwg
cmFuZ2VDb3VudCkgewogICAgICAgICAgICAgICAgIGlmIChpbnQgc3JjTGVuID0gc3Vic3RyaW5n
UmFuZ2VzW2ldLmxlbmd0aCkgewotICAgICAgICAgICAgICAgICAgICBTdHJpbmdJbXBsOjpjb3B5
Q2hhcmFjdGVycyhidWZmZXIgKyBidWZmZXJQb3MsIHNvdXJjZURhdGEgKyBzdWJzdHJpbmdSYW5n
ZXNbaV0ucG9zaXRpb24sIHNyY0xlbik7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6
OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciArIGJ1ZmZlclBvcy51bnNhZmVHZXQoKSwgc291cmNlRGF0
YSArIHN1YnN0cmluZ1Jhbmdlc1tpXS5wb3NpdGlvbiwgc3JjTGVuKTsKICAgICAgICAgICAgICAg
ICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBpZiAoaSA8IHNlcGFyYXRvckNvdW50KSB7CiAgICAgICAgICAgICAg
ICAgaWYgKGludCBzZXBMZW4gPSBzZXBhcmF0b3JzW2ldLmxlbmd0aCgpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciArIGJ1ZmZlclBvcywg
c2VwYXJhdG9yc1tpXS5jaGFyYWN0ZXJzOCgpLCBzZXBMZW4pOworICAgICAgICAgICAgICAgICAg
ICBTdHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZmZXJQb3MudW5zYWZlR2V0
KCksIHNlcGFyYXRvcnNbaV0uY2hhcmFjdGVyczgoKSwgc2VwTGVuKTsKICAgICAgICAgICAgICAg
ICAgICAgYnVmZmVyUG9zICs9IHNlcExlbjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICB9CkBAIC00NDEsMjMgKzQ0NiwyMyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBKU1N0cmluZyog
anNTcGxpY2VTCiAgICAgfQogCiAgICAgaW50IG1heENvdW50ID0gc3RkOjptYXgocmFuZ2VDb3Vu
dCwgc2VwYXJhdG9yQ291bnQpOwotICAgIGludCBidWZmZXJQb3MgPSAwOworICAgIENoZWNrZWQ8
aW50LCBBc3NlcnROb092ZXJmbG93PiBidWZmZXJQb3MgPSAwOwogICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgbWF4Q291bnQ7IGkrKykgewogICAgICAgICBpZiAoaSA8IHJhbmdlQ291bnQpIHsKICAg
ICAgICAgICAgIGlmIChpbnQgc3JjTGVuID0gc3Vic3RyaW5nUmFuZ2VzW2ldLmxlbmd0aCkgewog
ICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuaXM4Qml0KCkpCi0gICAgICAgICAgICAgICAgICAg
IFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciArIGJ1ZmZlclBvcywgc291cmNlLmNo
YXJhY3RlcnM4KCkgKyBzdWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xlbik7CisgICAg
ICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciArIGJ1ZmZl
clBvcy51bnNhZmVHZXQoKSwgc291cmNlLmNoYXJhY3RlcnM4KCkgKyBzdWJzdHJpbmdSYW5nZXNb
aV0ucG9zaXRpb24sIHNyY0xlbik7CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICBTdHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZmZXJQb3MsIHNv
dXJjZS5jaGFyYWN0ZXJzMTYoKSArIHN1YnN0cmluZ1Jhbmdlc1tpXS5wb3NpdGlvbiwgc3JjTGVu
KTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNoYXJhY3RlcnMoYnVmZmVy
ICsgYnVmZmVyUG9zLnVuc2FmZUdldCgpLCBzb3VyY2UuY2hhcmFjdGVyczE2KCkgKyBzdWJzdHJp
bmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xlbik7CiAgICAgICAgICAgICAgICAgYnVmZmVyUG9z
ICs9IHNyY0xlbjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBpZiAoaSA8IHNl
cGFyYXRvckNvdW50KSB7CiAgICAgICAgICAgICBpZiAoaW50IHNlcExlbiA9IHNlcGFyYXRvcnNb
aV0ubGVuZ3RoKCkpIHsKICAgICAgICAgICAgICAgICBpZiAoc2VwYXJhdG9yc1tpXS5pczhCaXQo
KSkKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNoYXJhY3RlcnMoYnVmZmVy
ICsgYnVmZmVyUG9zLCBzZXBhcmF0b3JzW2ldLmNoYXJhY3RlcnM4KCksIHNlcExlbik7CisgICAg
ICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciArIGJ1ZmZl
clBvcy51bnNhZmVHZXQoKSwgc2VwYXJhdG9yc1tpXS5jaGFyYWN0ZXJzOCgpLCBzZXBMZW4pOwog
ICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29w
eUNoYXJhY3RlcnMoYnVmZmVyICsgYnVmZmVyUG9zLCBzZXBhcmF0b3JzW2ldLmNoYXJhY3RlcnMx
NigpLCBzZXBMZW4pOworICAgICAgICAgICAgICAgICAgICBTdHJpbmdJbXBsOjpjb3B5Q2hhcmFj
dGVycyhidWZmZXIgKyBidWZmZXJQb3MudW5zYWZlR2V0KCksIHNlcGFyYXRvcnNbaV0uY2hhcmFj
dGVyczE2KCksIHNlcExlbik7CiAgICAgICAgICAgICAgICAgYnVmZmVyUG9zICs9IHNlcExlbjsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNzI5LDcgKzczNCw5IEBAIEpTQ2VsbCogSklU
X09QRVJBVElPTiBvcGVyYXRpb25TdHJpbmdQcm8KICAgICAgICAgLy8gRVM1LjEgMTUuNS40LjEw
IHN0ZXAgOC5hLgogICAgICAgICBzZWFyY2hWYWx1ZS0+c2V0TGFzdEluZGV4KGV4ZWMsIDApOwog
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHNjb3BlLCByZW1vdmVVc2luZ1JlZ0V4cFNlYXJjaCh2bSwgZXhlYywg
dGhpc1ZhbHVlLCB0aGlzVmFsdWUtPnZhbHVlKGV4ZWMpLCByZWdFeHApKTsKKyAgICAgICAgY29u
c3QgU3RyaW5nJiBzb3VyY2UgPSB0aGlzVmFsdWUtPnZhbHVlKGV4ZWMpOworICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHNjb3BlLCByZW1vdmVVc2luZ1JlZ0V4cFNlYXJjaCh2bSwgZXhlYywgdGhpc1ZhbHVlLCBz
b3VyY2UsIHJlZ0V4cCkpOwogICAgIH0KIAogICAgIENhbGxEYXRhIGNhbGxEYXRhOwpJbmRleDog
U291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDI0MTk2MykKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMzIgQEAKKzIwMTktMDItMjIgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBhbiBleGNlcHRpb24gY2hlY2sgYW5kIHNvbWUgYXNzZXJ0aW9u
cyBpbiBTdHJpbmdQcm90b3R5cGUuY3BwLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk0OTYyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80ODAxMzQx
Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YW4gQXNzZXJ0Tm9PdmVyZmxvdyBvdmVyZmxvdyBoYW5kbGVyIHdoaWNoIGFsbG93cyB1cyB0byBk
byBDaGVja2VkQXJpdGhtZXRpYworICAgICAgICBmb3IgYXNzZXJ0aW9uIHB1cnBvc2Ugb25seSBv
biBkZWJ1ZyBidWlsZHMgYnV0IHNhY3JpZmljZXMgbm8gcGVyZm9ybWFuY2Ugb24KKyAgICAgICAg
cmVsZWFzZSBidWlsZHMuCisKKyAgICAgICAgKiB3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaDoKKyAg
ICAgICAgKFdURjo6QXNzZXJ0Tm9PdmVyZmxvdzo6b3ZlcmZsb3dlZCk6CisgICAgICAgIChXVEY6
OkFzc2VydE5vT3ZlcmZsb3c6OmNsZWFyT3ZlcmZsb3cpOgorICAgICAgICAoV1RGOjpBc3NlcnRO
b092ZXJmbG93OjpjcmFzaCk6CisgICAgICAgIChXVEY6OkFzc2VydE5vT3ZlcmZsb3c6Omhhc092
ZXJmbG93ZWQgY29uc3QpOgorICAgICAgICAoV1RGOjpvYnNlcnZlc092ZXJmbG93cyk6CisgICAg
ICAgIChXVEY6Om9ic2VydmVzT3ZlcmZsb3dzPEFzc2VydE5vT3ZlcmZsb3c+KToKKyAgICAgICAg
KFdURjo6c2FmZUFkZCk6CisgICAgICAgIChXVEY6OnNhZmVTdWIpOgorICAgICAgICAoV1RGOjpz
YWZlTXVsdGlwbHkpOgorICAgICAgICAoV1RGOjpDaGVja2VkOjpvcGVyYXRvcis9KToKKyAgICAg
ICAgKFdURjo6Q2hlY2tlZDo6b3BlcmF0b3ItPSk6CisgICAgICAgIChXVEY6OkNoZWNrZWQ6Om9w
ZXJhdG9yKj0pOgorICAgICAgICAoV1RGOjpvcGVyYXRvcispOgorICAgICAgICAoV1RGOjpvcGVy
YXRvci0pOgorICAgICAgICAoV1RGOjpvcGVyYXRvciopOgorCiAyMDE5LTAyLTIxICBBbnRvaW5l
IFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBVSVdlYlRvdWNoRXZl
bnRzR2VzdHVyZVJlY29nbml6ZXIuYWN0aXZlVG91Y2hlc0J5SWRlbnRpZmllciB0byBTUEkKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL0NoZWNrZWRBcml0aG1ldGljLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dURi93dGYvQ2hlY2tlZEFyaXRobWV0aWMuaAkocmV2aXNpb24gMjQxOTYzKQorKysgU291
cmNlL1dURi93dGYvQ2hlY2tlZEFyaXRobWV0aWMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTcwLDYg
KzcwLDI0IEBAIGVudW0gY2xhc3MgQ2hlY2tlZFN0YXRlIHsKICAgICBEaWROb3RPdmVyZmxvdwog
fTsKIAorY2xhc3MgQXNzZXJ0Tm9PdmVyZmxvdyB7CitwdWJsaWM6CisgICAgc3RhdGljIE5PX1JF
VFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgb3ZlcmZsb3dlZCgpCisgICAgeworICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICB2b2lkIGNsZWFyT3ZlcmZsb3coKSB7IH0K
KworICAgIHN0YXRpYyBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIHZvaWQgY3Jhc2goKQorICAgIHsK
KyAgICAgICAgQ1JBU0goKTsKKyAgICB9CisKK3B1YmxpYzoKKyAgICBjb25zdGV4cHIgYm9vbCBo
YXNPdmVyZmxvd2VkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KK307CisKIGNsYXNzIENvbmRp
dGlvbmFsQ3Jhc2hPbk92ZXJmbG93IHsKIHB1YmxpYzoKICAgICB2b2lkIG92ZXJmbG93ZWQoKQpA
QCAtNTIzLDkgKzU0MSwyNSBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgUmVzdWx0VHlwZT4gc3RydWN0
IEFyCiAgICAgfQogfTsKIAordGVtcGxhdGUgPGNsYXNzIE92ZXJmbG93SGFuZGxlcj4KK2lubGlu
ZSBib29sIG9ic2VydmVzT3ZlcmZsb3dzKCkgeyByZXR1cm4gdHJ1ZTsgfQorCit0ZW1wbGF0ZSA8
PgoraW5saW5lIGJvb2wgb2JzZXJ2ZXNPdmVyZmxvd3M8QXNzZXJ0Tm9PdmVyZmxvdz4oKSB7IHJl
dHVybiAhQVNTRVJUX0RJU0FCTEVEOyB9CisKIHRlbXBsYXRlIDx0eXBlbmFtZSBVLCB0eXBlbmFt
ZSBWLCB0eXBlbmFtZSBSPiBzdGF0aWMgaW5saW5lIGJvb2wgc2FmZUFkZChVIGxocywgViByaHMs
IFImIHJlc3VsdCkKIHsKICAgICByZXR1cm4gQXJpdGhtZXRpY09wZXJhdGlvbnM8VSwgViwgUj46
OmFkZChsaHMsIHJocywgcmVzdWx0KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordGVtcGxhdGUg
PGNsYXNzIE92ZXJmbG93SGFuZGxlciwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUg
Uj4KK3N0YXRpYyBpbmxpbmUgYm9vbCBzYWZlQWRkKFUgbGhzLCBWIHJocywgUiYgcmVzdWx0KQor
eworICAgIGlmIChvYnNlcnZlc092ZXJmbG93czxPdmVyZmxvd0hhbmRsZXI+KCkpCisgICAgICAg
IHJldHVybiBzYWZlQWRkKGxocywgcmhzLCByZXN1bHQpOworICAgIHJlc3VsdCA9IGxocyArIHJo
czsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFUsIHR5cGVuYW1l
IFYsIHR5cGVuYW1lIFI+IHN0YXRpYyBpbmxpbmUgYm9vbCBzYWZlU3ViKFUgbGhzLCBWIHJocywg
UiYgcmVzdWx0KQpAQCAtNTMzLDExICs1NjcsMjkgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFUsIHR5
cGVuYW1lIFYsIHR5cGVuYQogICAgIHJldHVybiBBcml0aG1ldGljT3BlcmF0aW9uczxVLCBWLCBS
Pjo6c3ViKGxocywgcmhzLCByZXN1bHQpOwogfQogCit0ZW1wbGF0ZSA8Y2xhc3MgT3ZlcmZsb3dI
YW5kbGVyLCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBSPgorc3RhdGljIGlubGlu
ZSBib29sIHNhZmVTdWIoVSBsaHMsIFYgcmhzLCBSJiByZXN1bHQpCit7CisgICAgaWYgKG9ic2Vy
dmVzT3ZlcmZsb3dzPE92ZXJmbG93SGFuZGxlcj4oKSkKKyAgICAgICAgcmV0dXJuIHNhZmVTdWIo
bGhzLCByaHMsIHJlc3VsdCk7CisgICAgcmVzdWx0ID0gbGhzIC0gcmhzOworICAgIHJldHVybiB0
cnVlOworfQorCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUgUj4g
c3RhdGljIGlubGluZSBib29sIHNhZmVNdWx0aXBseShVIGxocywgViByaHMsIFImIHJlc3VsdCkK
IHsKICAgICByZXR1cm4gQXJpdGhtZXRpY09wZXJhdGlvbnM8VSwgViwgUj46Om11bHRpcGx5KGxo
cywgcmhzLCByZXN1bHQpOwogfQogCit0ZW1wbGF0ZSA8Y2xhc3MgT3ZlcmZsb3dIYW5kbGVyLCB0
eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBSPgorc3RhdGljIGlubGluZSBib29sIHNh
ZmVNdWx0aXBseShVIGxocywgViByaHMsIFImIHJlc3VsdCkKK3sKKyAgICBpZiAob2JzZXJ2ZXNP
dmVyZmxvd3M8T3ZlcmZsb3dIYW5kbGVyPigpKQorICAgICAgICByZXR1cm4gc2FmZU11bHRpcGx5
KGxocywgcmhzLCByZXN1bHQpOworICAgIHJlc3VsdCA9IGxocyAqIHJoczsKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwogdGVtcGxhdGUgPHR5cGVuYW1lIFUsIHR5cGVuYW1lIFY+IHN0YXRpYyBpbmxp
bmUgYm9vbCBzYWZlRXF1YWxzKFUgbGhzLCBWIHJocykKIHsKICAgICByZXR1cm4gQXJpdGhtZXRp
Y09wZXJhdGlvbnM8VSwgVj46OmVxdWFscyhsaHMsIHJocyk7CkBAIC02NzYsMjEgKzcyOCwyMSBA
QCBwdWJsaWM6CiAgICAgLy8gTXV0YXRpbmcgYXNzaWdubWVudAogICAgIHRlbXBsYXRlIDx0eXBl
bmFtZSBVPiBjb25zdCBDaGVja2VkIG9wZXJhdG9yKz0oVSByaHMpCiAgICAgewotICAgICAgICBp
ZiAoIXNhZmVBZGQobV92YWx1ZSwgcmhzLCBtX3ZhbHVlKSkKKyAgICAgICAgaWYgKCFzYWZlQWRk
PE92ZXJmbG93SGFuZGxlcj4obV92YWx1ZSwgcmhzLCBtX3ZhbHVlKSkKICAgICAgICAgICAgIHRo
aXMtPm92ZXJmbG93ZWQoKTsKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIAogICAgIHRl
bXBsYXRlIDx0eXBlbmFtZSBVPiBjb25zdCBDaGVja2VkIG9wZXJhdG9yLT0oVSByaHMpCiAgICAg
ewotICAgICAgICBpZiAoIXNhZmVTdWIobV92YWx1ZSwgcmhzLCBtX3ZhbHVlKSkKKyAgICAgICAg
aWYgKCFzYWZlU3ViPE92ZXJmbG93SGFuZGxlcj4obV92YWx1ZSwgcmhzLCBtX3ZhbHVlKSkKICAg
ICAgICAgICAgIHRoaXMtPm92ZXJmbG93ZWQoKTsKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAg
IH0KIAogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBVPiBjb25zdCBDaGVja2VkIG9wZXJhdG9yKj0o
VSByaHMpCiAgICAgewotICAgICAgICBpZiAoIXNhZmVNdWx0aXBseShtX3ZhbHVlLCByaHMsIG1f
dmFsdWUpKQorICAgICAgICBpZiAoIXNhZmVNdWx0aXBseTxPdmVyZmxvd0hhbmRsZXI+KG1fdmFs
dWUsIHJocywgbV92YWx1ZSkpCiAgICAgICAgICAgICB0aGlzLT5vdmVyZmxvd2VkKCk7CiAgICAg
ICAgIHJldHVybiAqdGhpczsKICAgICB9CkBAIC04MTQsNyArODY2LDcgQEAgdGVtcGxhdGUgPHR5
cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYQogICAgIFYgeSA9IDA7CiAgICAgYm9vbCBvdmVy
Zmxvd2VkID0gbGhzLnNhZmVHZXQoeCkgPT0gQ2hlY2tlZFN0YXRlOjpEaWRPdmVyZmxvdyB8fCBy
aHMuc2FmZUdldCh5KSA9PSBDaGVja2VkU3RhdGU6OkRpZE92ZXJmbG93OwogICAgIHR5cGVuYW1l
IFJlc3VsdDxVLCBWPjo6UmVzdWx0VHlwZSByZXN1bHQgPSAwOwotICAgIG92ZXJmbG93ZWQgfD0g
IXNhZmVBZGQoeCwgeSwgcmVzdWx0KTsKKyAgICBvdmVyZmxvd2VkIHw9ICFzYWZlQWRkPE92ZXJm
bG93SGFuZGxlcj4oeCwgeSwgcmVzdWx0KTsKICAgICBpZiAob3ZlcmZsb3dlZCkKICAgICAgICAg
cmV0dXJuIFJlc3VsdE92ZXJmbG93ZWQ7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTgyNiw3ICs4
NzgsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hCiAgICAgViB5
ID0gMDsKICAgICBib29sIG92ZXJmbG93ZWQgPSBsaHMuc2FmZUdldCh4KSA9PSBDaGVja2VkU3Rh
dGU6OkRpZE92ZXJmbG93IHx8IHJocy5zYWZlR2V0KHkpID09IENoZWNrZWRTdGF0ZTo6RGlkT3Zl
cmZsb3c7CiAgICAgdHlwZW5hbWUgUmVzdWx0PFUsIFY+OjpSZXN1bHRUeXBlIHJlc3VsdCA9IDA7
Ci0gICAgb3ZlcmZsb3dlZCB8PSAhc2FmZVN1Yih4LCB5LCByZXN1bHQpOworICAgIG92ZXJmbG93
ZWQgfD0gIXNhZmVTdWI8T3ZlcmZsb3dIYW5kbGVyPih4LCB5LCByZXN1bHQpOwogICAgIGlmIChv
dmVyZmxvd2VkKQogICAgICAgICByZXR1cm4gUmVzdWx0T3ZlcmZsb3dlZDsKICAgICByZXR1cm4g
cmVzdWx0OwpAQCAtODM4LDcgKzg5MCw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBVLCB0eXBlbmFt
ZSBWLCB0eXBlbmEKICAgICBWIHkgPSAwOwogICAgIGJvb2wgb3ZlcmZsb3dlZCA9IGxocy5zYWZl
R2V0KHgpID09IENoZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3cgfHwgcmhzLnNhZmVHZXQoeSkgPT0g
Q2hlY2tlZFN0YXRlOjpEaWRPdmVyZmxvdzsKICAgICB0eXBlbmFtZSBSZXN1bHQ8VSwgVj46OlJl
c3VsdFR5cGUgcmVzdWx0ID0gMDsKLSAgICBvdmVyZmxvd2VkIHw9ICFzYWZlTXVsdGlwbHkoeCwg
eSwgcmVzdWx0KTsKKyAgICBvdmVyZmxvd2VkIHw9ICFzYWZlTXVsdGlwbHk8T3ZlcmZsb3dIYW5k
bGVyPih4LCB5LCByZXN1bHQpOwogICAgIGlmIChvdmVyZmxvd2VkKQogICAgICAgICByZXR1cm4g
UmVzdWx0T3ZlcmZsb3dlZDsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtOTMwLDYgKzk4Miw3IEBA
IHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIEFyZ3M+IGIKIAogfQogCit1c2luZyBX
VEY6OkFzc2VydE5vT3ZlcmZsb3c7CiB1c2luZyBXVEY6OkNoZWNrZWQ7CiB1c2luZyBXVEY6OkNo
ZWNrZWRTdGF0ZTsKIHVzaW5nIFdURjo6Q2hlY2tlZEludDg7Cg==
</data>
<flag name="review"
          id="379383"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362784</attachid>
            <date>2019-02-22 16:28:54 -0800</date>
            <delta_ts>2019-02-22 16:56:18 -0800</delta_ts>
            <desc>patch for landing w/ build fixes.</desc>
            <filename>bug-194962.patch</filename>
            <type>text/plain</type>
            <size>13771</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQxOTY3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDE5LTAyLTIyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgYW4gZXhjZXB0aW9uIGNoZWNrIGFuZCBzb21lIGFzc2VydGlvbnMgaW4gU3RyaW5nUHJvdG90
eXBlLmNwcC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5NDk2MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgwMTM0MTY+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgWXVzdWtlIFN1enVraSBhbmQgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgKiBydW50
aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmpzU3BsaWNlU3Vic3RyaW5n
cyk6CisgICAgICAgIChKU0M6OmpzU3BsaWNlU3Vic3RyaW5nc1dpdGhTZXBhcmF0b3JzKToKKyAg
ICAgICAgKEpTQzo6b3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVwbGFjZVJlZ0V4cEVtcHR5U3Ry
KToKKwogMjAxOS0wMi0yMiAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgog
CiAgICAgICAgIEIzUmVkdWNlU3RyZW5ndGg6IG1pc3NpbmcgcGVlcGhvbGUgb3B0aW1pemF0aW9u
cyBmb3IgYmluYXJ5IG9wZXJhdGlvbnMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMjQxOTYzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFy
cmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0LTIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogIENvcHlyaWdodCAoQykgMjAw
OSBUb3JjaCBNb2JpbGUsIEluYy4KICAqICBDb3B5cmlnaHQgKEMpIDIwMTUgSm9yZGFuIEhhcmJh
bmQgKGxqaGFyYkBnbWFpbC5jb20pCiAgKgpAQCAtMzI0LDkgKzMyNCwxNCBAQCBzdGF0aWMgQUxX
QVlTX0lOTElORSBKU1N0cmluZyoganNTcGxpY2VTCiAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwganNTdHJpbmcoZXhlYywgU3RyaW5nSW1wbDo6Y3JlYXRlU3Vic3RyaW5nU2hhcmlu
Z0ltcGwoKnNvdXJjZS5pbXBsKCksIHN0ZDo6bWF4KDAsIHBvc2l0aW9uKSwgc3RkOjptaW4oc291
cmNlU2l6ZSwgbGVuZ3RoKSkpKTsKICAgICB9CiAKLSAgICBpbnQgdG90YWxMZW5ndGggPSAwOwor
ICAgIC8vIFdlIGtub3cgdGhhdCB0aGUgc3VtIG9mIHN1YnN0cmluZ1JhbmdlcyBsZW5ndGhzIGNh
bm5vdCBleGNlZWQgbGVuZ3RoIG9mCisgICAgLy8gc291cmNlIGJlY2F1c2UgdGhlIHN1YnN0cmlu
Z1JhbmdlcyB3ZXJlIGNvbXB1dGVkIGZyb20gdGhlIHNvdXJjZSBzdHJpbmcKKyAgICAvLyBpbiBy
ZW1vdmVVc2luZ1JlZ0V4cFNlYXJjaCgpLiBIZW5jZSwgdG90YWxMZW5ndGggY2Fubm90IGV4Y2Vl
ZAorICAgIC8vIFN0cmluZzo6TWF4TGVuZ3RoLCBhbmQgdGhlcmVmb3JlLCBjYW5ub3Qgb3ZlcmZs
b3cuCisgICAgQ2hlY2tlZDxpbnQsIEFzc2VydE5vT3ZlcmZsb3c+IHRvdGFsTGVuZ3RoID0gMDsK
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJhbmdlQ291bnQ7IGkrKykKICAgICAgICAgdG90YWxM
ZW5ndGggKz0gc3Vic3RyaW5nUmFuZ2VzW2ldLmxlbmd0aDsKKyAgICBBU1NFUlQodG90YWxMZW5n
dGggPD0gU3RyaW5nOjpNYXhMZW5ndGgpOwogCiAgICAgaWYgKCF0b3RhbExlbmd0aCkKICAgICAg
ICAgcmV0dXJuIGpzRW1wdHlTdHJpbmcoZXhlYyk7CkBAIC0zMzQsMTYgKzMzOSwxNiBAQCBzdGF0
aWMgQUxXQVlTX0lOTElORSBKU1N0cmluZyoganNTcGxpY2VTCiAgICAgaWYgKHNvdXJjZS5pczhC
aXQoKSkgewogICAgICAgICBMQ2hhciogYnVmZmVyOwogICAgICAgICBjb25zdCBMQ2hhciogc291
cmNlRGF0YSA9IHNvdXJjZS5jaGFyYWN0ZXJzOCgpOwotICAgICAgICBhdXRvIGltcGwgPSBTdHJp
bmdJbXBsOjp0cnlDcmVhdGVVbmluaXRpYWxpemVkKHRvdGFsTGVuZ3RoLCBidWZmZXIpOworICAg
ICAgICBhdXRvIGltcGwgPSBTdHJpbmdJbXBsOjp0cnlDcmVhdGVVbmluaXRpYWxpemVkKHRvdGFs
TGVuZ3RoLnVuc2FmZUdldCgpLCBidWZmZXIpOwogICAgICAgICBpZiAoIWltcGwpIHsKICAgICAg
ICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihleGVjLCBzY29wZSk7CiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogCi0gICAgICAgIGludCBidWZmZXJQb3MgPSAwOwor
ICAgICAgICBDaGVja2VkPGludCwgQXNzZXJ0Tm9PdmVyZmxvdz4gYnVmZmVyUG9zID0gMDsKICAg
ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByYW5nZUNvdW50OyBpKyspIHsKICAgICAgICAgICAg
IGlmIChpbnQgc3JjTGVuID0gc3Vic3RyaW5nUmFuZ2VzW2ldLmxlbmd0aCkgewotICAgICAgICAg
ICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciArIGJ1ZmZlclBvcywgc291
cmNlRGF0YSArIHN1YnN0cmluZ1Jhbmdlc1tpXS5wb3NpdGlvbiwgc3JjTGVuKTsKKyAgICAgICAg
ICAgICAgICBTdHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZmZXJQb3MudW5z
YWZlR2V0KCksIHNvdXJjZURhdGEgKyBzdWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xl
bik7CiAgICAgICAgICAgICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQpAQCAtMzU0LDE2ICszNTksMTYgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgSlNT
dHJpbmcqIGpzU3BsaWNlUwogICAgIFVDaGFyKiBidWZmZXI7CiAgICAgY29uc3QgVUNoYXIqIHNv
dXJjZURhdGEgPSBzb3VyY2UuY2hhcmFjdGVyczE2KCk7CiAKLSAgICBhdXRvIGltcGwgPSBTdHJp
bmdJbXBsOjp0cnlDcmVhdGVVbmluaXRpYWxpemVkKHRvdGFsTGVuZ3RoLCBidWZmZXIpOworICAg
IGF1dG8gaW1wbCA9IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQodG90YWxMZW5n
dGgudW5zYWZlR2V0KCksIGJ1ZmZlcik7CiAgICAgaWYgKCFpbXBsKSB7CiAgICAgICAgIHRocm93
T3V0T2ZNZW1vcnlFcnJvcihleGVjLCBzY29wZSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KIAotICAgIGludCBidWZmZXJQb3MgPSAwOworICAgIENoZWNrZWQ8aW50LCBBc3NlcnRO
b092ZXJmbG93PiBidWZmZXJQb3MgPSAwOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmFuZ2VD
b3VudDsgaSsrKSB7CiAgICAgICAgIGlmIChpbnQgc3JjTGVuID0gc3Vic3RyaW5nUmFuZ2VzW2ld
Lmxlbmd0aCkgewotICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNoYXJhY3RlcnMoYnVmZmVy
ICsgYnVmZmVyUG9zLCBzb3VyY2VEYXRhICsgc3Vic3RyaW5nUmFuZ2VzW2ldLnBvc2l0aW9uLCBz
cmNMZW4pOworICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNoYXJhY3RlcnMoYnVmZmVyICsg
YnVmZmVyUG9zLnVuc2FmZUdldCgpLCBzb3VyY2VEYXRhICsgc3Vic3RyaW5nUmFuZ2VzW2ldLnBv
c2l0aW9uLCBzcmNMZW4pOwogICAgICAgICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAg
ICAgfQogICAgIH0KQEAgLTQxNCwxNyArNDE5LDE3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpT
U3RyaW5nKiBqc1NwbGljZVMKICAgICAgICAgfQogCiAgICAgICAgIGludCBtYXhDb3VudCA9IHN0
ZDo6bWF4KHJhbmdlQ291bnQsIHNlcGFyYXRvckNvdW50KTsKLSAgICAgICAgaW50IGJ1ZmZlclBv
cyA9IDA7CisgICAgICAgIENoZWNrZWQ8aW50LCBBc3NlcnROb092ZXJmbG93PiBidWZmZXJQb3Mg
PSAwOwogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1heENvdW50OyBpKyspIHsKICAgICAg
ICAgICAgIGlmIChpIDwgcmFuZ2VDb3VudCkgewogICAgICAgICAgICAgICAgIGlmIChpbnQgc3Jj
TGVuID0gc3Vic3RyaW5nUmFuZ2VzW2ldLmxlbmd0aCkgewotICAgICAgICAgICAgICAgICAgICBT
dHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZmZXJQb3MsIHNvdXJjZURhdGEg
KyBzdWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xlbik7CisgICAgICAgICAgICAgICAg
ICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciArIGJ1ZmZlclBvcy51bnNhZmVH
ZXQoKSwgc291cmNlRGF0YSArIHN1YnN0cmluZ1Jhbmdlc1tpXS5wb3NpdGlvbiwgc3JjTGVuKTsK
ICAgICAgICAgICAgICAgICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoaSA8IHNlcGFyYXRvckNvdW50KSB7
CiAgICAgICAgICAgICAgICAgaWYgKGludCBzZXBMZW4gPSBzZXBhcmF0b3JzW2ldLmxlbmd0aCgp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZl
ciArIGJ1ZmZlclBvcywgc2VwYXJhdG9yc1tpXS5jaGFyYWN0ZXJzOCgpLCBzZXBMZW4pOworICAg
ICAgICAgICAgICAgICAgICBTdHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZm
ZXJQb3MudW5zYWZlR2V0KCksIHNlcGFyYXRvcnNbaV0uY2hhcmFjdGVyczgoKSwgc2VwTGVuKTsK
ICAgICAgICAgICAgICAgICAgICAgYnVmZmVyUG9zICs9IHNlcExlbjsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9CkBAIC00NDEsMjMgKzQ0NiwyMyBAQCBzdGF0aWMgQUxXQVlTX0lO
TElORSBKU1N0cmluZyoganNTcGxpY2VTCiAgICAgfQogCiAgICAgaW50IG1heENvdW50ID0gc3Rk
OjptYXgocmFuZ2VDb3VudCwgc2VwYXJhdG9yQ291bnQpOwotICAgIGludCBidWZmZXJQb3MgPSAw
OworICAgIENoZWNrZWQ8aW50LCBBc3NlcnROb092ZXJmbG93PiBidWZmZXJQb3MgPSAwOwogICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgbWF4Q291bnQ7IGkrKykgewogICAgICAgICBpZiAoaSA8IHJh
bmdlQ291bnQpIHsKICAgICAgICAgICAgIGlmIChpbnQgc3JjTGVuID0gc3Vic3RyaW5nUmFuZ2Vz
W2ldLmxlbmd0aCkgewogICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuaXM4Qml0KCkpCi0gICAg
ICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciArIGJ1ZmZl
clBvcywgc291cmNlLmNoYXJhY3RlcnM4KCkgKyBzdWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24s
IHNyY0xlbik7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJz
KGJ1ZmZlciArIGJ1ZmZlclBvcy51bnNhZmVHZXQoKSwgc291cmNlLmNoYXJhY3RlcnM4KCkgKyBz
dWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xlbik7CiAgICAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICBTdHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIg
KyBidWZmZXJQb3MsIHNvdXJjZS5jaGFyYWN0ZXJzMTYoKSArIHN1YnN0cmluZ1Jhbmdlc1tpXS5w
b3NpdGlvbiwgc3JjTGVuKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNo
YXJhY3RlcnMoYnVmZmVyICsgYnVmZmVyUG9zLnVuc2FmZUdldCgpLCBzb3VyY2UuY2hhcmFjdGVy
czE2KCkgKyBzdWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xlbik7CiAgICAgICAgICAg
ICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
ICAgICBpZiAoaSA8IHNlcGFyYXRvckNvdW50KSB7CiAgICAgICAgICAgICBpZiAoaW50IHNlcExl
biA9IHNlcGFyYXRvcnNbaV0ubGVuZ3RoKCkpIHsKICAgICAgICAgICAgICAgICBpZiAoc2VwYXJh
dG9yc1tpXS5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNo
YXJhY3RlcnMoYnVmZmVyICsgYnVmZmVyUG9zLCBzZXBhcmF0b3JzW2ldLmNoYXJhY3RlcnM4KCks
IHNlcExlbik7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJz
KGJ1ZmZlciArIGJ1ZmZlclBvcy51bnNhZmVHZXQoKSwgc2VwYXJhdG9yc1tpXS5jaGFyYWN0ZXJz
OCgpLCBzZXBMZW4pOwogICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAg
U3RyaW5nSW1wbDo6Y29weUNoYXJhY3RlcnMoYnVmZmVyICsgYnVmZmVyUG9zLCBzZXBhcmF0b3Jz
W2ldLmNoYXJhY3RlcnMxNigpLCBzZXBMZW4pOworICAgICAgICAgICAgICAgICAgICBTdHJpbmdJ
bXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZmZXJQb3MudW5zYWZlR2V0KCksIHNlcGFy
YXRvcnNbaV0uY2hhcmFjdGVyczE2KCksIHNlcExlbik7CiAgICAgICAgICAgICAgICAgYnVmZmVy
UG9zICs9IHNlcExlbjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNzI5LDcgKzczNCw5
IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25TdHJpbmdQcm8KICAgICAgICAgLy8g
RVM1LjEgMTUuNS40LjEwIHN0ZXAgOC5hLgogICAgICAgICBzZWFyY2hWYWx1ZS0+c2V0TGFzdElu
ZGV4KGV4ZWMsIDApOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRy
KTsKLSAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCByZW1vdmVVc2luZ1JlZ0V4cFNl
YXJjaCh2bSwgZXhlYywgdGhpc1ZhbHVlLCB0aGlzVmFsdWUtPnZhbHVlKGV4ZWMpLCByZWdFeHAp
KTsKKyAgICAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2UgPSB0aGlzVmFsdWUtPnZhbHVlKGV4ZWMp
OworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKyAgICAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCByZW1vdmVVc2luZ1JlZ0V4cFNlYXJjaCh2bSwgZXhl
YywgdGhpc1ZhbHVlLCBzb3VyY2UsIHJlZ0V4cCkpOwogICAgIH0KIAogICAgIENhbGxEYXRhIGNh
bGxEYXRhOwpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MTk2MykKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTktMDItMjIgIE1hcmsgTGFtICA8
bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhbiBleGNlcHRpb24gY2hlY2sgYW5k
IHNvbWUgYXNzZXJ0aW9ucyBpbiBTdHJpbmdQcm90b3R5cGUuY3BwLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0OTYyCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80ODAxMzQxNj4KKworICAgICAgICBSZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpIGFu
ZCBTYWFtIEJhcmF0aS4KKworICAgICAgICBBZGQgYW4gQXNzZXJ0Tm9PdmVyZmxvdyBvdmVyZmxv
dyBoYW5kbGVyIHdoaWNoIGFsbG93cyB1cyB0byBkbyBDaGVja2VkQXJpdGhtZXRpYworICAgICAg
ICBmb3IgYXNzZXJ0aW9uIHB1cnBvc2Ugb25seSBvbiBkZWJ1ZyBidWlsZHMgYnV0IHNhY3JpZmlj
ZXMgbm8gcGVyZm9ybWFuY2Ugb24KKyAgICAgICAgcmVsZWFzZSBidWlsZHMuCisKKyAgICAgICAg
KiB3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaDoKKyAgICAgICAgKFdURjo6QXNzZXJ0Tm9PdmVyZmxv
dzo6b3ZlcmZsb3dlZCk6CisgICAgICAgIChXVEY6OkFzc2VydE5vT3ZlcmZsb3c6OmNsZWFyT3Zl
cmZsb3cpOgorICAgICAgICAoV1RGOjpBc3NlcnROb092ZXJmbG93OjpjcmFzaCk6CisgICAgICAg
IChXVEY6OkFzc2VydE5vT3ZlcmZsb3c6Omhhc092ZXJmbG93ZWQgY29uc3QpOgorICAgICAgICAo
V1RGOjpvYnNlcnZlc092ZXJmbG93KToKKyAgICAgICAgKFdURjo6b2JzZXJ2ZXNPdmVyZmxvdzxB
c3NlcnROb092ZXJmbG93Pik6CisgICAgICAgIChXVEY6OnNhZmVBZGQpOgorICAgICAgICAoV1RG
OjpzYWZlU3ViKToKKyAgICAgICAgKFdURjo6c2FmZU11bHRpcGx5KToKKyAgICAgICAgKFdURjo6
Q2hlY2tlZDo6b3BlcmF0b3IrPSk6CisgICAgICAgIChXVEY6OkNoZWNrZWQ6Om9wZXJhdG9yLT0p
OgorICAgICAgICAoV1RGOjpDaGVja2VkOjpvcGVyYXRvcio9KToKKyAgICAgICAgKFdURjo6b3Bl
cmF0b3IrKToKKyAgICAgICAgKFdURjo6b3BlcmF0b3ItKToKKyAgICAgICAgKFdURjo6b3BlcmF0
b3IqKToKKwogMjAxOS0wMi0yMSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgog
CiAgICAgICAgIE1vdmUgVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyLmFjdGl2ZVRv
dWNoZXNCeUlkZW50aWZpZXIgdG8gU1BJCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9DaGVja2VkQXJp
dGhtZXRpYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0NoZWNrZWRBcml0aG1ldGlj
LmgJKHJldmlzaW9uIDI0MTk2MykKKysrIFNvdXJjZS9XVEYvd3RmL0NoZWNrZWRBcml0aG1ldGlj
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDExLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDExLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC03MCw2ICs3MCwyNCBAQCBlbnVtIGNsYXNzIENoZWNrZWRT
dGF0ZSB7CiAgICAgRGlkTm90T3ZlcmZsb3cKIH07CiAKK2NsYXNzIEFzc2VydE5vT3ZlcmZsb3cg
eworcHVibGljOgorICAgIHN0YXRpYyBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIG92ZXJm
bG93ZWQoKQorICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisg
ICAgdm9pZCBjbGVhck92ZXJmbG93KCkgeyB9CisKKyAgICBzdGF0aWMgTk9fUkVUVVJOX0RVRV9U
T19DUkFTSCB2b2lkIGNyYXNoKCkKKyAgICB7CisgICAgICAgIENSQVNIKCk7CisgICAgfQorCitw
dWJsaWM6CisgICAgY29uc3RleHByIGJvb2wgaGFzT3ZlcmZsb3dlZCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9Cit9OworCiBjbGFzcyBDb25kaXRpb25hbENyYXNoT25PdmVyZmxvdyB7CiBwdWJs
aWM6CiAgICAgdm9pZCBvdmVyZmxvd2VkKCkKQEAgLTUyMyw5ICs1NDEsMjUgQEAgdGVtcGxhdGUg
PHR5cGVuYW1lIFJlc3VsdFR5cGU+IHN0cnVjdCBBcgogICAgIH0KIH07CiAKK3RlbXBsYXRlIDxj
bGFzcyBPdmVyZmxvd0hhbmRsZXIsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6Omlz
X2NsYXNzPE92ZXJmbG93SGFuZGxlcj46OnZhbHVlPj4KK2lubGluZSBjb25zdGV4cHIgYm9vbCBv
YnNlcnZlc092ZXJmbG93KCkgeyByZXR1cm4gdHJ1ZTsgfQorCit0ZW1wbGF0ZSA8PgoraW5saW5l
IGNvbnN0ZXhwciBib29sIG9ic2VydmVzT3ZlcmZsb3c8QXNzZXJ0Tm9PdmVyZmxvdz4oKSB7IHJl
dHVybiAhQVNTRVJUX0RJU0FCTEVEOyB9CisKIHRlbXBsYXRlIDx0eXBlbmFtZSBVLCB0eXBlbmFt
ZSBWLCB0eXBlbmFtZSBSPiBzdGF0aWMgaW5saW5lIGJvb2wgc2FmZUFkZChVIGxocywgViByaHMs
IFImIHJlc3VsdCkKIHsKICAgICByZXR1cm4gQXJpdGhtZXRpY09wZXJhdGlvbnM8VSwgViwgUj46
OmFkZChsaHMsIHJocywgcmVzdWx0KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordGVtcGxhdGUg
PGNsYXNzIE92ZXJmbG93SGFuZGxlciwgdHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUg
Uj4KK3N0YXRpYyBpbmxpbmUgYm9vbCBzYWZlQWRkKFUgbGhzLCBWIHJocywgUiYgcmVzdWx0KQor
eworICAgIGlmIChvYnNlcnZlc092ZXJmbG93PE92ZXJmbG93SGFuZGxlcj4oKSkKKyAgICAgICAg
cmV0dXJuIHNhZmVBZGQobGhzLCByaHMsIHJlc3VsdCk7CisgICAgcmVzdWx0ID0gbGhzICsgcmhz
OworICAgIHJldHVybiB0cnVlOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVSwgdHlwZW5hbWUg
ViwgdHlwZW5hbWUgUj4gc3RhdGljIGlubGluZSBib29sIHNhZmVTdWIoVSBsaHMsIFYgcmhzLCBS
JiByZXN1bHQpCkBAIC01MzMsMTEgKzU2NywyOSBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVSwgdHlw
ZW5hbWUgViwgdHlwZW5hCiAgICAgcmV0dXJuIEFyaXRobWV0aWNPcGVyYXRpb25zPFUsIFYsIFI+
OjpzdWIobGhzLCByaHMsIHJlc3VsdCk7CiB9CiAKK3RlbXBsYXRlIDxjbGFzcyBPdmVyZmxvd0hh
bmRsZXIsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFI+CitzdGF0aWMgaW5saW5l
IGJvb2wgc2FmZVN1YihVIGxocywgViByaHMsIFImIHJlc3VsdCkKK3sKKyAgICBpZiAob2JzZXJ2
ZXNPdmVyZmxvdzxPdmVyZmxvd0hhbmRsZXI+KCkpCisgICAgICAgIHJldHVybiBzYWZlU3ViKGxo
cywgcmhzLCByZXN1bHQpOworICAgIHJlc3VsdCA9IGxocyAtIHJoczsKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKwogdGVtcGxhdGUgPHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFI+IHN0
YXRpYyBpbmxpbmUgYm9vbCBzYWZlTXVsdGlwbHkoVSBsaHMsIFYgcmhzLCBSJiByZXN1bHQpCiB7
CiAgICAgcmV0dXJuIEFyaXRobWV0aWNPcGVyYXRpb25zPFUsIFYsIFI+OjptdWx0aXBseShsaHMs
IHJocywgcmVzdWx0KTsKIH0KIAordGVtcGxhdGUgPGNsYXNzIE92ZXJmbG93SGFuZGxlciwgdHlw
ZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUgUj4KK3N0YXRpYyBpbmxpbmUgYm9vbCBzYWZl
TXVsdGlwbHkoVSBsaHMsIFYgcmhzLCBSJiByZXN1bHQpCit7CisgICAgaWYgKG9ic2VydmVzT3Zl
cmZsb3c8T3ZlcmZsb3dIYW5kbGVyPigpKQorICAgICAgICByZXR1cm4gc2FmZU11bHRpcGx5KGxo
cywgcmhzLCByZXN1bHQpOworICAgIHJlc3VsdCA9IGxocyAqIHJoczsKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKwogdGVtcGxhdGUgPHR5cGVuYW1lIFUsIHR5cGVuYW1lIFY+IHN0YXRpYyBpbmxpbmUg
Ym9vbCBzYWZlRXF1YWxzKFUgbGhzLCBWIHJocykKIHsKICAgICByZXR1cm4gQXJpdGhtZXRpY09w
ZXJhdGlvbnM8VSwgVj46OmVxdWFscyhsaHMsIHJocyk7CkBAIC02NzYsMjEgKzcyOCwyMSBAQCBw
dWJsaWM6CiAgICAgLy8gTXV0YXRpbmcgYXNzaWdubWVudAogICAgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBVPiBjb25zdCBDaGVja2VkIG9wZXJhdG9yKz0oVSByaHMpCiAgICAgewotICAgICAgICBpZiAo
IXNhZmVBZGQobV92YWx1ZSwgcmhzLCBtX3ZhbHVlKSkKKyAgICAgICAgaWYgKCFzYWZlQWRkPE92
ZXJmbG93SGFuZGxlcj4obV92YWx1ZSwgcmhzLCBtX3ZhbHVlKSkKICAgICAgICAgICAgIHRoaXMt
Pm92ZXJmbG93ZWQoKTsKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KIAogICAgIHRlbXBs
YXRlIDx0eXBlbmFtZSBVPiBjb25zdCBDaGVja2VkIG9wZXJhdG9yLT0oVSByaHMpCiAgICAgewot
ICAgICAgICBpZiAoIXNhZmVTdWIobV92YWx1ZSwgcmhzLCBtX3ZhbHVlKSkKKyAgICAgICAgaWYg
KCFzYWZlU3ViPE92ZXJmbG93SGFuZGxlcj4obV92YWx1ZSwgcmhzLCBtX3ZhbHVlKSkKICAgICAg
ICAgICAgIHRoaXMtPm92ZXJmbG93ZWQoKTsKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0K
IAogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBVPiBjb25zdCBDaGVja2VkIG9wZXJhdG9yKj0oVSBy
aHMpCiAgICAgewotICAgICAgICBpZiAoIXNhZmVNdWx0aXBseShtX3ZhbHVlLCByaHMsIG1fdmFs
dWUpKQorICAgICAgICBpZiAoIXNhZmVNdWx0aXBseTxPdmVyZmxvd0hhbmRsZXI+KG1fdmFsdWUs
IHJocywgbV92YWx1ZSkpCiAgICAgICAgICAgICB0aGlzLT5vdmVyZmxvd2VkKCk7CiAgICAgICAg
IHJldHVybiAqdGhpczsKICAgICB9CkBAIC04MTQsNyArODY2LDcgQEAgdGVtcGxhdGUgPHR5cGVu
YW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYQogICAgIFYgeSA9IDA7CiAgICAgYm9vbCBvdmVyZmxv
d2VkID0gbGhzLnNhZmVHZXQoeCkgPT0gQ2hlY2tlZFN0YXRlOjpEaWRPdmVyZmxvdyB8fCByaHMu
c2FmZUdldCh5KSA9PSBDaGVja2VkU3RhdGU6OkRpZE92ZXJmbG93OwogICAgIHR5cGVuYW1lIFJl
c3VsdDxVLCBWPjo6UmVzdWx0VHlwZSByZXN1bHQgPSAwOwotICAgIG92ZXJmbG93ZWQgfD0gIXNh
ZmVBZGQoeCwgeSwgcmVzdWx0KTsKKyAgICBvdmVyZmxvd2VkIHw9ICFzYWZlQWRkPE92ZXJmbG93
SGFuZGxlcj4oeCwgeSwgcmVzdWx0KTsKICAgICBpZiAob3ZlcmZsb3dlZCkKICAgICAgICAgcmV0
dXJuIFJlc3VsdE92ZXJmbG93ZWQ7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTgyNiw3ICs4Nzgs
NyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hCiAgICAgViB5ID0g
MDsKICAgICBib29sIG92ZXJmbG93ZWQgPSBsaHMuc2FmZUdldCh4KSA9PSBDaGVja2VkU3RhdGU6
OkRpZE92ZXJmbG93IHx8IHJocy5zYWZlR2V0KHkpID09IENoZWNrZWRTdGF0ZTo6RGlkT3ZlcmZs
b3c7CiAgICAgdHlwZW5hbWUgUmVzdWx0PFUsIFY+OjpSZXN1bHRUeXBlIHJlc3VsdCA9IDA7Ci0g
ICAgb3ZlcmZsb3dlZCB8PSAhc2FmZVN1Yih4LCB5LCByZXN1bHQpOworICAgIG92ZXJmbG93ZWQg
fD0gIXNhZmVTdWI8T3ZlcmZsb3dIYW5kbGVyPih4LCB5LCByZXN1bHQpOwogICAgIGlmIChvdmVy
Zmxvd2VkKQogICAgICAgICByZXR1cm4gUmVzdWx0T3ZlcmZsb3dlZDsKICAgICByZXR1cm4gcmVz
dWx0OwpAQCAtODM4LDcgKzg5MCw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBVLCB0eXBlbmFtZSBW
LCB0eXBlbmEKICAgICBWIHkgPSAwOwogICAgIGJvb2wgb3ZlcmZsb3dlZCA9IGxocy5zYWZlR2V0
KHgpID09IENoZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3cgfHwgcmhzLnNhZmVHZXQoeSkgPT0gQ2hl
Y2tlZFN0YXRlOjpEaWRPdmVyZmxvdzsKICAgICB0eXBlbmFtZSBSZXN1bHQ8VSwgVj46OlJlc3Vs
dFR5cGUgcmVzdWx0ID0gMDsKLSAgICBvdmVyZmxvd2VkIHw9ICFzYWZlTXVsdGlwbHkoeCwgeSwg
cmVzdWx0KTsKKyAgICBvdmVyZmxvd2VkIHw9ICFzYWZlTXVsdGlwbHk8T3ZlcmZsb3dIYW5kbGVy
Pih4LCB5LCByZXN1bHQpOwogICAgIGlmIChvdmVyZmxvd2VkKQogICAgICAgICByZXR1cm4gUmVz
dWx0T3ZlcmZsb3dlZDsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtOTMwLDYgKzk4Miw3IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIEFyZ3M+IGIKIAogfQogCit1c2luZyBXVEY6
OkFzc2VydE5vT3ZlcmZsb3c7CiB1c2luZyBXVEY6OkNoZWNrZWQ7CiB1c2luZyBXVEY6OkNoZWNr
ZWRTdGF0ZTsKIHVzaW5nIFdURjo6Q2hlY2tlZEludDg7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362790</attachid>
            <date>2019-02-22 16:56:18 -0800</date>
            <delta_ts>2019-02-22 17:18:27 -0800</delta_ts>
            <desc>patch for landing.</desc>
            <filename>bug-194962.patch</filename>
            <type>text/plain</type>
            <size>13772</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQxOTY3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDE5LTAyLTIyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgYW4gZXhjZXB0aW9uIGNoZWNrIGFuZCBzb21lIGFzc2VydGlvbnMgaW4gU3RyaW5nUHJvdG90
eXBlLmNwcC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5NDk2MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgwMTM0MTY+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgWXVzdWtlIFN1enVraSBhbmQgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgKiBydW50
aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmpzU3BsaWNlU3Vic3RyaW5n
cyk6CisgICAgICAgIChKU0M6OmpzU3BsaWNlU3Vic3RyaW5nc1dpdGhTZXBhcmF0b3JzKToKKyAg
ICAgICAgKEpTQzo6b3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVwbGFjZVJlZ0V4cEVtcHR5U3Ry
KToKKwogMjAxOS0wMi0yMiAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgog
CiAgICAgICAgIEIzUmVkdWNlU3RyZW5ndGg6IG1pc3NpbmcgcGVlcGhvbGUgb3B0aW1pemF0aW9u
cyBmb3IgYmluYXJ5IG9wZXJhdGlvbnMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMjQxOTYzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFy
cmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0LTIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogIENvcHlyaWdodCAoQykgMjAw
OSBUb3JjaCBNb2JpbGUsIEluYy4KICAqICBDb3B5cmlnaHQgKEMpIDIwMTUgSm9yZGFuIEhhcmJh
bmQgKGxqaGFyYkBnbWFpbC5jb20pCiAgKgpAQCAtMzI0LDkgKzMyNCwxNCBAQCBzdGF0aWMgQUxX
QVlTX0lOTElORSBKU1N0cmluZyoganNTcGxpY2VTCiAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwganNTdHJpbmcoZXhlYywgU3RyaW5nSW1wbDo6Y3JlYXRlU3Vic3RyaW5nU2hhcmlu
Z0ltcGwoKnNvdXJjZS5pbXBsKCksIHN0ZDo6bWF4KDAsIHBvc2l0aW9uKSwgc3RkOjptaW4oc291
cmNlU2l6ZSwgbGVuZ3RoKSkpKTsKICAgICB9CiAKLSAgICBpbnQgdG90YWxMZW5ndGggPSAwOwor
ICAgIC8vIFdlIGtub3cgdGhhdCB0aGUgc3VtIG9mIHN1YnN0cmluZ1JhbmdlcyBsZW5ndGhzIGNh
bm5vdCBleGNlZWQgbGVuZ3RoIG9mCisgICAgLy8gc291cmNlIGJlY2F1c2UgdGhlIHN1YnN0cmlu
Z1JhbmdlcyB3ZXJlIGNvbXB1dGVkIGZyb20gdGhlIHNvdXJjZSBzdHJpbmcKKyAgICAvLyBpbiBy
ZW1vdmVVc2luZ1JlZ0V4cFNlYXJjaCgpLiBIZW5jZSwgdG90YWxMZW5ndGggY2Fubm90IGV4Y2Vl
ZAorICAgIC8vIFN0cmluZzo6TWF4TGVuZ3RoLCBhbmQgdGhlcmVmb3JlLCBjYW5ub3Qgb3ZlcmZs
b3cuCisgICAgQ2hlY2tlZDxpbnQsIEFzc2VydE5vT3ZlcmZsb3c+IHRvdGFsTGVuZ3RoID0gMDsK
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJhbmdlQ291bnQ7IGkrKykKICAgICAgICAgdG90YWxM
ZW5ndGggKz0gc3Vic3RyaW5nUmFuZ2VzW2ldLmxlbmd0aDsKKyAgICBBU1NFUlQodG90YWxMZW5n
dGggPD0gU3RyaW5nOjpNYXhMZW5ndGgpOwogCiAgICAgaWYgKCF0b3RhbExlbmd0aCkKICAgICAg
ICAgcmV0dXJuIGpzRW1wdHlTdHJpbmcoZXhlYyk7CkBAIC0zMzQsMTYgKzMzOSwxNiBAQCBzdGF0
aWMgQUxXQVlTX0lOTElORSBKU1N0cmluZyoganNTcGxpY2VTCiAgICAgaWYgKHNvdXJjZS5pczhC
aXQoKSkgewogICAgICAgICBMQ2hhciogYnVmZmVyOwogICAgICAgICBjb25zdCBMQ2hhciogc291
cmNlRGF0YSA9IHNvdXJjZS5jaGFyYWN0ZXJzOCgpOwotICAgICAgICBhdXRvIGltcGwgPSBTdHJp
bmdJbXBsOjp0cnlDcmVhdGVVbmluaXRpYWxpemVkKHRvdGFsTGVuZ3RoLCBidWZmZXIpOworICAg
ICAgICBhdXRvIGltcGwgPSBTdHJpbmdJbXBsOjp0cnlDcmVhdGVVbmluaXRpYWxpemVkKHRvdGFs
TGVuZ3RoLnVuc2FmZUdldCgpLCBidWZmZXIpOwogICAgICAgICBpZiAoIWltcGwpIHsKICAgICAg
ICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihleGVjLCBzY29wZSk7CiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogCi0gICAgICAgIGludCBidWZmZXJQb3MgPSAwOwor
ICAgICAgICBDaGVja2VkPGludCwgQXNzZXJ0Tm9PdmVyZmxvdz4gYnVmZmVyUG9zID0gMDsKICAg
ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByYW5nZUNvdW50OyBpKyspIHsKICAgICAgICAgICAg
IGlmIChpbnQgc3JjTGVuID0gc3Vic3RyaW5nUmFuZ2VzW2ldLmxlbmd0aCkgewotICAgICAgICAg
ICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciArIGJ1ZmZlclBvcywgc291
cmNlRGF0YSArIHN1YnN0cmluZ1Jhbmdlc1tpXS5wb3NpdGlvbiwgc3JjTGVuKTsKKyAgICAgICAg
ICAgICAgICBTdHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZmZXJQb3MudW5z
YWZlR2V0KCksIHNvdXJjZURhdGEgKyBzdWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xl
bik7CiAgICAgICAgICAgICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQpAQCAtMzU0LDE2ICszNTksMTYgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgSlNT
dHJpbmcqIGpzU3BsaWNlUwogICAgIFVDaGFyKiBidWZmZXI7CiAgICAgY29uc3QgVUNoYXIqIHNv
dXJjZURhdGEgPSBzb3VyY2UuY2hhcmFjdGVyczE2KCk7CiAKLSAgICBhdXRvIGltcGwgPSBTdHJp
bmdJbXBsOjp0cnlDcmVhdGVVbmluaXRpYWxpemVkKHRvdGFsTGVuZ3RoLCBidWZmZXIpOworICAg
IGF1dG8gaW1wbCA9IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQodG90YWxMZW5n
dGgudW5zYWZlR2V0KCksIGJ1ZmZlcik7CiAgICAgaWYgKCFpbXBsKSB7CiAgICAgICAgIHRocm93
T3V0T2ZNZW1vcnlFcnJvcihleGVjLCBzY29wZSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KIAotICAgIGludCBidWZmZXJQb3MgPSAwOworICAgIENoZWNrZWQ8aW50LCBBc3NlcnRO
b092ZXJmbG93PiBidWZmZXJQb3MgPSAwOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmFuZ2VD
b3VudDsgaSsrKSB7CiAgICAgICAgIGlmIChpbnQgc3JjTGVuID0gc3Vic3RyaW5nUmFuZ2VzW2ld
Lmxlbmd0aCkgewotICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNoYXJhY3RlcnMoYnVmZmVy
ICsgYnVmZmVyUG9zLCBzb3VyY2VEYXRhICsgc3Vic3RyaW5nUmFuZ2VzW2ldLnBvc2l0aW9uLCBz
cmNMZW4pOworICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNoYXJhY3RlcnMoYnVmZmVyICsg
YnVmZmVyUG9zLnVuc2FmZUdldCgpLCBzb3VyY2VEYXRhICsgc3Vic3RyaW5nUmFuZ2VzW2ldLnBv
c2l0aW9uLCBzcmNMZW4pOwogICAgICAgICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAg
ICAgfQogICAgIH0KQEAgLTQxNCwxNyArNDE5LDE3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpT
U3RyaW5nKiBqc1NwbGljZVMKICAgICAgICAgfQogCiAgICAgICAgIGludCBtYXhDb3VudCA9IHN0
ZDo6bWF4KHJhbmdlQ291bnQsIHNlcGFyYXRvckNvdW50KTsKLSAgICAgICAgaW50IGJ1ZmZlclBv
cyA9IDA7CisgICAgICAgIENoZWNrZWQ8aW50LCBBc3NlcnROb092ZXJmbG93PiBidWZmZXJQb3Mg
PSAwOwogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1heENvdW50OyBpKyspIHsKICAgICAg
ICAgICAgIGlmIChpIDwgcmFuZ2VDb3VudCkgewogICAgICAgICAgICAgICAgIGlmIChpbnQgc3Jj
TGVuID0gc3Vic3RyaW5nUmFuZ2VzW2ldLmxlbmd0aCkgewotICAgICAgICAgICAgICAgICAgICBT
dHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZmZXJQb3MsIHNvdXJjZURhdGEg
KyBzdWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xlbik7CisgICAgICAgICAgICAgICAg
ICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciArIGJ1ZmZlclBvcy51bnNhZmVH
ZXQoKSwgc291cmNlRGF0YSArIHN1YnN0cmluZ1Jhbmdlc1tpXS5wb3NpdGlvbiwgc3JjTGVuKTsK
ICAgICAgICAgICAgICAgICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoaSA8IHNlcGFyYXRvckNvdW50KSB7
CiAgICAgICAgICAgICAgICAgaWYgKGludCBzZXBMZW4gPSBzZXBhcmF0b3JzW2ldLmxlbmd0aCgp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZl
ciArIGJ1ZmZlclBvcywgc2VwYXJhdG9yc1tpXS5jaGFyYWN0ZXJzOCgpLCBzZXBMZW4pOworICAg
ICAgICAgICAgICAgICAgICBTdHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZm
ZXJQb3MudW5zYWZlR2V0KCksIHNlcGFyYXRvcnNbaV0uY2hhcmFjdGVyczgoKSwgc2VwTGVuKTsK
ICAgICAgICAgICAgICAgICAgICAgYnVmZmVyUG9zICs9IHNlcExlbjsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9CkBAIC00NDEsMjMgKzQ0NiwyMyBAQCBzdGF0aWMgQUxXQVlTX0lO
TElORSBKU1N0cmluZyoganNTcGxpY2VTCiAgICAgfQogCiAgICAgaW50IG1heENvdW50ID0gc3Rk
OjptYXgocmFuZ2VDb3VudCwgc2VwYXJhdG9yQ291bnQpOwotICAgIGludCBidWZmZXJQb3MgPSAw
OworICAgIENoZWNrZWQ8aW50LCBBc3NlcnROb092ZXJmbG93PiBidWZmZXJQb3MgPSAwOwogICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgbWF4Q291bnQ7IGkrKykgewogICAgICAgICBpZiAoaSA8IHJh
bmdlQ291bnQpIHsKICAgICAgICAgICAgIGlmIChpbnQgc3JjTGVuID0gc3Vic3RyaW5nUmFuZ2Vz
W2ldLmxlbmd0aCkgewogICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuaXM4Qml0KCkpCi0gICAg
ICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciArIGJ1ZmZl
clBvcywgc291cmNlLmNoYXJhY3RlcnM4KCkgKyBzdWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24s
IHNyY0xlbik7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJz
KGJ1ZmZlciArIGJ1ZmZlclBvcy51bnNhZmVHZXQoKSwgc291cmNlLmNoYXJhY3RlcnM4KCkgKyBz
dWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xlbik7CiAgICAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICBTdHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIg
KyBidWZmZXJQb3MsIHNvdXJjZS5jaGFyYWN0ZXJzMTYoKSArIHN1YnN0cmluZ1Jhbmdlc1tpXS5w
b3NpdGlvbiwgc3JjTGVuKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNo
YXJhY3RlcnMoYnVmZmVyICsgYnVmZmVyUG9zLnVuc2FmZUdldCgpLCBzb3VyY2UuY2hhcmFjdGVy
czE2KCkgKyBzdWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xlbik7CiAgICAgICAgICAg
ICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
ICAgICBpZiAoaSA8IHNlcGFyYXRvckNvdW50KSB7CiAgICAgICAgICAgICBpZiAoaW50IHNlcExl
biA9IHNlcGFyYXRvcnNbaV0ubGVuZ3RoKCkpIHsKICAgICAgICAgICAgICAgICBpZiAoc2VwYXJh
dG9yc1tpXS5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNo
YXJhY3RlcnMoYnVmZmVyICsgYnVmZmVyUG9zLCBzZXBhcmF0b3JzW2ldLmNoYXJhY3RlcnM4KCks
IHNlcExlbik7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJz
KGJ1ZmZlciArIGJ1ZmZlclBvcy51bnNhZmVHZXQoKSwgc2VwYXJhdG9yc1tpXS5jaGFyYWN0ZXJz
OCgpLCBzZXBMZW4pOwogICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAg
U3RyaW5nSW1wbDo6Y29weUNoYXJhY3RlcnMoYnVmZmVyICsgYnVmZmVyUG9zLCBzZXBhcmF0b3Jz
W2ldLmNoYXJhY3RlcnMxNigpLCBzZXBMZW4pOworICAgICAgICAgICAgICAgICAgICBTdHJpbmdJ
bXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZmZXJQb3MudW5zYWZlR2V0KCksIHNlcGFy
YXRvcnNbaV0uY2hhcmFjdGVyczE2KCksIHNlcExlbik7CiAgICAgICAgICAgICAgICAgYnVmZmVy
UG9zICs9IHNlcExlbjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNzI5LDcgKzczNCw5
IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25TdHJpbmdQcm8KICAgICAgICAgLy8g
RVM1LjEgMTUuNS40LjEwIHN0ZXAgOC5hLgogICAgICAgICBzZWFyY2hWYWx1ZS0+c2V0TGFzdElu
ZGV4KGV4ZWMsIDApOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRy
KTsKLSAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCByZW1vdmVVc2luZ1JlZ0V4cFNl
YXJjaCh2bSwgZXhlYywgdGhpc1ZhbHVlLCB0aGlzVmFsdWUtPnZhbHVlKGV4ZWMpLCByZWdFeHAp
KTsKKyAgICAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2UgPSB0aGlzVmFsdWUtPnZhbHVlKGV4ZWMp
OworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKyAgICAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCByZW1vdmVVc2luZ1JlZ0V4cFNlYXJjaCh2bSwgZXhl
YywgdGhpc1ZhbHVlLCBzb3VyY2UsIHJlZ0V4cCkpOwogICAgIH0KIAogICAgIENhbGxEYXRhIGNh
bGxEYXRhOwpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MTk2MykKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTktMDItMjIgIE1hcmsgTGFtICA8
bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhbiBleGNlcHRpb24gY2hlY2sgYW5k
IHNvbWUgYXNzZXJ0aW9ucyBpbiBTdHJpbmdQcm90b3R5cGUuY3BwLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0OTYyCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80ODAxMzQxNj4KKworICAgICAgICBSZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpIGFu
ZCBTYWFtIEJhcmF0aS4KKworICAgICAgICBBZGQgYW4gQXNzZXJ0Tm9PdmVyZmxvdyBvdmVyZmxv
dyBoYW5kbGVyIHdoaWNoIGFsbG93cyB1cyB0byBkbyBDaGVja2VkQXJpdGhtZXRpYworICAgICAg
ICBmb3IgYXNzZXJ0aW9uIHB1cnBvc2Ugb25seSBvbiBkZWJ1ZyBidWlsZHMgYnV0IHNhY3JpZmlj
ZXMgbm8gcGVyZm9ybWFuY2Ugb24KKyAgICAgICAgcmVsZWFzZSBidWlsZHMuCisKKyAgICAgICAg
KiB3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaDoKKyAgICAgICAgKFdURjo6QXNzZXJ0Tm9PdmVyZmxv
dzo6b3ZlcmZsb3dlZCk6CisgICAgICAgIChXVEY6OkFzc2VydE5vT3ZlcmZsb3c6OmNsZWFyT3Zl
cmZsb3cpOgorICAgICAgICAoV1RGOjpBc3NlcnROb092ZXJmbG93OjpjcmFzaCk6CisgICAgICAg
IChXVEY6OkFzc2VydE5vT3ZlcmZsb3c6Omhhc092ZXJmbG93ZWQgY29uc3QpOgorICAgICAgICAo
V1RGOjpvYnNlcnZlc092ZXJmbG93KToKKyAgICAgICAgKFdURjo6b2JzZXJ2ZXNPdmVyZmxvdzxB
c3NlcnROb092ZXJmbG93Pik6CisgICAgICAgIChXVEY6OnNhZmVBZGQpOgorICAgICAgICAoV1RG
OjpzYWZlU3ViKToKKyAgICAgICAgKFdURjo6c2FmZU11bHRpcGx5KToKKyAgICAgICAgKFdURjo6
Q2hlY2tlZDo6b3BlcmF0b3IrPSk6CisgICAgICAgIChXVEY6OkNoZWNrZWQ6Om9wZXJhdG9yLT0p
OgorICAgICAgICAoV1RGOjpDaGVja2VkOjpvcGVyYXRvcio9KToKKyAgICAgICAgKFdURjo6b3Bl
cmF0b3IrKToKKyAgICAgICAgKFdURjo6b3BlcmF0b3ItKToKKyAgICAgICAgKFdURjo6b3BlcmF0
b3IqKToKKwogMjAxOS0wMi0yMSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgog
CiAgICAgICAgIE1vdmUgVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyLmFjdGl2ZVRv
dWNoZXNCeUlkZW50aWZpZXIgdG8gU1BJCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9DaGVja2VkQXJp
dGhtZXRpYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0NoZWNrZWRBcml0aG1ldGlj
LmgJKHJldmlzaW9uIDI0MTk2MykKKysrIFNvdXJjZS9XVEYvd3RmL0NoZWNrZWRBcml0aG1ldGlj
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDExLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDExLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC03MCw2ICs3MCwyNCBAQCBlbnVtIGNsYXNzIENoZWNrZWRT
dGF0ZSB7CiAgICAgRGlkTm90T3ZlcmZsb3cKIH07CiAKK2NsYXNzIEFzc2VydE5vT3ZlcmZsb3cg
eworcHVibGljOgorICAgIHN0YXRpYyBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIG92ZXJm
bG93ZWQoKQorICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisg
ICAgdm9pZCBjbGVhck92ZXJmbG93KCkgeyB9CisKKyAgICBzdGF0aWMgTk9fUkVUVVJOX0RVRV9U
T19DUkFTSCB2b2lkIGNyYXNoKCkKKyAgICB7CisgICAgICAgIENSQVNIKCk7CisgICAgfQorCitw
dWJsaWM6CisgICAgY29uc3RleHByIGJvb2wgaGFzT3ZlcmZsb3dlZCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9Cit9OworCiBjbGFzcyBDb25kaXRpb25hbENyYXNoT25PdmVyZmxvdyB7CiBwdWJs
aWM6CiAgICAgdm9pZCBvdmVyZmxvd2VkKCkKQEAgLTUyMyw5ICs1NDEsMjUgQEAgdGVtcGxhdGUg
PHR5cGVuYW1lIFJlc3VsdFR5cGU+IHN0cnVjdCBBcgogICAgIH0KIH07CiAKK3RlbXBsYXRlIDxj
bGFzcyBPdmVyZmxvd0hhbmRsZXIsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6Omlz
X29iamVjdDxPdmVyZmxvd0hhbmRsZXI+Ojp2YWx1ZT4+CitpbmxpbmUgY29uc3RleHByIGJvb2wg
b2JzZXJ2ZXNPdmVyZmxvdygpIHsgcmV0dXJuIHRydWU7IH0KKwordGVtcGxhdGUgPD4KK2lubGlu
ZSBjb25zdGV4cHIgYm9vbCBvYnNlcnZlc092ZXJmbG93PEFzc2VydE5vT3ZlcmZsb3c+KCkgeyBy
ZXR1cm4gIUFTU0VSVF9ESVNBQkxFRDsgfQorCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVSwgdHlwZW5h
bWUgViwgdHlwZW5hbWUgUj4gc3RhdGljIGlubGluZSBib29sIHNhZmVBZGQoVSBsaHMsIFYgcmhz
LCBSJiByZXN1bHQpCiB7CiAgICAgcmV0dXJuIEFyaXRobWV0aWNPcGVyYXRpb25zPFUsIFYsIFI+
OjphZGQobGhzLCByaHMsIHJlc3VsdCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3RlbXBsYXRl
IDxjbGFzcyBPdmVyZmxvd0hhbmRsZXIsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1l
IFI+CitzdGF0aWMgaW5saW5lIGJvb2wgc2FmZUFkZChVIGxocywgViByaHMsIFImIHJlc3VsdCkK
K3sKKyAgICBpZiAob2JzZXJ2ZXNPdmVyZmxvdzxPdmVyZmxvd0hhbmRsZXI+KCkpCisgICAgICAg
IHJldHVybiBzYWZlQWRkKGxocywgcmhzLCByZXN1bHQpOworICAgIHJlc3VsdCA9IGxocyArIHJo
czsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFUsIHR5cGVuYW1l
IFYsIHR5cGVuYW1lIFI+IHN0YXRpYyBpbmxpbmUgYm9vbCBzYWZlU3ViKFUgbGhzLCBWIHJocywg
UiYgcmVzdWx0KQpAQCAtNTMzLDExICs1NjcsMjkgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFUsIHR5
cGVuYW1lIFYsIHR5cGVuYQogICAgIHJldHVybiBBcml0aG1ldGljT3BlcmF0aW9uczxVLCBWLCBS
Pjo6c3ViKGxocywgcmhzLCByZXN1bHQpOwogfQogCit0ZW1wbGF0ZSA8Y2xhc3MgT3ZlcmZsb3dI
YW5kbGVyLCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBSPgorc3RhdGljIGlubGlu
ZSBib29sIHNhZmVTdWIoVSBsaHMsIFYgcmhzLCBSJiByZXN1bHQpCit7CisgICAgaWYgKG9ic2Vy
dmVzT3ZlcmZsb3c8T3ZlcmZsb3dIYW5kbGVyPigpKQorICAgICAgICByZXR1cm4gc2FmZVN1Yihs
aHMsIHJocywgcmVzdWx0KTsKKyAgICByZXN1bHQgPSBsaHMgLSByaHM7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKIHRlbXBsYXRlIDx0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBSPiBz
dGF0aWMgaW5saW5lIGJvb2wgc2FmZU11bHRpcGx5KFUgbGhzLCBWIHJocywgUiYgcmVzdWx0KQog
ewogICAgIHJldHVybiBBcml0aG1ldGljT3BlcmF0aW9uczxVLCBWLCBSPjo6bXVsdGlwbHkobGhz
LCByaHMsIHJlc3VsdCk7CiB9CiAKK3RlbXBsYXRlIDxjbGFzcyBPdmVyZmxvd0hhbmRsZXIsIHR5
cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFI+CitzdGF0aWMgaW5saW5lIGJvb2wgc2Fm
ZU11bHRpcGx5KFUgbGhzLCBWIHJocywgUiYgcmVzdWx0KQoreworICAgIGlmIChvYnNlcnZlc092
ZXJmbG93PE92ZXJmbG93SGFuZGxlcj4oKSkKKyAgICAgICAgcmV0dXJuIHNhZmVNdWx0aXBseShs
aHMsIHJocywgcmVzdWx0KTsKKyAgICByZXN1bHQgPSBsaHMgKiByaHM7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKIHRlbXBsYXRlIDx0eXBlbmFtZSBVLCB0eXBlbmFtZSBWPiBzdGF0aWMgaW5saW5l
IGJvb2wgc2FmZUVxdWFscyhVIGxocywgViByaHMpCiB7CiAgICAgcmV0dXJuIEFyaXRobWV0aWNP
cGVyYXRpb25zPFUsIFY+OjplcXVhbHMobGhzLCByaHMpOwpAQCAtNjc2LDIxICs3MjgsMjEgQEAg
cHVibGljOgogICAgIC8vIE11dGF0aW5nIGFzc2lnbm1lbnQKICAgICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVT4gY29uc3QgQ2hlY2tlZCBvcGVyYXRvcis9KFUgcmhzKQogICAgIHsKLSAgICAgICAgaWYg
KCFzYWZlQWRkKG1fdmFsdWUsIHJocywgbV92YWx1ZSkpCisgICAgICAgIGlmICghc2FmZUFkZDxP
dmVyZmxvd0hhbmRsZXI+KG1fdmFsdWUsIHJocywgbV92YWx1ZSkpCiAgICAgICAgICAgICB0aGlz
LT5vdmVyZmxvd2VkKCk7CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKICAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVT4gY29uc3QgQ2hlY2tlZCBvcGVyYXRvci09KFUgcmhzKQogICAgIHsK
LSAgICAgICAgaWYgKCFzYWZlU3ViKG1fdmFsdWUsIHJocywgbV92YWx1ZSkpCisgICAgICAgIGlm
ICghc2FmZVN1YjxPdmVyZmxvd0hhbmRsZXI+KG1fdmFsdWUsIHJocywgbV92YWx1ZSkpCiAgICAg
ICAgICAgICB0aGlzLT5vdmVyZmxvd2VkKCk7CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9
CiAKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4gY29uc3QgQ2hlY2tlZCBvcGVyYXRvcio9KFUg
cmhzKQogICAgIHsKLSAgICAgICAgaWYgKCFzYWZlTXVsdGlwbHkobV92YWx1ZSwgcmhzLCBtX3Zh
bHVlKSkKKyAgICAgICAgaWYgKCFzYWZlTXVsdGlwbHk8T3ZlcmZsb3dIYW5kbGVyPihtX3ZhbHVl
LCByaHMsIG1fdmFsdWUpKQogICAgICAgICAgICAgdGhpcy0+b3ZlcmZsb3dlZCgpOwogICAgICAg
ICByZXR1cm4gKnRoaXM7CiAgICAgfQpAQCAtODE0LDcgKzg2Niw3IEBAIHRlbXBsYXRlIDx0eXBl
bmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmEKICAgICBWIHkgPSAwOwogICAgIGJvb2wgb3ZlcmZs
b3dlZCA9IGxocy5zYWZlR2V0KHgpID09IENoZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3cgfHwgcmhz
LnNhZmVHZXQoeSkgPT0gQ2hlY2tlZFN0YXRlOjpEaWRPdmVyZmxvdzsKICAgICB0eXBlbmFtZSBS
ZXN1bHQ8VSwgVj46OlJlc3VsdFR5cGUgcmVzdWx0ID0gMDsKLSAgICBvdmVyZmxvd2VkIHw9ICFz
YWZlQWRkKHgsIHksIHJlc3VsdCk7CisgICAgb3ZlcmZsb3dlZCB8PSAhc2FmZUFkZDxPdmVyZmxv
d0hhbmRsZXI+KHgsIHksIHJlc3VsdCk7CiAgICAgaWYgKG92ZXJmbG93ZWQpCiAgICAgICAgIHJl
dHVybiBSZXN1bHRPdmVyZmxvd2VkOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC04MjYsNyArODc4
LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYQogICAgIFYgeSA9
IDA7CiAgICAgYm9vbCBvdmVyZmxvd2VkID0gbGhzLnNhZmVHZXQoeCkgPT0gQ2hlY2tlZFN0YXRl
OjpEaWRPdmVyZmxvdyB8fCByaHMuc2FmZUdldCh5KSA9PSBDaGVja2VkU3RhdGU6OkRpZE92ZXJm
bG93OwogICAgIHR5cGVuYW1lIFJlc3VsdDxVLCBWPjo6UmVzdWx0VHlwZSByZXN1bHQgPSAwOwot
ICAgIG92ZXJmbG93ZWQgfD0gIXNhZmVTdWIoeCwgeSwgcmVzdWx0KTsKKyAgICBvdmVyZmxvd2Vk
IHw9ICFzYWZlU3ViPE92ZXJmbG93SGFuZGxlcj4oeCwgeSwgcmVzdWx0KTsKICAgICBpZiAob3Zl
cmZsb3dlZCkKICAgICAgICAgcmV0dXJuIFJlc3VsdE92ZXJmbG93ZWQ7CiAgICAgcmV0dXJuIHJl
c3VsdDsKQEAgLTgzOCw3ICs4OTAsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVSwgdHlwZW5hbWUg
ViwgdHlwZW5hCiAgICAgViB5ID0gMDsKICAgICBib29sIG92ZXJmbG93ZWQgPSBsaHMuc2FmZUdl
dCh4KSA9PSBDaGVja2VkU3RhdGU6OkRpZE92ZXJmbG93IHx8IHJocy5zYWZlR2V0KHkpID09IENo
ZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3c7CiAgICAgdHlwZW5hbWUgUmVzdWx0PFUsIFY+OjpSZXN1
bHRUeXBlIHJlc3VsdCA9IDA7Ci0gICAgb3ZlcmZsb3dlZCB8PSAhc2FmZU11bHRpcGx5KHgsIHks
IHJlc3VsdCk7CisgICAgb3ZlcmZsb3dlZCB8PSAhc2FmZU11bHRpcGx5PE92ZXJmbG93SGFuZGxl
cj4oeCwgeSwgcmVzdWx0KTsKICAgICBpZiAob3ZlcmZsb3dlZCkKICAgICAgICAgcmV0dXJuIFJl
c3VsdE92ZXJmbG93ZWQ7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTkzMCw2ICs5ODIsNyBAQCB0
ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmdzPiBiCiAKIH0KIAordXNpbmcgV1RG
OjpBc3NlcnROb092ZXJmbG93OwogdXNpbmcgV1RGOjpDaGVja2VkOwogdXNpbmcgV1RGOjpDaGVj
a2VkU3RhdGU7CiB1c2luZyBXVEY6OkNoZWNrZWRJbnQ4Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362800</attachid>
            <date>2019-02-22 17:18:27 -0800</date>
            <delta_ts>2019-02-22 17:42:38 -0800</delta_ts>
            <desc>patch for landing (uploaded to hopefully tickle the EWS bots into running).</desc>
            <filename>bug-194962.patch</filename>
            <type>text/plain</type>
            <size>13772</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQxOTY3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDE5LTAyLTIyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgYW4gZXhjZXB0aW9uIGNoZWNrIGFuZCBzb21lIGFzc2VydGlvbnMgaW4gU3RyaW5nUHJvdG90
eXBlLmNwcC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5NDk2MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgwMTM0MTY+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgWXVzdWtlIFN1enVraSBhbmQgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgKiBydW50
aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmpzU3BsaWNlU3Vic3RyaW5n
cyk6CisgICAgICAgIChKU0M6OmpzU3BsaWNlU3Vic3RyaW5nc1dpdGhTZXBhcmF0b3JzKToKKyAg
ICAgICAgKEpTQzo6b3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVwbGFjZVJlZ0V4cEVtcHR5U3Ry
KToKKwogMjAxOS0wMi0yMiAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgog
CiAgICAgICAgIEIzUmVkdWNlU3RyZW5ndGg6IG1pc3NpbmcgcGVlcGhvbGUgb3B0aW1pemF0aW9u
cyBmb3IgYmluYXJ5IG9wZXJhdGlvbnMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMjQxOTYzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFy
cmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0LTIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogIENvcHlyaWdodCAoQykgMjAw
OSBUb3JjaCBNb2JpbGUsIEluYy4KICAqICBDb3B5cmlnaHQgKEMpIDIwMTUgSm9yZGFuIEhhcmJh
bmQgKGxqaGFyYkBnbWFpbC5jb20pCiAgKgpAQCAtMzI0LDkgKzMyNCwxNCBAQCBzdGF0aWMgQUxX
QVlTX0lOTElORSBKU1N0cmluZyoganNTcGxpY2VTCiAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwganNTdHJpbmcoZXhlYywgU3RyaW5nSW1wbDo6Y3JlYXRlU3Vic3RyaW5nU2hhcmlu
Z0ltcGwoKnNvdXJjZS5pbXBsKCksIHN0ZDo6bWF4KDAsIHBvc2l0aW9uKSwgc3RkOjptaW4oc291
cmNlU2l6ZSwgbGVuZ3RoKSkpKTsKICAgICB9CiAKLSAgICBpbnQgdG90YWxMZW5ndGggPSAwOwor
ICAgIC8vIFdlIGtub3cgdGhhdCB0aGUgc3VtIG9mIHN1YnN0cmluZ1JhbmdlcyBsZW5ndGhzIGNh
bm5vdCBleGNlZWQgbGVuZ3RoIG9mCisgICAgLy8gc291cmNlIGJlY2F1c2UgdGhlIHN1YnN0cmlu
Z1JhbmdlcyB3ZXJlIGNvbXB1dGVkIGZyb20gdGhlIHNvdXJjZSBzdHJpbmcKKyAgICAvLyBpbiBy
ZW1vdmVVc2luZ1JlZ0V4cFNlYXJjaCgpLiBIZW5jZSwgdG90YWxMZW5ndGggY2Fubm90IGV4Y2Vl
ZAorICAgIC8vIFN0cmluZzo6TWF4TGVuZ3RoLCBhbmQgdGhlcmVmb3JlLCBjYW5ub3Qgb3ZlcmZs
b3cuCisgICAgQ2hlY2tlZDxpbnQsIEFzc2VydE5vT3ZlcmZsb3c+IHRvdGFsTGVuZ3RoID0gMDsK
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJhbmdlQ291bnQ7IGkrKykKICAgICAgICAgdG90YWxM
ZW5ndGggKz0gc3Vic3RyaW5nUmFuZ2VzW2ldLmxlbmd0aDsKKyAgICBBU1NFUlQodG90YWxMZW5n
dGggPD0gU3RyaW5nOjpNYXhMZW5ndGgpOwogCiAgICAgaWYgKCF0b3RhbExlbmd0aCkKICAgICAg
ICAgcmV0dXJuIGpzRW1wdHlTdHJpbmcoZXhlYyk7CkBAIC0zMzQsMTYgKzMzOSwxNiBAQCBzdGF0
aWMgQUxXQVlTX0lOTElORSBKU1N0cmluZyoganNTcGxpY2VTCiAgICAgaWYgKHNvdXJjZS5pczhC
aXQoKSkgewogICAgICAgICBMQ2hhciogYnVmZmVyOwogICAgICAgICBjb25zdCBMQ2hhciogc291
cmNlRGF0YSA9IHNvdXJjZS5jaGFyYWN0ZXJzOCgpOwotICAgICAgICBhdXRvIGltcGwgPSBTdHJp
bmdJbXBsOjp0cnlDcmVhdGVVbmluaXRpYWxpemVkKHRvdGFsTGVuZ3RoLCBidWZmZXIpOworICAg
ICAgICBhdXRvIGltcGwgPSBTdHJpbmdJbXBsOjp0cnlDcmVhdGVVbmluaXRpYWxpemVkKHRvdGFs
TGVuZ3RoLnVuc2FmZUdldCgpLCBidWZmZXIpOwogICAgICAgICBpZiAoIWltcGwpIHsKICAgICAg
ICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihleGVjLCBzY29wZSk7CiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogCi0gICAgICAgIGludCBidWZmZXJQb3MgPSAwOwor
ICAgICAgICBDaGVja2VkPGludCwgQXNzZXJ0Tm9PdmVyZmxvdz4gYnVmZmVyUG9zID0gMDsKICAg
ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByYW5nZUNvdW50OyBpKyspIHsKICAgICAgICAgICAg
IGlmIChpbnQgc3JjTGVuID0gc3Vic3RyaW5nUmFuZ2VzW2ldLmxlbmd0aCkgewotICAgICAgICAg
ICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciArIGJ1ZmZlclBvcywgc291
cmNlRGF0YSArIHN1YnN0cmluZ1Jhbmdlc1tpXS5wb3NpdGlvbiwgc3JjTGVuKTsKKyAgICAgICAg
ICAgICAgICBTdHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZmZXJQb3MudW5z
YWZlR2V0KCksIHNvdXJjZURhdGEgKyBzdWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xl
bik7CiAgICAgICAgICAgICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQpAQCAtMzU0LDE2ICszNTksMTYgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgSlNT
dHJpbmcqIGpzU3BsaWNlUwogICAgIFVDaGFyKiBidWZmZXI7CiAgICAgY29uc3QgVUNoYXIqIHNv
dXJjZURhdGEgPSBzb3VyY2UuY2hhcmFjdGVyczE2KCk7CiAKLSAgICBhdXRvIGltcGwgPSBTdHJp
bmdJbXBsOjp0cnlDcmVhdGVVbmluaXRpYWxpemVkKHRvdGFsTGVuZ3RoLCBidWZmZXIpOworICAg
IGF1dG8gaW1wbCA9IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQodG90YWxMZW5n
dGgudW5zYWZlR2V0KCksIGJ1ZmZlcik7CiAgICAgaWYgKCFpbXBsKSB7CiAgICAgICAgIHRocm93
T3V0T2ZNZW1vcnlFcnJvcihleGVjLCBzY29wZSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KIAotICAgIGludCBidWZmZXJQb3MgPSAwOworICAgIENoZWNrZWQ8aW50LCBBc3NlcnRO
b092ZXJmbG93PiBidWZmZXJQb3MgPSAwOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmFuZ2VD
b3VudDsgaSsrKSB7CiAgICAgICAgIGlmIChpbnQgc3JjTGVuID0gc3Vic3RyaW5nUmFuZ2VzW2ld
Lmxlbmd0aCkgewotICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNoYXJhY3RlcnMoYnVmZmVy
ICsgYnVmZmVyUG9zLCBzb3VyY2VEYXRhICsgc3Vic3RyaW5nUmFuZ2VzW2ldLnBvc2l0aW9uLCBz
cmNMZW4pOworICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNoYXJhY3RlcnMoYnVmZmVyICsg
YnVmZmVyUG9zLnVuc2FmZUdldCgpLCBzb3VyY2VEYXRhICsgc3Vic3RyaW5nUmFuZ2VzW2ldLnBv
c2l0aW9uLCBzcmNMZW4pOwogICAgICAgICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAg
ICAgfQogICAgIH0KQEAgLTQxNCwxNyArNDE5LDE3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpT
U3RyaW5nKiBqc1NwbGljZVMKICAgICAgICAgfQogCiAgICAgICAgIGludCBtYXhDb3VudCA9IHN0
ZDo6bWF4KHJhbmdlQ291bnQsIHNlcGFyYXRvckNvdW50KTsKLSAgICAgICAgaW50IGJ1ZmZlclBv
cyA9IDA7CisgICAgICAgIENoZWNrZWQ8aW50LCBBc3NlcnROb092ZXJmbG93PiBidWZmZXJQb3Mg
PSAwOwogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1heENvdW50OyBpKyspIHsKICAgICAg
ICAgICAgIGlmIChpIDwgcmFuZ2VDb3VudCkgewogICAgICAgICAgICAgICAgIGlmIChpbnQgc3Jj
TGVuID0gc3Vic3RyaW5nUmFuZ2VzW2ldLmxlbmd0aCkgewotICAgICAgICAgICAgICAgICAgICBT
dHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZmZXJQb3MsIHNvdXJjZURhdGEg
KyBzdWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xlbik7CisgICAgICAgICAgICAgICAg
ICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciArIGJ1ZmZlclBvcy51bnNhZmVH
ZXQoKSwgc291cmNlRGF0YSArIHN1YnN0cmluZ1Jhbmdlc1tpXS5wb3NpdGlvbiwgc3JjTGVuKTsK
ICAgICAgICAgICAgICAgICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoaSA8IHNlcGFyYXRvckNvdW50KSB7
CiAgICAgICAgICAgICAgICAgaWYgKGludCBzZXBMZW4gPSBzZXBhcmF0b3JzW2ldLmxlbmd0aCgp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZl
ciArIGJ1ZmZlclBvcywgc2VwYXJhdG9yc1tpXS5jaGFyYWN0ZXJzOCgpLCBzZXBMZW4pOworICAg
ICAgICAgICAgICAgICAgICBTdHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZm
ZXJQb3MudW5zYWZlR2V0KCksIHNlcGFyYXRvcnNbaV0uY2hhcmFjdGVyczgoKSwgc2VwTGVuKTsK
ICAgICAgICAgICAgICAgICAgICAgYnVmZmVyUG9zICs9IHNlcExlbjsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9CkBAIC00NDEsMjMgKzQ0NiwyMyBAQCBzdGF0aWMgQUxXQVlTX0lO
TElORSBKU1N0cmluZyoganNTcGxpY2VTCiAgICAgfQogCiAgICAgaW50IG1heENvdW50ID0gc3Rk
OjptYXgocmFuZ2VDb3VudCwgc2VwYXJhdG9yQ291bnQpOwotICAgIGludCBidWZmZXJQb3MgPSAw
OworICAgIENoZWNrZWQ8aW50LCBBc3NlcnROb092ZXJmbG93PiBidWZmZXJQb3MgPSAwOwogICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgbWF4Q291bnQ7IGkrKykgewogICAgICAgICBpZiAoaSA8IHJh
bmdlQ291bnQpIHsKICAgICAgICAgICAgIGlmIChpbnQgc3JjTGVuID0gc3Vic3RyaW5nUmFuZ2Vz
W2ldLmxlbmd0aCkgewogICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuaXM4Qml0KCkpCi0gICAg
ICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciArIGJ1ZmZl
clBvcywgc291cmNlLmNoYXJhY3RlcnM4KCkgKyBzdWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24s
IHNyY0xlbik7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJz
KGJ1ZmZlciArIGJ1ZmZlclBvcy51bnNhZmVHZXQoKSwgc291cmNlLmNoYXJhY3RlcnM4KCkgKyBz
dWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xlbik7CiAgICAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICBTdHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIg
KyBidWZmZXJQb3MsIHNvdXJjZS5jaGFyYWN0ZXJzMTYoKSArIHN1YnN0cmluZ1Jhbmdlc1tpXS5w
b3NpdGlvbiwgc3JjTGVuKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNo
YXJhY3RlcnMoYnVmZmVyICsgYnVmZmVyUG9zLnVuc2FmZUdldCgpLCBzb3VyY2UuY2hhcmFjdGVy
czE2KCkgKyBzdWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xlbik7CiAgICAgICAgICAg
ICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
ICAgICBpZiAoaSA8IHNlcGFyYXRvckNvdW50KSB7CiAgICAgICAgICAgICBpZiAoaW50IHNlcExl
biA9IHNlcGFyYXRvcnNbaV0ubGVuZ3RoKCkpIHsKICAgICAgICAgICAgICAgICBpZiAoc2VwYXJh
dG9yc1tpXS5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNo
YXJhY3RlcnMoYnVmZmVyICsgYnVmZmVyUG9zLCBzZXBhcmF0b3JzW2ldLmNoYXJhY3RlcnM4KCks
IHNlcExlbik7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJz
KGJ1ZmZlciArIGJ1ZmZlclBvcy51bnNhZmVHZXQoKSwgc2VwYXJhdG9yc1tpXS5jaGFyYWN0ZXJz
OCgpLCBzZXBMZW4pOwogICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAg
U3RyaW5nSW1wbDo6Y29weUNoYXJhY3RlcnMoYnVmZmVyICsgYnVmZmVyUG9zLCBzZXBhcmF0b3Jz
W2ldLmNoYXJhY3RlcnMxNigpLCBzZXBMZW4pOworICAgICAgICAgICAgICAgICAgICBTdHJpbmdJ
bXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZmZXJQb3MudW5zYWZlR2V0KCksIHNlcGFy
YXRvcnNbaV0uY2hhcmFjdGVyczE2KCksIHNlcExlbik7CiAgICAgICAgICAgICAgICAgYnVmZmVy
UG9zICs9IHNlcExlbjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNzI5LDcgKzczNCw5
IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25TdHJpbmdQcm8KICAgICAgICAgLy8g
RVM1LjEgMTUuNS40LjEwIHN0ZXAgOC5hLgogICAgICAgICBzZWFyY2hWYWx1ZS0+c2V0TGFzdElu
ZGV4KGV4ZWMsIDApOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRy
KTsKLSAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCByZW1vdmVVc2luZ1JlZ0V4cFNl
YXJjaCh2bSwgZXhlYywgdGhpc1ZhbHVlLCB0aGlzVmFsdWUtPnZhbHVlKGV4ZWMpLCByZWdFeHAp
KTsKKyAgICAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2UgPSB0aGlzVmFsdWUtPnZhbHVlKGV4ZWMp
OworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKyAgICAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCByZW1vdmVVc2luZ1JlZ0V4cFNlYXJjaCh2bSwgZXhl
YywgdGhpc1ZhbHVlLCBzb3VyY2UsIHJlZ0V4cCkpOwogICAgIH0KIAogICAgIENhbGxEYXRhIGNh
bGxEYXRhOwpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MTk2MykKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTktMDItMjIgIE1hcmsgTGFtICA8
bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhbiBleGNlcHRpb24gY2hlY2sgYW5k
IHNvbWUgYXNzZXJ0aW9ucyBpbiBTdHJpbmdQcm90b3R5cGUuY3BwLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0OTYyCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80ODAxMzQxNj4KKworICAgICAgICBSZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpIGFu
ZCBTYWFtIEJhcmF0aS4KKworICAgICAgICBBZGQgYW4gQXNzZXJ0Tm9PdmVyZmxvdyBvdmVyZmxv
dyBoYW5kbGVyIHdoaWNoIGFsbG93cyB1cyB0byBkbyBDaGVja2VkQXJpdGhtZXRpYworICAgICAg
ICBmb3IgYXNzZXJ0aW9uIHB1cnBvc2Ugb25seSBvbiBkZWJ1ZyBidWlsZHMgYnV0IHNhY3JpZmlj
ZXMgbm8gcGVyZm9ybWFuY2Ugb24KKyAgICAgICAgcmVsZWFzZSBidWlsZHMuCisKKyAgICAgICAg
KiB3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaDoKKyAgICAgICAgKFdURjo6QXNzZXJ0Tm9PdmVyZmxv
dzo6b3ZlcmZsb3dlZCk6CisgICAgICAgIChXVEY6OkFzc2VydE5vT3ZlcmZsb3c6OmNsZWFyT3Zl
cmZsb3cpOgorICAgICAgICAoV1RGOjpBc3NlcnROb092ZXJmbG93OjpjcmFzaCk6CisgICAgICAg
IChXVEY6OkFzc2VydE5vT3ZlcmZsb3c6Omhhc092ZXJmbG93ZWQgY29uc3QpOgorICAgICAgICAo
V1RGOjpvYnNlcnZlc092ZXJmbG93KToKKyAgICAgICAgKFdURjo6b2JzZXJ2ZXNPdmVyZmxvdzxB
c3NlcnROb092ZXJmbG93Pik6CisgICAgICAgIChXVEY6OnNhZmVBZGQpOgorICAgICAgICAoV1RG
OjpzYWZlU3ViKToKKyAgICAgICAgKFdURjo6c2FmZU11bHRpcGx5KToKKyAgICAgICAgKFdURjo6
Q2hlY2tlZDo6b3BlcmF0b3IrPSk6CisgICAgICAgIChXVEY6OkNoZWNrZWQ6Om9wZXJhdG9yLT0p
OgorICAgICAgICAoV1RGOjpDaGVja2VkOjpvcGVyYXRvcio9KToKKyAgICAgICAgKFdURjo6b3Bl
cmF0b3IrKToKKyAgICAgICAgKFdURjo6b3BlcmF0b3ItKToKKyAgICAgICAgKFdURjo6b3BlcmF0
b3IqKToKKwogMjAxOS0wMi0yMSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgog
CiAgICAgICAgIE1vdmUgVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyLmFjdGl2ZVRv
dWNoZXNCeUlkZW50aWZpZXIgdG8gU1BJCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9DaGVja2VkQXJp
dGhtZXRpYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0NoZWNrZWRBcml0aG1ldGlj
LmgJKHJldmlzaW9uIDI0MTk2MykKKysrIFNvdXJjZS9XVEYvd3RmL0NoZWNrZWRBcml0aG1ldGlj
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDExLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDExLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC03MCw2ICs3MCwyNCBAQCBlbnVtIGNsYXNzIENoZWNrZWRT
dGF0ZSB7CiAgICAgRGlkTm90T3ZlcmZsb3cKIH07CiAKK2NsYXNzIEFzc2VydE5vT3ZlcmZsb3cg
eworcHVibGljOgorICAgIHN0YXRpYyBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIG92ZXJm
bG93ZWQoKQorICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisg
ICAgdm9pZCBjbGVhck92ZXJmbG93KCkgeyB9CisKKyAgICBzdGF0aWMgTk9fUkVUVVJOX0RVRV9U
T19DUkFTSCB2b2lkIGNyYXNoKCkKKyAgICB7CisgICAgICAgIENSQVNIKCk7CisgICAgfQorCitw
dWJsaWM6CisgICAgY29uc3RleHByIGJvb2wgaGFzT3ZlcmZsb3dlZCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9Cit9OworCiBjbGFzcyBDb25kaXRpb25hbENyYXNoT25PdmVyZmxvdyB7CiBwdWJs
aWM6CiAgICAgdm9pZCBvdmVyZmxvd2VkKCkKQEAgLTUyMyw5ICs1NDEsMjUgQEAgdGVtcGxhdGUg
PHR5cGVuYW1lIFJlc3VsdFR5cGU+IHN0cnVjdCBBcgogICAgIH0KIH07CiAKK3RlbXBsYXRlIDxj
bGFzcyBPdmVyZmxvd0hhbmRsZXIsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6Omlz
X29iamVjdDxPdmVyZmxvd0hhbmRsZXI+Ojp2YWx1ZT4+CitpbmxpbmUgY29uc3RleHByIGJvb2wg
b2JzZXJ2ZXNPdmVyZmxvdygpIHsgcmV0dXJuIHRydWU7IH0KKwordGVtcGxhdGUgPD4KK2lubGlu
ZSBjb25zdGV4cHIgYm9vbCBvYnNlcnZlc092ZXJmbG93PEFzc2VydE5vT3ZlcmZsb3c+KCkgeyBy
ZXR1cm4gIUFTU0VSVF9ESVNBQkxFRDsgfQorCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVSwgdHlwZW5h
bWUgViwgdHlwZW5hbWUgUj4gc3RhdGljIGlubGluZSBib29sIHNhZmVBZGQoVSBsaHMsIFYgcmhz
LCBSJiByZXN1bHQpCiB7CiAgICAgcmV0dXJuIEFyaXRobWV0aWNPcGVyYXRpb25zPFUsIFYsIFI+
OjphZGQobGhzLCByaHMsIHJlc3VsdCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3RlbXBsYXRl
IDxjbGFzcyBPdmVyZmxvd0hhbmRsZXIsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1l
IFI+CitzdGF0aWMgaW5saW5lIGJvb2wgc2FmZUFkZChVIGxocywgViByaHMsIFImIHJlc3VsdCkK
K3sKKyAgICBpZiAob2JzZXJ2ZXNPdmVyZmxvdzxPdmVyZmxvd0hhbmRsZXI+KCkpCisgICAgICAg
IHJldHVybiBzYWZlQWRkKGxocywgcmhzLCByZXN1bHQpOworICAgIHJlc3VsdCA9IGxocyArIHJo
czsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFUsIHR5cGVuYW1l
IFYsIHR5cGVuYW1lIFI+IHN0YXRpYyBpbmxpbmUgYm9vbCBzYWZlU3ViKFUgbGhzLCBWIHJocywg
UiYgcmVzdWx0KQpAQCAtNTMzLDExICs1NjcsMjkgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFUsIHR5
cGVuYW1lIFYsIHR5cGVuYQogICAgIHJldHVybiBBcml0aG1ldGljT3BlcmF0aW9uczxVLCBWLCBS
Pjo6c3ViKGxocywgcmhzLCByZXN1bHQpOwogfQogCit0ZW1wbGF0ZSA8Y2xhc3MgT3ZlcmZsb3dI
YW5kbGVyLCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBSPgorc3RhdGljIGlubGlu
ZSBib29sIHNhZmVTdWIoVSBsaHMsIFYgcmhzLCBSJiByZXN1bHQpCit7CisgICAgaWYgKG9ic2Vy
dmVzT3ZlcmZsb3c8T3ZlcmZsb3dIYW5kbGVyPigpKQorICAgICAgICByZXR1cm4gc2FmZVN1Yihs
aHMsIHJocywgcmVzdWx0KTsKKyAgICByZXN1bHQgPSBsaHMgLSByaHM7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKIHRlbXBsYXRlIDx0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBSPiBz
dGF0aWMgaW5saW5lIGJvb2wgc2FmZU11bHRpcGx5KFUgbGhzLCBWIHJocywgUiYgcmVzdWx0KQog
ewogICAgIHJldHVybiBBcml0aG1ldGljT3BlcmF0aW9uczxVLCBWLCBSPjo6bXVsdGlwbHkobGhz
LCByaHMsIHJlc3VsdCk7CiB9CiAKK3RlbXBsYXRlIDxjbGFzcyBPdmVyZmxvd0hhbmRsZXIsIHR5
cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFI+CitzdGF0aWMgaW5saW5lIGJvb2wgc2Fm
ZU11bHRpcGx5KFUgbGhzLCBWIHJocywgUiYgcmVzdWx0KQoreworICAgIGlmIChvYnNlcnZlc092
ZXJmbG93PE92ZXJmbG93SGFuZGxlcj4oKSkKKyAgICAgICAgcmV0dXJuIHNhZmVNdWx0aXBseShs
aHMsIHJocywgcmVzdWx0KTsKKyAgICByZXN1bHQgPSBsaHMgKiByaHM7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKIHRlbXBsYXRlIDx0eXBlbmFtZSBVLCB0eXBlbmFtZSBWPiBzdGF0aWMgaW5saW5l
IGJvb2wgc2FmZUVxdWFscyhVIGxocywgViByaHMpCiB7CiAgICAgcmV0dXJuIEFyaXRobWV0aWNP
cGVyYXRpb25zPFUsIFY+OjplcXVhbHMobGhzLCByaHMpOwpAQCAtNjc2LDIxICs3MjgsMjEgQEAg
cHVibGljOgogICAgIC8vIE11dGF0aW5nIGFzc2lnbm1lbnQKICAgICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVT4gY29uc3QgQ2hlY2tlZCBvcGVyYXRvcis9KFUgcmhzKQogICAgIHsKLSAgICAgICAgaWYg
KCFzYWZlQWRkKG1fdmFsdWUsIHJocywgbV92YWx1ZSkpCisgICAgICAgIGlmICghc2FmZUFkZDxP
dmVyZmxvd0hhbmRsZXI+KG1fdmFsdWUsIHJocywgbV92YWx1ZSkpCiAgICAgICAgICAgICB0aGlz
LT5vdmVyZmxvd2VkKCk7CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKICAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVT4gY29uc3QgQ2hlY2tlZCBvcGVyYXRvci09KFUgcmhzKQogICAgIHsK
LSAgICAgICAgaWYgKCFzYWZlU3ViKG1fdmFsdWUsIHJocywgbV92YWx1ZSkpCisgICAgICAgIGlm
ICghc2FmZVN1YjxPdmVyZmxvd0hhbmRsZXI+KG1fdmFsdWUsIHJocywgbV92YWx1ZSkpCiAgICAg
ICAgICAgICB0aGlzLT5vdmVyZmxvd2VkKCk7CiAgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9
CiAKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4gY29uc3QgQ2hlY2tlZCBvcGVyYXRvcio9KFUg
cmhzKQogICAgIHsKLSAgICAgICAgaWYgKCFzYWZlTXVsdGlwbHkobV92YWx1ZSwgcmhzLCBtX3Zh
bHVlKSkKKyAgICAgICAgaWYgKCFzYWZlTXVsdGlwbHk8T3ZlcmZsb3dIYW5kbGVyPihtX3ZhbHVl
LCByaHMsIG1fdmFsdWUpKQogICAgICAgICAgICAgdGhpcy0+b3ZlcmZsb3dlZCgpOwogICAgICAg
ICByZXR1cm4gKnRoaXM7CiAgICAgfQpAQCAtODE0LDcgKzg2Niw3IEBAIHRlbXBsYXRlIDx0eXBl
bmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmEKICAgICBWIHkgPSAwOwogICAgIGJvb2wgb3ZlcmZs
b3dlZCA9IGxocy5zYWZlR2V0KHgpID09IENoZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3cgfHwgcmhz
LnNhZmVHZXQoeSkgPT0gQ2hlY2tlZFN0YXRlOjpEaWRPdmVyZmxvdzsKICAgICB0eXBlbmFtZSBS
ZXN1bHQ8VSwgVj46OlJlc3VsdFR5cGUgcmVzdWx0ID0gMDsKLSAgICBvdmVyZmxvd2VkIHw9ICFz
YWZlQWRkKHgsIHksIHJlc3VsdCk7CisgICAgb3ZlcmZsb3dlZCB8PSAhc2FmZUFkZDxPdmVyZmxv
d0hhbmRsZXI+KHgsIHksIHJlc3VsdCk7CiAgICAgaWYgKG92ZXJmbG93ZWQpCiAgICAgICAgIHJl
dHVybiBSZXN1bHRPdmVyZmxvd2VkOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC04MjYsNyArODc4
LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYQogICAgIFYgeSA9
IDA7CiAgICAgYm9vbCBvdmVyZmxvd2VkID0gbGhzLnNhZmVHZXQoeCkgPT0gQ2hlY2tlZFN0YXRl
OjpEaWRPdmVyZmxvdyB8fCByaHMuc2FmZUdldCh5KSA9PSBDaGVja2VkU3RhdGU6OkRpZE92ZXJm
bG93OwogICAgIHR5cGVuYW1lIFJlc3VsdDxVLCBWPjo6UmVzdWx0VHlwZSByZXN1bHQgPSAwOwot
ICAgIG92ZXJmbG93ZWQgfD0gIXNhZmVTdWIoeCwgeSwgcmVzdWx0KTsKKyAgICBvdmVyZmxvd2Vk
IHw9ICFzYWZlU3ViPE92ZXJmbG93SGFuZGxlcj4oeCwgeSwgcmVzdWx0KTsKICAgICBpZiAob3Zl
cmZsb3dlZCkKICAgICAgICAgcmV0dXJuIFJlc3VsdE92ZXJmbG93ZWQ7CiAgICAgcmV0dXJuIHJl
c3VsdDsKQEAgLTgzOCw3ICs4OTAsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVSwgdHlwZW5hbWUg
ViwgdHlwZW5hCiAgICAgViB5ID0gMDsKICAgICBib29sIG92ZXJmbG93ZWQgPSBsaHMuc2FmZUdl
dCh4KSA9PSBDaGVja2VkU3RhdGU6OkRpZE92ZXJmbG93IHx8IHJocy5zYWZlR2V0KHkpID09IENo
ZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3c7CiAgICAgdHlwZW5hbWUgUmVzdWx0PFUsIFY+OjpSZXN1
bHRUeXBlIHJlc3VsdCA9IDA7Ci0gICAgb3ZlcmZsb3dlZCB8PSAhc2FmZU11bHRpcGx5KHgsIHks
IHJlc3VsdCk7CisgICAgb3ZlcmZsb3dlZCB8PSAhc2FmZU11bHRpcGx5PE92ZXJmbG93SGFuZGxl
cj4oeCwgeSwgcmVzdWx0KTsKICAgICBpZiAob3ZlcmZsb3dlZCkKICAgICAgICAgcmV0dXJuIFJl
c3VsdE92ZXJmbG93ZWQ7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTkzMCw2ICs5ODIsNyBAQCB0
ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmdzPiBiCiAKIH0KIAordXNpbmcgV1RG
OjpBc3NlcnROb092ZXJmbG93OwogdXNpbmcgV1RGOjpDaGVja2VkOwogdXNpbmcgV1RGOjpDaGVj
a2VkU3RhdGU7CiB1c2luZyBXVEY6OkNoZWNrZWRJbnQ4Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362805</attachid>
            <date>2019-02-22 17:42:38 -0800</date>
            <delta_ts>2019-02-22 17:52:45 -0800</delta_ts>
            <desc>patch for landing.</desc>
            <filename>bug-194962.patch</filename>
            <type>text/plain</type>
            <size>13967</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQxOTY3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDE5LTAyLTIyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgYW4gZXhjZXB0aW9uIGNoZWNrIGFuZCBzb21lIGFzc2VydGlvbnMgaW4gU3RyaW5nUHJvdG90
eXBlLmNwcC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5NDk2MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgwMTM0MTY+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgWXVzdWtlIFN1enVraSBhbmQgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgKiBydW50
aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmpzU3BsaWNlU3Vic3RyaW5n
cyk6CisgICAgICAgIChKU0M6OmpzU3BsaWNlU3Vic3RyaW5nc1dpdGhTZXBhcmF0b3JzKToKKyAg
ICAgICAgKEpTQzo6b3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVwbGFjZVJlZ0V4cEVtcHR5U3Ry
KToKKwogMjAxOS0wMi0yMiAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgog
CiAgICAgICAgIEIzUmVkdWNlU3RyZW5ndGg6IG1pc3NpbmcgcGVlcGhvbGUgb3B0aW1pemF0aW9u
cyBmb3IgYmluYXJ5IG9wZXJhdGlvbnMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMjQxOTYzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFy
cmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0LTIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogIENvcHlyaWdodCAoQykgMjAw
OSBUb3JjaCBNb2JpbGUsIEluYy4KICAqICBDb3B5cmlnaHQgKEMpIDIwMTUgSm9yZGFuIEhhcmJh
bmQgKGxqaGFyYkBnbWFpbC5jb20pCiAgKgpAQCAtMzI0LDkgKzMyNCwxNCBAQCBzdGF0aWMgQUxX
QVlTX0lOTElORSBKU1N0cmluZyoganNTcGxpY2VTCiAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwganNTdHJpbmcoZXhlYywgU3RyaW5nSW1wbDo6Y3JlYXRlU3Vic3RyaW5nU2hhcmlu
Z0ltcGwoKnNvdXJjZS5pbXBsKCksIHN0ZDo6bWF4KDAsIHBvc2l0aW9uKSwgc3RkOjptaW4oc291
cmNlU2l6ZSwgbGVuZ3RoKSkpKTsKICAgICB9CiAKLSAgICBpbnQgdG90YWxMZW5ndGggPSAwOwor
ICAgIC8vIFdlIGtub3cgdGhhdCB0aGUgc3VtIG9mIHN1YnN0cmluZ1JhbmdlcyBsZW5ndGhzIGNh
bm5vdCBleGNlZWQgbGVuZ3RoIG9mCisgICAgLy8gc291cmNlIGJlY2F1c2UgdGhlIHN1YnN0cmlu
Z1JhbmdlcyB3ZXJlIGNvbXB1dGVkIGZyb20gdGhlIHNvdXJjZSBzdHJpbmcKKyAgICAvLyBpbiBy
ZW1vdmVVc2luZ1JlZ0V4cFNlYXJjaCgpLiBIZW5jZSwgdG90YWxMZW5ndGggY2Fubm90IGV4Y2Vl
ZAorICAgIC8vIFN0cmluZzo6TWF4TGVuZ3RoLCBhbmQgdGhlcmVmb3JlLCBjYW5ub3Qgb3ZlcmZs
b3cuCisgICAgQ2hlY2tlZDxpbnQsIEFzc2VydE5vT3ZlcmZsb3c+IHRvdGFsTGVuZ3RoID0gMDsK
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJhbmdlQ291bnQ7IGkrKykKICAgICAgICAgdG90YWxM
ZW5ndGggKz0gc3Vic3RyaW5nUmFuZ2VzW2ldLmxlbmd0aDsKKyAgICBBU1NFUlQodG90YWxMZW5n
dGggPD0gU3RyaW5nOjpNYXhMZW5ndGgpOwogCiAgICAgaWYgKCF0b3RhbExlbmd0aCkKICAgICAg
ICAgcmV0dXJuIGpzRW1wdHlTdHJpbmcoZXhlYyk7CkBAIC0zMzQsMTYgKzMzOSwxNiBAQCBzdGF0
aWMgQUxXQVlTX0lOTElORSBKU1N0cmluZyoganNTcGxpY2VTCiAgICAgaWYgKHNvdXJjZS5pczhC
aXQoKSkgewogICAgICAgICBMQ2hhciogYnVmZmVyOwogICAgICAgICBjb25zdCBMQ2hhciogc291
cmNlRGF0YSA9IHNvdXJjZS5jaGFyYWN0ZXJzOCgpOwotICAgICAgICBhdXRvIGltcGwgPSBTdHJp
bmdJbXBsOjp0cnlDcmVhdGVVbmluaXRpYWxpemVkKHRvdGFsTGVuZ3RoLCBidWZmZXIpOworICAg
ICAgICBhdXRvIGltcGwgPSBTdHJpbmdJbXBsOjp0cnlDcmVhdGVVbmluaXRpYWxpemVkKHRvdGFs
TGVuZ3RoLnVuc2FmZUdldCgpLCBidWZmZXIpOwogICAgICAgICBpZiAoIWltcGwpIHsKICAgICAg
ICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihleGVjLCBzY29wZSk7CiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogCi0gICAgICAgIGludCBidWZmZXJQb3MgPSAwOwor
ICAgICAgICBDaGVja2VkPGludCwgQXNzZXJ0Tm9PdmVyZmxvdz4gYnVmZmVyUG9zID0gMDsKICAg
ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByYW5nZUNvdW50OyBpKyspIHsKICAgICAgICAgICAg
IGlmIChpbnQgc3JjTGVuID0gc3Vic3RyaW5nUmFuZ2VzW2ldLmxlbmd0aCkgewotICAgICAgICAg
ICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciArIGJ1ZmZlclBvcywgc291
cmNlRGF0YSArIHN1YnN0cmluZ1Jhbmdlc1tpXS5wb3NpdGlvbiwgc3JjTGVuKTsKKyAgICAgICAg
ICAgICAgICBTdHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZmZXJQb3MudW5z
YWZlR2V0KCksIHNvdXJjZURhdGEgKyBzdWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xl
bik7CiAgICAgICAgICAgICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQpAQCAtMzU0LDE2ICszNTksMTYgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgSlNT
dHJpbmcqIGpzU3BsaWNlUwogICAgIFVDaGFyKiBidWZmZXI7CiAgICAgY29uc3QgVUNoYXIqIHNv
dXJjZURhdGEgPSBzb3VyY2UuY2hhcmFjdGVyczE2KCk7CiAKLSAgICBhdXRvIGltcGwgPSBTdHJp
bmdJbXBsOjp0cnlDcmVhdGVVbmluaXRpYWxpemVkKHRvdGFsTGVuZ3RoLCBidWZmZXIpOworICAg
IGF1dG8gaW1wbCA9IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQodG90YWxMZW5n
dGgudW5zYWZlR2V0KCksIGJ1ZmZlcik7CiAgICAgaWYgKCFpbXBsKSB7CiAgICAgICAgIHRocm93
T3V0T2ZNZW1vcnlFcnJvcihleGVjLCBzY29wZSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KIAotICAgIGludCBidWZmZXJQb3MgPSAwOworICAgIENoZWNrZWQ8aW50LCBBc3NlcnRO
b092ZXJmbG93PiBidWZmZXJQb3MgPSAwOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmFuZ2VD
b3VudDsgaSsrKSB7CiAgICAgICAgIGlmIChpbnQgc3JjTGVuID0gc3Vic3RyaW5nUmFuZ2VzW2ld
Lmxlbmd0aCkgewotICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNoYXJhY3RlcnMoYnVmZmVy
ICsgYnVmZmVyUG9zLCBzb3VyY2VEYXRhICsgc3Vic3RyaW5nUmFuZ2VzW2ldLnBvc2l0aW9uLCBz
cmNMZW4pOworICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNoYXJhY3RlcnMoYnVmZmVyICsg
YnVmZmVyUG9zLnVuc2FmZUdldCgpLCBzb3VyY2VEYXRhICsgc3Vic3RyaW5nUmFuZ2VzW2ldLnBv
c2l0aW9uLCBzcmNMZW4pOwogICAgICAgICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAg
ICAgfQogICAgIH0KQEAgLTQxNCwxNyArNDE5LDE3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpT
U3RyaW5nKiBqc1NwbGljZVMKICAgICAgICAgfQogCiAgICAgICAgIGludCBtYXhDb3VudCA9IHN0
ZDo6bWF4KHJhbmdlQ291bnQsIHNlcGFyYXRvckNvdW50KTsKLSAgICAgICAgaW50IGJ1ZmZlclBv
cyA9IDA7CisgICAgICAgIENoZWNrZWQ8aW50LCBBc3NlcnROb092ZXJmbG93PiBidWZmZXJQb3Mg
PSAwOwogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1heENvdW50OyBpKyspIHsKICAgICAg
ICAgICAgIGlmIChpIDwgcmFuZ2VDb3VudCkgewogICAgICAgICAgICAgICAgIGlmIChpbnQgc3Jj
TGVuID0gc3Vic3RyaW5nUmFuZ2VzW2ldLmxlbmd0aCkgewotICAgICAgICAgICAgICAgICAgICBT
dHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZmZXJQb3MsIHNvdXJjZURhdGEg
KyBzdWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xlbik7CisgICAgICAgICAgICAgICAg
ICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciArIGJ1ZmZlclBvcy51bnNhZmVH
ZXQoKSwgc291cmNlRGF0YSArIHN1YnN0cmluZ1Jhbmdlc1tpXS5wb3NpdGlvbiwgc3JjTGVuKTsK
ICAgICAgICAgICAgICAgICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoaSA8IHNlcGFyYXRvckNvdW50KSB7
CiAgICAgICAgICAgICAgICAgaWYgKGludCBzZXBMZW4gPSBzZXBhcmF0b3JzW2ldLmxlbmd0aCgp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZl
ciArIGJ1ZmZlclBvcywgc2VwYXJhdG9yc1tpXS5jaGFyYWN0ZXJzOCgpLCBzZXBMZW4pOworICAg
ICAgICAgICAgICAgICAgICBTdHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZm
ZXJQb3MudW5zYWZlR2V0KCksIHNlcGFyYXRvcnNbaV0uY2hhcmFjdGVyczgoKSwgc2VwTGVuKTsK
ICAgICAgICAgICAgICAgICAgICAgYnVmZmVyUG9zICs9IHNlcExlbjsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9CkBAIC00NDEsMjMgKzQ0NiwyMyBAQCBzdGF0aWMgQUxXQVlTX0lO
TElORSBKU1N0cmluZyoganNTcGxpY2VTCiAgICAgfQogCiAgICAgaW50IG1heENvdW50ID0gc3Rk
OjptYXgocmFuZ2VDb3VudCwgc2VwYXJhdG9yQ291bnQpOwotICAgIGludCBidWZmZXJQb3MgPSAw
OworICAgIENoZWNrZWQ8aW50LCBBc3NlcnROb092ZXJmbG93PiBidWZmZXJQb3MgPSAwOwogICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgbWF4Q291bnQ7IGkrKykgewogICAgICAgICBpZiAoaSA8IHJh
bmdlQ291bnQpIHsKICAgICAgICAgICAgIGlmIChpbnQgc3JjTGVuID0gc3Vic3RyaW5nUmFuZ2Vz
W2ldLmxlbmd0aCkgewogICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuaXM4Qml0KCkpCi0gICAg
ICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciArIGJ1ZmZl
clBvcywgc291cmNlLmNoYXJhY3RlcnM4KCkgKyBzdWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24s
IHNyY0xlbik7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJz
KGJ1ZmZlciArIGJ1ZmZlclBvcy51bnNhZmVHZXQoKSwgc291cmNlLmNoYXJhY3RlcnM4KCkgKyBz
dWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xlbik7CiAgICAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICBTdHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIg
KyBidWZmZXJQb3MsIHNvdXJjZS5jaGFyYWN0ZXJzMTYoKSArIHN1YnN0cmluZ1Jhbmdlc1tpXS5w
b3NpdGlvbiwgc3JjTGVuKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNo
YXJhY3RlcnMoYnVmZmVyICsgYnVmZmVyUG9zLnVuc2FmZUdldCgpLCBzb3VyY2UuY2hhcmFjdGVy
czE2KCkgKyBzdWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xlbik7CiAgICAgICAgICAg
ICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
ICAgICBpZiAoaSA8IHNlcGFyYXRvckNvdW50KSB7CiAgICAgICAgICAgICBpZiAoaW50IHNlcExl
biA9IHNlcGFyYXRvcnNbaV0ubGVuZ3RoKCkpIHsKICAgICAgICAgICAgICAgICBpZiAoc2VwYXJh
dG9yc1tpXS5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNo
YXJhY3RlcnMoYnVmZmVyICsgYnVmZmVyUG9zLCBzZXBhcmF0b3JzW2ldLmNoYXJhY3RlcnM4KCks
IHNlcExlbik7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJz
KGJ1ZmZlciArIGJ1ZmZlclBvcy51bnNhZmVHZXQoKSwgc2VwYXJhdG9yc1tpXS5jaGFyYWN0ZXJz
OCgpLCBzZXBMZW4pOwogICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAg
U3RyaW5nSW1wbDo6Y29weUNoYXJhY3RlcnMoYnVmZmVyICsgYnVmZmVyUG9zLCBzZXBhcmF0b3Jz
W2ldLmNoYXJhY3RlcnMxNigpLCBzZXBMZW4pOworICAgICAgICAgICAgICAgICAgICBTdHJpbmdJ
bXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZmZXJQb3MudW5zYWZlR2V0KCksIHNlcGFy
YXRvcnNbaV0uY2hhcmFjdGVyczE2KCksIHNlcExlbik7CiAgICAgICAgICAgICAgICAgYnVmZmVy
UG9zICs9IHNlcExlbjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNzI5LDcgKzczNCw5
IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25TdHJpbmdQcm8KICAgICAgICAgLy8g
RVM1LjEgMTUuNS40LjEwIHN0ZXAgOC5hLgogICAgICAgICBzZWFyY2hWYWx1ZS0+c2V0TGFzdElu
ZGV4KGV4ZWMsIDApOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRy
KTsKLSAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCByZW1vdmVVc2luZ1JlZ0V4cFNl
YXJjaCh2bSwgZXhlYywgdGhpc1ZhbHVlLCB0aGlzVmFsdWUtPnZhbHVlKGV4ZWMpLCByZWdFeHAp
KTsKKyAgICAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2UgPSB0aGlzVmFsdWUtPnZhbHVlKGV4ZWMp
OworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKyAgICAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCByZW1vdmVVc2luZ1JlZ0V4cFNlYXJjaCh2bSwgZXhl
YywgdGhpc1ZhbHVlLCBzb3VyY2UsIHJlZ0V4cCkpOwogICAgIH0KIAogICAgIENhbGxEYXRhIGNh
bGxEYXRhOwpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MTk2MykKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTktMDItMjIgIE1hcmsgTGFtICA8
bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhbiBleGNlcHRpb24gY2hlY2sgYW5k
IHNvbWUgYXNzZXJ0aW9ucyBpbiBTdHJpbmdQcm90b3R5cGUuY3BwLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0OTYyCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80ODAxMzQxNj4KKworICAgICAgICBSZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpIGFu
ZCBTYWFtIEJhcmF0aS4KKworICAgICAgICBBZGQgYW4gQXNzZXJ0Tm9PdmVyZmxvdyBvdmVyZmxv
dyBoYW5kbGVyIHdoaWNoIGFsbG93cyB1cyB0byBkbyBDaGVja2VkQXJpdGhtZXRpYworICAgICAg
ICBmb3IgYXNzZXJ0aW9uIHB1cnBvc2Ugb25seSBvbiBkZWJ1ZyBidWlsZHMgYnV0IHNhY3JpZmlj
ZXMgbm8gcGVyZm9ybWFuY2Ugb24KKyAgICAgICAgcmVsZWFzZSBidWlsZHMuCisKKyAgICAgICAg
KiB3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaDoKKyAgICAgICAgKFdURjo6QXNzZXJ0Tm9PdmVyZmxv
dzo6b3ZlcmZsb3dlZCk6CisgICAgICAgIChXVEY6OkFzc2VydE5vT3ZlcmZsb3c6OmNsZWFyT3Zl
cmZsb3cpOgorICAgICAgICAoV1RGOjpBc3NlcnROb092ZXJmbG93OjpjcmFzaCk6CisgICAgICAg
IChXVEY6OkFzc2VydE5vT3ZlcmZsb3c6Omhhc092ZXJmbG93ZWQgY29uc3QpOgorICAgICAgICAo
V1RGOjpvYnNlcnZlc092ZXJmbG93KToKKyAgICAgICAgKFdURjo6b2JzZXJ2ZXNPdmVyZmxvdzxB
c3NlcnROb092ZXJmbG93Pik6CisgICAgICAgIChXVEY6OnNhZmVBZGQpOgorICAgICAgICAoV1RG
OjpzYWZlU3ViKToKKyAgICAgICAgKFdURjo6c2FmZU11bHRpcGx5KToKKyAgICAgICAgKFdURjo6
Q2hlY2tlZDo6b3BlcmF0b3IrPSk6CisgICAgICAgIChXVEY6OkNoZWNrZWQ6Om9wZXJhdG9yLT0p
OgorICAgICAgICAoV1RGOjpDaGVja2VkOjpvcGVyYXRvcio9KToKKyAgICAgICAgKFdURjo6b3Bl
cmF0b3IrKToKKyAgICAgICAgKFdURjo6b3BlcmF0b3ItKToKKyAgICAgICAgKFdURjo6b3BlcmF0
b3IqKToKKwogMjAxOS0wMi0yMSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgog
CiAgICAgICAgIE1vdmUgVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyLmFjdGl2ZVRv
dWNoZXNCeUlkZW50aWZpZXIgdG8gU1BJCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9DaGVja2VkQXJp
dGhtZXRpYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0NoZWNrZWRBcml0aG1ldGlj
LmgJKHJldmlzaW9uIDI0MTk2MykKKysrIFNvdXJjZS9XVEYvd3RmL0NoZWNrZWRBcml0aG1ldGlj
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDExLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDExLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC03MCw2ICs3MCwyNCBAQCBlbnVtIGNsYXNzIENoZWNrZWRT
dGF0ZSB7CiAgICAgRGlkTm90T3ZlcmZsb3cKIH07CiAKK2NsYXNzIEFzc2VydE5vT3ZlcmZsb3cg
eworcHVibGljOgorICAgIHN0YXRpYyBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIG92ZXJm
bG93ZWQoKQorICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisg
ICAgdm9pZCBjbGVhck92ZXJmbG93KCkgeyB9CisKKyAgICBzdGF0aWMgTk9fUkVUVVJOX0RVRV9U
T19DUkFTSCB2b2lkIGNyYXNoKCkKKyAgICB7CisgICAgICAgIENSQVNIKCk7CisgICAgfQorCitw
dWJsaWM6CisgICAgY29uc3RleHByIGJvb2wgaGFzT3ZlcmZsb3dlZCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9Cit9OworCiBjbGFzcyBDb25kaXRpb25hbENyYXNoT25PdmVyZmxvdyB7CiBwdWJs
aWM6CiAgICAgdm9pZCBvdmVyZmxvd2VkKCkKQEAgLTUyMyw5ICs1NDEsMjYgQEAgdGVtcGxhdGUg
PHR5cGVuYW1lIFJlc3VsdFR5cGU+IHN0cnVjdCBBcgogICAgIH0KIH07CiAKK3RlbXBsYXRlIDxj
bGFzcyBPdmVyZmxvd0hhbmRsZXIsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDxzdGQ6Omlz
X29iamVjdDxPdmVyZmxvd0hhbmRsZXI+Ojp2YWx1ZT4+CitpbmxpbmUgY29uc3RleHByIGJvb2wg
b2JzZXJ2ZXNPdmVyZmxvdygpIHsgcmV0dXJuIHRydWU7IH0KKwordGVtcGxhdGUgPD4KK2lubGlu
ZSBjb25zdGV4cHIgYm9vbCBvYnNlcnZlc092ZXJmbG93PEFzc2VydE5vT3ZlcmZsb3c+KCkgeyBy
ZXR1cm4gIUFTU0VSVF9ESVNBQkxFRDsgfQorCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVSwgdHlwZW5h
bWUgViwgdHlwZW5hbWUgUj4gc3RhdGljIGlubGluZSBib29sIHNhZmVBZGQoVSBsaHMsIFYgcmhz
LCBSJiByZXN1bHQpCiB7CiAgICAgcmV0dXJuIEFyaXRobWV0aWNPcGVyYXRpb25zPFUsIFYsIFI+
OjphZGQobGhzLCByaHMsIHJlc3VsdCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3RlbXBsYXRl
IDxjbGFzcyBPdmVyZmxvd0hhbmRsZXIsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1l
IFI+CitzdGF0aWMgaW5saW5lIGJvb2wgc2FmZUFkZChVIGxocywgViByaHMsIFImIHJlc3VsdCkK
K3sKKyAgICBzdGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX3NjYWxhcjxPdmVyZmxvd0hhbmRsZXI+Ojp2
YWx1ZSwgIiIpOworICAgIGlmIChvYnNlcnZlc092ZXJmbG93PE92ZXJmbG93SGFuZGxlcj4oKSkK
KyAgICAgICAgcmV0dXJuIHNhZmVBZGQobGhzLCByaHMsIHJlc3VsdCk7CisgICAgcmVzdWx0ID0g
bGhzICsgcmhzOworICAgIHJldHVybiB0cnVlOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVSwg
dHlwZW5hbWUgViwgdHlwZW5hbWUgUj4gc3RhdGljIGlubGluZSBib29sIHNhZmVTdWIoVSBsaHMs
IFYgcmhzLCBSJiByZXN1bHQpCkBAIC01MzMsMTEgKzU2OCwzMSBAQCB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hCiAgICAgcmV0dXJuIEFyaXRobWV0aWNPcGVyYXRpb25z
PFUsIFYsIFI+OjpzdWIobGhzLCByaHMsIHJlc3VsdCk7CiB9CiAKK3RlbXBsYXRlIDxjbGFzcyBP
dmVyZmxvd0hhbmRsZXIsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFI+CitzdGF0
aWMgaW5saW5lIGJvb2wgc2FmZVN1YihVIGxocywgViByaHMsIFImIHJlc3VsdCkKK3sKKyAgICBz
dGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX3NjYWxhcjxPdmVyZmxvd0hhbmRsZXI+Ojp2YWx1ZSwgIiIp
OworICAgIGlmIChvYnNlcnZlc092ZXJmbG93PE92ZXJmbG93SGFuZGxlcj4oKSkKKyAgICAgICAg
cmV0dXJuIHNhZmVTdWIobGhzLCByaHMsIHJlc3VsdCk7CisgICAgcmVzdWx0ID0gbGhzIC0gcmhz
OworICAgIHJldHVybiB0cnVlOworfQorCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVSwgdHlwZW5hbWUg
ViwgdHlwZW5hbWUgUj4gc3RhdGljIGlubGluZSBib29sIHNhZmVNdWx0aXBseShVIGxocywgViBy
aHMsIFImIHJlc3VsdCkKIHsKICAgICByZXR1cm4gQXJpdGhtZXRpY09wZXJhdGlvbnM8VSwgViwg
Uj46Om11bHRpcGx5KGxocywgcmhzLCByZXN1bHQpOwogfQogCit0ZW1wbGF0ZSA8Y2xhc3MgT3Zl
cmZsb3dIYW5kbGVyLCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBSPgorc3RhdGlj
IGlubGluZSBib29sIHNhZmVNdWx0aXBseShVIGxocywgViByaHMsIFImIHJlc3VsdCkKK3sKKyAg
ICBzdGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX3NjYWxhcjxPdmVyZmxvd0hhbmRsZXI+Ojp2YWx1ZSwg
IiIpOworICAgIGlmIChvYnNlcnZlc092ZXJmbG93PE92ZXJmbG93SGFuZGxlcj4oKSkKKyAgICAg
ICAgcmV0dXJuIHNhZmVNdWx0aXBseShsaHMsIHJocywgcmVzdWx0KTsKKyAgICByZXN1bHQgPSBs
aHMgKiByaHM7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHRlbXBsYXRlIDx0eXBlbmFtZSBVLCB0
eXBlbmFtZSBWPiBzdGF0aWMgaW5saW5lIGJvb2wgc2FmZUVxdWFscyhVIGxocywgViByaHMpCiB7
CiAgICAgcmV0dXJuIEFyaXRobWV0aWNPcGVyYXRpb25zPFUsIFY+OjplcXVhbHMobGhzLCByaHMp
OwpAQCAtNjc2LDIxICs3MzEsMjEgQEAgcHVibGljOgogICAgIC8vIE11dGF0aW5nIGFzc2lnbm1l
bnQKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4gY29uc3QgQ2hlY2tlZCBvcGVyYXRvcis9KFUg
cmhzKQogICAgIHsKLSAgICAgICAgaWYgKCFzYWZlQWRkKG1fdmFsdWUsIHJocywgbV92YWx1ZSkp
CisgICAgICAgIGlmICghc2FmZUFkZDxPdmVyZmxvd0hhbmRsZXI+KG1fdmFsdWUsIHJocywgbV92
YWx1ZSkpCiAgICAgICAgICAgICB0aGlzLT5vdmVyZmxvd2VkKCk7CiAgICAgICAgIHJldHVybiAq
dGhpczsKICAgICB9CiAKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4gY29uc3QgQ2hlY2tlZCBv
cGVyYXRvci09KFUgcmhzKQogICAgIHsKLSAgICAgICAgaWYgKCFzYWZlU3ViKG1fdmFsdWUsIHJo
cywgbV92YWx1ZSkpCisgICAgICAgIGlmICghc2FmZVN1YjxPdmVyZmxvd0hhbmRsZXI+KG1fdmFs
dWUsIHJocywgbV92YWx1ZSkpCiAgICAgICAgICAgICB0aGlzLT5vdmVyZmxvd2VkKCk7CiAgICAg
ICAgIHJldHVybiAqdGhpczsKICAgICB9CiAKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVT4gY29u
c3QgQ2hlY2tlZCBvcGVyYXRvcio9KFUgcmhzKQogICAgIHsKLSAgICAgICAgaWYgKCFzYWZlTXVs
dGlwbHkobV92YWx1ZSwgcmhzLCBtX3ZhbHVlKSkKKyAgICAgICAgaWYgKCFzYWZlTXVsdGlwbHk8
T3ZlcmZsb3dIYW5kbGVyPihtX3ZhbHVlLCByaHMsIG1fdmFsdWUpKQogICAgICAgICAgICAgdGhp
cy0+b3ZlcmZsb3dlZCgpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQpAQCAtODE0LDcg
Kzg2OSw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmEKICAgICBW
IHkgPSAwOwogICAgIGJvb2wgb3ZlcmZsb3dlZCA9IGxocy5zYWZlR2V0KHgpID09IENoZWNrZWRT
dGF0ZTo6RGlkT3ZlcmZsb3cgfHwgcmhzLnNhZmVHZXQoeSkgPT0gQ2hlY2tlZFN0YXRlOjpEaWRP
dmVyZmxvdzsKICAgICB0eXBlbmFtZSBSZXN1bHQ8VSwgVj46OlJlc3VsdFR5cGUgcmVzdWx0ID0g
MDsKLSAgICBvdmVyZmxvd2VkIHw9ICFzYWZlQWRkKHgsIHksIHJlc3VsdCk7CisgICAgb3ZlcmZs
b3dlZCB8PSAhc2FmZUFkZDxPdmVyZmxvd0hhbmRsZXI+KHgsIHksIHJlc3VsdCk7CiAgICAgaWYg
KG92ZXJmbG93ZWQpCiAgICAgICAgIHJldHVybiBSZXN1bHRPdmVyZmxvd2VkOwogICAgIHJldHVy
biByZXN1bHQ7CkBAIC04MjYsNyArODgxLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFUsIHR5cGVu
YW1lIFYsIHR5cGVuYQogICAgIFYgeSA9IDA7CiAgICAgYm9vbCBvdmVyZmxvd2VkID0gbGhzLnNh
ZmVHZXQoeCkgPT0gQ2hlY2tlZFN0YXRlOjpEaWRPdmVyZmxvdyB8fCByaHMuc2FmZUdldCh5KSA9
PSBDaGVja2VkU3RhdGU6OkRpZE92ZXJmbG93OwogICAgIHR5cGVuYW1lIFJlc3VsdDxVLCBWPjo6
UmVzdWx0VHlwZSByZXN1bHQgPSAwOwotICAgIG92ZXJmbG93ZWQgfD0gIXNhZmVTdWIoeCwgeSwg
cmVzdWx0KTsKKyAgICBvdmVyZmxvd2VkIHw9ICFzYWZlU3ViPE92ZXJmbG93SGFuZGxlcj4oeCwg
eSwgcmVzdWx0KTsKICAgICBpZiAob3ZlcmZsb3dlZCkKICAgICAgICAgcmV0dXJuIFJlc3VsdE92
ZXJmbG93ZWQ7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTgzOCw3ICs4OTMsNyBAQCB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hCiAgICAgViB5ID0gMDsKICAgICBib29s
IG92ZXJmbG93ZWQgPSBsaHMuc2FmZUdldCh4KSA9PSBDaGVja2VkU3RhdGU6OkRpZE92ZXJmbG93
IHx8IHJocy5zYWZlR2V0KHkpID09IENoZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3c7CiAgICAgdHlw
ZW5hbWUgUmVzdWx0PFUsIFY+OjpSZXN1bHRUeXBlIHJlc3VsdCA9IDA7Ci0gICAgb3ZlcmZsb3dl
ZCB8PSAhc2FmZU11bHRpcGx5KHgsIHksIHJlc3VsdCk7CisgICAgb3ZlcmZsb3dlZCB8PSAhc2Fm
ZU11bHRpcGx5PE92ZXJmbG93SGFuZGxlcj4oeCwgeSwgcmVzdWx0KTsKICAgICBpZiAob3ZlcmZs
b3dlZCkKICAgICAgICAgcmV0dXJuIFJlc3VsdE92ZXJmbG93ZWQ7CiAgICAgcmV0dXJuIHJlc3Vs
dDsKQEAgLTkzMCw2ICs5ODUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBB
cmdzPiBiCiAKIH0KIAordXNpbmcgV1RGOjpBc3NlcnROb092ZXJmbG93OwogdXNpbmcgV1RGOjpD
aGVja2VkOwogdXNpbmcgV1RGOjpDaGVja2VkU3RhdGU7CiB1c2luZyBXVEY6OkNoZWNrZWRJbnQ4
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362807</attachid>
            <date>2019-02-22 17:52:45 -0800</date>
            <delta_ts>2019-02-22 17:52:45 -0800</delta_ts>
            <desc>patch for landing: 6th time&apos;s the charm.</desc>
            <filename>bug-194962.patch</filename>
            <type>text/plain</type>
            <size>13983</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQxOTY3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDE5LTAyLTIyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgYW4gZXhjZXB0aW9uIGNoZWNrIGFuZCBzb21lIGFzc2VydGlvbnMgaW4gU3RyaW5nUHJvdG90
eXBlLmNwcC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5NDk2MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDgwMTM0MTY+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgWXVzdWtlIFN1enVraSBhbmQgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgKiBydW50
aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmpzU3BsaWNlU3Vic3RyaW5n
cyk6CisgICAgICAgIChKU0M6OmpzU3BsaWNlU3Vic3RyaW5nc1dpdGhTZXBhcmF0b3JzKToKKyAg
ICAgICAgKEpTQzo6b3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVwbGFjZVJlZ0V4cEVtcHR5U3Ry
KToKKwogMjAxOS0wMi0yMiAgUm9iaW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgog
CiAgICAgICAgIEIzUmVkdWNlU3RyZW5ndGg6IG1pc3NpbmcgcGVlcGhvbGUgb3B0aW1pemF0aW9u
cyBmb3IgYmluYXJ5IG9wZXJhdGlvbnMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMjQxOTYzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFy
cmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0LTIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogIENvcHlyaWdodCAoQykgMjAw
OSBUb3JjaCBNb2JpbGUsIEluYy4KICAqICBDb3B5cmlnaHQgKEMpIDIwMTUgSm9yZGFuIEhhcmJh
bmQgKGxqaGFyYkBnbWFpbC5jb20pCiAgKgpAQCAtMzI0LDkgKzMyNCwxNCBAQCBzdGF0aWMgQUxX
QVlTX0lOTElORSBKU1N0cmluZyoganNTcGxpY2VTCiAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwganNTdHJpbmcoZXhlYywgU3RyaW5nSW1wbDo6Y3JlYXRlU3Vic3RyaW5nU2hhcmlu
Z0ltcGwoKnNvdXJjZS5pbXBsKCksIHN0ZDo6bWF4KDAsIHBvc2l0aW9uKSwgc3RkOjptaW4oc291
cmNlU2l6ZSwgbGVuZ3RoKSkpKTsKICAgICB9CiAKLSAgICBpbnQgdG90YWxMZW5ndGggPSAwOwor
ICAgIC8vIFdlIGtub3cgdGhhdCB0aGUgc3VtIG9mIHN1YnN0cmluZ1JhbmdlcyBsZW5ndGhzIGNh
bm5vdCBleGNlZWQgbGVuZ3RoIG9mCisgICAgLy8gc291cmNlIGJlY2F1c2UgdGhlIHN1YnN0cmlu
Z1JhbmdlcyB3ZXJlIGNvbXB1dGVkIGZyb20gdGhlIHNvdXJjZSBzdHJpbmcKKyAgICAvLyBpbiBy
ZW1vdmVVc2luZ1JlZ0V4cFNlYXJjaCgpLiBIZW5jZSwgdG90YWxMZW5ndGggY2Fubm90IGV4Y2Vl
ZAorICAgIC8vIFN0cmluZzo6TWF4TGVuZ3RoLCBhbmQgdGhlcmVmb3JlLCBjYW5ub3Qgb3ZlcmZs
b3cuCisgICAgQ2hlY2tlZDxpbnQsIEFzc2VydE5vT3ZlcmZsb3c+IHRvdGFsTGVuZ3RoID0gMDsK
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IHJhbmdlQ291bnQ7IGkrKykKICAgICAgICAgdG90YWxM
ZW5ndGggKz0gc3Vic3RyaW5nUmFuZ2VzW2ldLmxlbmd0aDsKKyAgICBBU1NFUlQodG90YWxMZW5n
dGggPD0gU3RyaW5nOjpNYXhMZW5ndGgpOwogCiAgICAgaWYgKCF0b3RhbExlbmd0aCkKICAgICAg
ICAgcmV0dXJuIGpzRW1wdHlTdHJpbmcoZXhlYyk7CkBAIC0zMzQsMTYgKzMzOSwxNiBAQCBzdGF0
aWMgQUxXQVlTX0lOTElORSBKU1N0cmluZyoganNTcGxpY2VTCiAgICAgaWYgKHNvdXJjZS5pczhC
aXQoKSkgewogICAgICAgICBMQ2hhciogYnVmZmVyOwogICAgICAgICBjb25zdCBMQ2hhciogc291
cmNlRGF0YSA9IHNvdXJjZS5jaGFyYWN0ZXJzOCgpOwotICAgICAgICBhdXRvIGltcGwgPSBTdHJp
bmdJbXBsOjp0cnlDcmVhdGVVbmluaXRpYWxpemVkKHRvdGFsTGVuZ3RoLCBidWZmZXIpOworICAg
ICAgICBhdXRvIGltcGwgPSBTdHJpbmdJbXBsOjp0cnlDcmVhdGVVbmluaXRpYWxpemVkKHRvdGFs
TGVuZ3RoLnVuc2FmZUdldCgpLCBidWZmZXIpOwogICAgICAgICBpZiAoIWltcGwpIHsKICAgICAg
ICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihleGVjLCBzY29wZSk7CiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogCi0gICAgICAgIGludCBidWZmZXJQb3MgPSAwOwor
ICAgICAgICBDaGVja2VkPGludCwgQXNzZXJ0Tm9PdmVyZmxvdz4gYnVmZmVyUG9zID0gMDsKICAg
ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByYW5nZUNvdW50OyBpKyspIHsKICAgICAgICAgICAg
IGlmIChpbnQgc3JjTGVuID0gc3Vic3RyaW5nUmFuZ2VzW2ldLmxlbmd0aCkgewotICAgICAgICAg
ICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciArIGJ1ZmZlclBvcywgc291
cmNlRGF0YSArIHN1YnN0cmluZ1Jhbmdlc1tpXS5wb3NpdGlvbiwgc3JjTGVuKTsKKyAgICAgICAg
ICAgICAgICBTdHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZmZXJQb3MudW5z
YWZlR2V0KCksIHNvdXJjZURhdGEgKyBzdWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xl
bik7CiAgICAgICAgICAgICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQpAQCAtMzU0LDE2ICszNTksMTYgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgSlNT
dHJpbmcqIGpzU3BsaWNlUwogICAgIFVDaGFyKiBidWZmZXI7CiAgICAgY29uc3QgVUNoYXIqIHNv
dXJjZURhdGEgPSBzb3VyY2UuY2hhcmFjdGVyczE2KCk7CiAKLSAgICBhdXRvIGltcGwgPSBTdHJp
bmdJbXBsOjp0cnlDcmVhdGVVbmluaXRpYWxpemVkKHRvdGFsTGVuZ3RoLCBidWZmZXIpOworICAg
IGF1dG8gaW1wbCA9IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQodG90YWxMZW5n
dGgudW5zYWZlR2V0KCksIGJ1ZmZlcik7CiAgICAgaWYgKCFpbXBsKSB7CiAgICAgICAgIHRocm93
T3V0T2ZNZW1vcnlFcnJvcihleGVjLCBzY29wZSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KIAotICAgIGludCBidWZmZXJQb3MgPSAwOworICAgIENoZWNrZWQ8aW50LCBBc3NlcnRO
b092ZXJmbG93PiBidWZmZXJQb3MgPSAwOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmFuZ2VD
b3VudDsgaSsrKSB7CiAgICAgICAgIGlmIChpbnQgc3JjTGVuID0gc3Vic3RyaW5nUmFuZ2VzW2ld
Lmxlbmd0aCkgewotICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNoYXJhY3RlcnMoYnVmZmVy
ICsgYnVmZmVyUG9zLCBzb3VyY2VEYXRhICsgc3Vic3RyaW5nUmFuZ2VzW2ldLnBvc2l0aW9uLCBz
cmNMZW4pOworICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNoYXJhY3RlcnMoYnVmZmVyICsg
YnVmZmVyUG9zLnVuc2FmZUdldCgpLCBzb3VyY2VEYXRhICsgc3Vic3RyaW5nUmFuZ2VzW2ldLnBv
c2l0aW9uLCBzcmNMZW4pOwogICAgICAgICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAg
ICAgfQogICAgIH0KQEAgLTQxNCwxNyArNDE5LDE3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpT
U3RyaW5nKiBqc1NwbGljZVMKICAgICAgICAgfQogCiAgICAgICAgIGludCBtYXhDb3VudCA9IHN0
ZDo6bWF4KHJhbmdlQ291bnQsIHNlcGFyYXRvckNvdW50KTsKLSAgICAgICAgaW50IGJ1ZmZlclBv
cyA9IDA7CisgICAgICAgIENoZWNrZWQ8aW50LCBBc3NlcnROb092ZXJmbG93PiBidWZmZXJQb3Mg
PSAwOwogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1heENvdW50OyBpKyspIHsKICAgICAg
ICAgICAgIGlmIChpIDwgcmFuZ2VDb3VudCkgewogICAgICAgICAgICAgICAgIGlmIChpbnQgc3Jj
TGVuID0gc3Vic3RyaW5nUmFuZ2VzW2ldLmxlbmd0aCkgewotICAgICAgICAgICAgICAgICAgICBT
dHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZmZXJQb3MsIHNvdXJjZURhdGEg
KyBzdWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xlbik7CisgICAgICAgICAgICAgICAg
ICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciArIGJ1ZmZlclBvcy51bnNhZmVH
ZXQoKSwgc291cmNlRGF0YSArIHN1YnN0cmluZ1Jhbmdlc1tpXS5wb3NpdGlvbiwgc3JjTGVuKTsK
ICAgICAgICAgICAgICAgICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoaSA8IHNlcGFyYXRvckNvdW50KSB7
CiAgICAgICAgICAgICAgICAgaWYgKGludCBzZXBMZW4gPSBzZXBhcmF0b3JzW2ldLmxlbmd0aCgp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZl
ciArIGJ1ZmZlclBvcywgc2VwYXJhdG9yc1tpXS5jaGFyYWN0ZXJzOCgpLCBzZXBMZW4pOworICAg
ICAgICAgICAgICAgICAgICBTdHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZm
ZXJQb3MudW5zYWZlR2V0KCksIHNlcGFyYXRvcnNbaV0uY2hhcmFjdGVyczgoKSwgc2VwTGVuKTsK
ICAgICAgICAgICAgICAgICAgICAgYnVmZmVyUG9zICs9IHNlcExlbjsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9CkBAIC00NDEsMjMgKzQ0NiwyMyBAQCBzdGF0aWMgQUxXQVlTX0lO
TElORSBKU1N0cmluZyoganNTcGxpY2VTCiAgICAgfQogCiAgICAgaW50IG1heENvdW50ID0gc3Rk
OjptYXgocmFuZ2VDb3VudCwgc2VwYXJhdG9yQ291bnQpOwotICAgIGludCBidWZmZXJQb3MgPSAw
OworICAgIENoZWNrZWQ8aW50LCBBc3NlcnROb092ZXJmbG93PiBidWZmZXJQb3MgPSAwOwogICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgbWF4Q291bnQ7IGkrKykgewogICAgICAgICBpZiAoaSA8IHJh
bmdlQ291bnQpIHsKICAgICAgICAgICAgIGlmIChpbnQgc3JjTGVuID0gc3Vic3RyaW5nUmFuZ2Vz
W2ldLmxlbmd0aCkgewogICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuaXM4Qml0KCkpCi0gICAg
ICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJzKGJ1ZmZlciArIGJ1ZmZl
clBvcywgc291cmNlLmNoYXJhY3RlcnM4KCkgKyBzdWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24s
IHNyY0xlbik7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJz
KGJ1ZmZlciArIGJ1ZmZlclBvcy51bnNhZmVHZXQoKSwgc291cmNlLmNoYXJhY3RlcnM4KCkgKyBz
dWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xlbik7CiAgICAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICBTdHJpbmdJbXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIg
KyBidWZmZXJQb3MsIHNvdXJjZS5jaGFyYWN0ZXJzMTYoKSArIHN1YnN0cmluZ1Jhbmdlc1tpXS5w
b3NpdGlvbiwgc3JjTGVuKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNo
YXJhY3RlcnMoYnVmZmVyICsgYnVmZmVyUG9zLnVuc2FmZUdldCgpLCBzb3VyY2UuY2hhcmFjdGVy
czE2KCkgKyBzdWJzdHJpbmdSYW5nZXNbaV0ucG9zaXRpb24sIHNyY0xlbik7CiAgICAgICAgICAg
ICAgICAgYnVmZmVyUG9zICs9IHNyY0xlbjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
ICAgICBpZiAoaSA8IHNlcGFyYXRvckNvdW50KSB7CiAgICAgICAgICAgICBpZiAoaW50IHNlcExl
biA9IHNlcGFyYXRvcnNbaV0ubGVuZ3RoKCkpIHsKICAgICAgICAgICAgICAgICBpZiAoc2VwYXJh
dG9yc1tpXS5pczhCaXQoKSkKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nSW1wbDo6Y29weUNo
YXJhY3RlcnMoYnVmZmVyICsgYnVmZmVyUG9zLCBzZXBhcmF0b3JzW2ldLmNoYXJhY3RlcnM4KCks
IHNlcExlbik7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFyYWN0ZXJz
KGJ1ZmZlciArIGJ1ZmZlclBvcy51bnNhZmVHZXQoKSwgc2VwYXJhdG9yc1tpXS5jaGFyYWN0ZXJz
OCgpLCBzZXBMZW4pOwogICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAg
U3RyaW5nSW1wbDo6Y29weUNoYXJhY3RlcnMoYnVmZmVyICsgYnVmZmVyUG9zLCBzZXBhcmF0b3Jz
W2ldLmNoYXJhY3RlcnMxNigpLCBzZXBMZW4pOworICAgICAgICAgICAgICAgICAgICBTdHJpbmdJ
bXBsOjpjb3B5Q2hhcmFjdGVycyhidWZmZXIgKyBidWZmZXJQb3MudW5zYWZlR2V0KCksIHNlcGFy
YXRvcnNbaV0uY2hhcmFjdGVyczE2KCksIHNlcExlbik7CiAgICAgICAgICAgICAgICAgYnVmZmVy
UG9zICs9IHNlcExlbjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNzI5LDcgKzczNCw5
IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25TdHJpbmdQcm8KICAgICAgICAgLy8g
RVM1LjEgMTUuNS40LjEwIHN0ZXAgOC5hLgogICAgICAgICBzZWFyY2hWYWx1ZS0+c2V0TGFzdElu
ZGV4KGV4ZWMsIDApOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRy
KTsKLSAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCByZW1vdmVVc2luZ1JlZ0V4cFNl
YXJjaCh2bSwgZXhlYywgdGhpc1ZhbHVlLCB0aGlzVmFsdWUtPnZhbHVlKGV4ZWMpLCByZWdFeHAp
KTsKKyAgICAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2UgPSB0aGlzVmFsdWUtPnZhbHVlKGV4ZWMp
OworICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKyAgICAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCByZW1vdmVVc2luZ1JlZ0V4cFNlYXJjaCh2bSwgZXhl
YywgdGhpc1ZhbHVlLCBzb3VyY2UsIHJlZ0V4cCkpOwogICAgIH0KIAogICAgIENhbGxEYXRhIGNh
bGxEYXRhOwpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MTk2MykKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTktMDItMjIgIE1hcmsgTGFtICA8
bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhbiBleGNlcHRpb24gY2hlY2sgYW5k
IHNvbWUgYXNzZXJ0aW9ucyBpbiBTdHJpbmdQcm90b3R5cGUuY3BwLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0OTYyCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80ODAxMzQxNj4KKworICAgICAgICBSZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpIGFu
ZCBTYWFtIEJhcmF0aS4KKworICAgICAgICBBZGQgYW4gQXNzZXJ0Tm9PdmVyZmxvdyBvdmVyZmxv
dyBoYW5kbGVyIHdoaWNoIGFsbG93cyB1cyB0byBkbyBDaGVja2VkQXJpdGhtZXRpYworICAgICAg
ICBmb3IgYXNzZXJ0aW9uIHB1cnBvc2Ugb25seSBvbiBkZWJ1ZyBidWlsZHMgYnV0IHNhY3JpZmlj
ZXMgbm8gcGVyZm9ybWFuY2Ugb24KKyAgICAgICAgcmVsZWFzZSBidWlsZHMuCisKKyAgICAgICAg
KiB3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaDoKKyAgICAgICAgKFdURjo6QXNzZXJ0Tm9PdmVyZmxv
dzo6b3ZlcmZsb3dlZCk6CisgICAgICAgIChXVEY6OkFzc2VydE5vT3ZlcmZsb3c6OmNsZWFyT3Zl
cmZsb3cpOgorICAgICAgICAoV1RGOjpBc3NlcnROb092ZXJmbG93OjpjcmFzaCk6CisgICAgICAg
IChXVEY6OkFzc2VydE5vT3ZlcmZsb3c6Omhhc092ZXJmbG93ZWQgY29uc3QpOgorICAgICAgICAo
V1RGOjpvYnNlcnZlc092ZXJmbG93KToKKyAgICAgICAgKFdURjo6b2JzZXJ2ZXNPdmVyZmxvdzxB
c3NlcnROb092ZXJmbG93Pik6CisgICAgICAgIChXVEY6OnNhZmVBZGQpOgorICAgICAgICAoV1RG
OjpzYWZlU3ViKToKKyAgICAgICAgKFdURjo6c2FmZU11bHRpcGx5KToKKyAgICAgICAgKFdURjo6
Q2hlY2tlZDo6b3BlcmF0b3IrPSk6CisgICAgICAgIChXVEY6OkNoZWNrZWQ6Om9wZXJhdG9yLT0p
OgorICAgICAgICAoV1RGOjpDaGVja2VkOjpvcGVyYXRvcio9KToKKyAgICAgICAgKFdURjo6b3Bl
cmF0b3IrKToKKyAgICAgICAgKFdURjo6b3BlcmF0b3ItKToKKyAgICAgICAgKFdURjo6b3BlcmF0
b3IqKToKKwogMjAxOS0wMi0yMSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgog
CiAgICAgICAgIE1vdmUgVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyLmFjdGl2ZVRv
dWNoZXNCeUlkZW50aWZpZXIgdG8gU1BJCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9DaGVja2VkQXJp
dGhtZXRpYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0NoZWNrZWRBcml0aG1ldGlj
LmgJKHJldmlzaW9uIDI0MTk2MykKKysrIFNvdXJjZS9XVEYvd3RmL0NoZWNrZWRBcml0aG1ldGlj
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDExLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDExLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC03MCw2ICs3MCwyNCBAQCBlbnVtIGNsYXNzIENoZWNrZWRT
dGF0ZSB7CiAgICAgRGlkTm90T3ZlcmZsb3cKIH07CiAKK2NsYXNzIEFzc2VydE5vT3ZlcmZsb3cg
eworcHVibGljOgorICAgIHN0YXRpYyBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIG92ZXJm
bG93ZWQoKQorICAgIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisg
ICAgdm9pZCBjbGVhck92ZXJmbG93KCkgeyB9CisKKyAgICBzdGF0aWMgTk9fUkVUVVJOX0RVRV9U
T19DUkFTSCB2b2lkIGNyYXNoKCkKKyAgICB7CisgICAgICAgIENSQVNIKCk7CisgICAgfQorCitw
dWJsaWM6CisgICAgY29uc3RleHByIGJvb2wgaGFzT3ZlcmZsb3dlZCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9Cit9OworCiBjbGFzcyBDb25kaXRpb25hbENyYXNoT25PdmVyZmxvdyB7CiBwdWJs
aWM6CiAgICAgdm9pZCBvdmVyZmxvd2VkKCkKQEAgLTUyMyw5ICs1NDEsMjUgQEAgdGVtcGxhdGUg
PHR5cGVuYW1lIFJlc3VsdFR5cGU+IHN0cnVjdCBBcgogICAgIH0KIH07CiAKK3RlbXBsYXRlIDxj
bGFzcyBPdmVyZmxvd0hhbmRsZXIsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDwhc3RkOjpp
c19zY2FsYXI8T3ZlcmZsb3dIYW5kbGVyPjo6dmFsdWU+PgoraW5saW5lIGNvbnN0ZXhwciBib29s
IG9ic2VydmVzT3ZlcmZsb3coKSB7IHJldHVybiB0cnVlOyB9CisKK3RlbXBsYXRlIDw+Citpbmxp
bmUgY29uc3RleHByIGJvb2wgb2JzZXJ2ZXNPdmVyZmxvdzxBc3NlcnROb092ZXJmbG93PigpIHsg
cmV0dXJuICFBU1NFUlRfRElTQUJMRUQ7IH0KKwogdGVtcGxhdGUgPHR5cGVuYW1lIFUsIHR5cGVu
YW1lIFYsIHR5cGVuYW1lIFI+IHN0YXRpYyBpbmxpbmUgYm9vbCBzYWZlQWRkKFUgbGhzLCBWIHJo
cywgUiYgcmVzdWx0KQogewogICAgIHJldHVybiBBcml0aG1ldGljT3BlcmF0aW9uczxVLCBWLCBS
Pjo6YWRkKGxocywgcmhzLCByZXN1bHQpOworICAgIHJldHVybiB0cnVlOworfQorCit0ZW1wbGF0
ZSA8Y2xhc3MgT3ZlcmZsb3dIYW5kbGVyLCB0eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmFt
ZSBSLCB0eXBlbmFtZSA9IHN0ZDo6ZW5hYmxlX2lmX3Q8IXN0ZDo6aXNfc2NhbGFyPE92ZXJmbG93
SGFuZGxlcj46OnZhbHVlPj4KK3N0YXRpYyBpbmxpbmUgYm9vbCBzYWZlQWRkKFUgbGhzLCBWIHJo
cywgUiYgcmVzdWx0KQoreworICAgIGlmIChvYnNlcnZlc092ZXJmbG93PE92ZXJmbG93SGFuZGxl
cj4oKSkKKyAgICAgICAgcmV0dXJuIHNhZmVBZGQobGhzLCByaHMsIHJlc3VsdCk7CisgICAgcmVz
dWx0ID0gbGhzICsgcmhzOworICAgIHJldHVybiB0cnVlOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hbWUgUj4gc3RhdGljIGlubGluZSBib29sIHNhZmVTdWIo
VSBsaHMsIFYgcmhzLCBSJiByZXN1bHQpCkBAIC01MzMsMTEgKzU2NywyOSBAQCB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVSwgdHlwZW5hbWUgViwgdHlwZW5hCiAgICAgcmV0dXJuIEFyaXRobWV0aWNPcGVy
YXRpb25zPFUsIFYsIFI+OjpzdWIobGhzLCByaHMsIHJlc3VsdCk7CiB9CiAKK3RlbXBsYXRlIDxj
bGFzcyBPdmVyZmxvd0hhbmRsZXIsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1lIFIs
IHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDwhc3RkOjppc19zY2FsYXI8T3ZlcmZsb3dIYW5k
bGVyPjo6dmFsdWU+Pgorc3RhdGljIGlubGluZSBib29sIHNhZmVTdWIoVSBsaHMsIFYgcmhzLCBS
JiByZXN1bHQpCit7CisgICAgaWYgKG9ic2VydmVzT3ZlcmZsb3c8T3ZlcmZsb3dIYW5kbGVyPigp
KQorICAgICAgICByZXR1cm4gc2FmZVN1YihsaHMsIHJocywgcmVzdWx0KTsKKyAgICByZXN1bHQg
PSBsaHMgLSByaHM7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHRlbXBsYXRlIDx0eXBlbmFtZSBV
LCB0eXBlbmFtZSBWLCB0eXBlbmFtZSBSPiBzdGF0aWMgaW5saW5lIGJvb2wgc2FmZU11bHRpcGx5
KFUgbGhzLCBWIHJocywgUiYgcmVzdWx0KQogewogICAgIHJldHVybiBBcml0aG1ldGljT3BlcmF0
aW9uczxVLCBWLCBSPjo6bXVsdGlwbHkobGhzLCByaHMsIHJlc3VsdCk7CiB9CiAKK3RlbXBsYXRl
IDxjbGFzcyBPdmVyZmxvd0hhbmRsZXIsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYW1l
IFIsIHR5cGVuYW1lID0gc3RkOjplbmFibGVfaWZfdDwhc3RkOjppc19zY2FsYXI8T3ZlcmZsb3dI
YW5kbGVyPjo6dmFsdWU+Pgorc3RhdGljIGlubGluZSBib29sIHNhZmVNdWx0aXBseShVIGxocywg
ViByaHMsIFImIHJlc3VsdCkKK3sKKyAgICBpZiAob2JzZXJ2ZXNPdmVyZmxvdzxPdmVyZmxvd0hh
bmRsZXI+KCkpCisgICAgICAgIHJldHVybiBzYWZlTXVsdGlwbHkobGhzLCByaHMsIHJlc3VsdCk7
CisgICAgcmVzdWx0ID0gbGhzICogcmhzOworICAgIHJldHVybiB0cnVlOworfQorCiB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVSwgdHlwZW5hbWUgVj4gc3RhdGljIGlubGluZSBib29sIHNhZmVFcXVhbHMo
VSBsaHMsIFYgcmhzKQogewogICAgIHJldHVybiBBcml0aG1ldGljT3BlcmF0aW9uczxVLCBWPjo6
ZXF1YWxzKGxocywgcmhzKTsKQEAgLTY3NiwyMSArNzI4LDIxIEBAIHB1YmxpYzoKICAgICAvLyBN
dXRhdGluZyBhc3NpZ25tZW50CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+IGNvbnN0IENoZWNr
ZWQgb3BlcmF0b3IrPShVIHJocykKICAgICB7Ci0gICAgICAgIGlmICghc2FmZUFkZChtX3ZhbHVl
LCByaHMsIG1fdmFsdWUpKQorICAgICAgICBpZiAoIXNhZmVBZGQ8T3ZlcmZsb3dIYW5kbGVyPiht
X3ZhbHVlLCByaHMsIG1fdmFsdWUpKQogICAgICAgICAgICAgdGhpcy0+b3ZlcmZsb3dlZCgpOwog
ICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+
IGNvbnN0IENoZWNrZWQgb3BlcmF0b3ItPShVIHJocykKICAgICB7Ci0gICAgICAgIGlmICghc2Fm
ZVN1YihtX3ZhbHVlLCByaHMsIG1fdmFsdWUpKQorICAgICAgICBpZiAoIXNhZmVTdWI8T3ZlcmZs
b3dIYW5kbGVyPihtX3ZhbHVlLCByaHMsIG1fdmFsdWUpKQogICAgICAgICAgICAgdGhpcy0+b3Zl
cmZsb3dlZCgpOwogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQogCiAgICAgdGVtcGxhdGUg
PHR5cGVuYW1lIFU+IGNvbnN0IENoZWNrZWQgb3BlcmF0b3IqPShVIHJocykKICAgICB7Ci0gICAg
ICAgIGlmICghc2FmZU11bHRpcGx5KG1fdmFsdWUsIHJocywgbV92YWx1ZSkpCisgICAgICAgIGlm
ICghc2FmZU11bHRpcGx5PE92ZXJmbG93SGFuZGxlcj4obV92YWx1ZSwgcmhzLCBtX3ZhbHVlKSkK
ICAgICAgICAgICAgIHRoaXMtPm92ZXJmbG93ZWQoKTsKICAgICAgICAgcmV0dXJuICp0aGlzOwog
ICAgIH0KQEAgLTgxNCw3ICs4NjYsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVSwgdHlwZW5hbWUg
ViwgdHlwZW5hCiAgICAgViB5ID0gMDsKICAgICBib29sIG92ZXJmbG93ZWQgPSBsaHMuc2FmZUdl
dCh4KSA9PSBDaGVja2VkU3RhdGU6OkRpZE92ZXJmbG93IHx8IHJocy5zYWZlR2V0KHkpID09IENo
ZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3c7CiAgICAgdHlwZW5hbWUgUmVzdWx0PFUsIFY+OjpSZXN1
bHRUeXBlIHJlc3VsdCA9IDA7Ci0gICAgb3ZlcmZsb3dlZCB8PSAhc2FmZUFkZCh4LCB5LCByZXN1
bHQpOworICAgIG92ZXJmbG93ZWQgfD0gIXNhZmVBZGQ8T3ZlcmZsb3dIYW5kbGVyPih4LCB5LCBy
ZXN1bHQpOwogICAgIGlmIChvdmVyZmxvd2VkKQogICAgICAgICByZXR1cm4gUmVzdWx0T3ZlcmZs
b3dlZDsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtODI2LDcgKzg3OCw3IEBAIHRlbXBsYXRlIDx0
eXBlbmFtZSBVLCB0eXBlbmFtZSBWLCB0eXBlbmEKICAgICBWIHkgPSAwOwogICAgIGJvb2wgb3Zl
cmZsb3dlZCA9IGxocy5zYWZlR2V0KHgpID09IENoZWNrZWRTdGF0ZTo6RGlkT3ZlcmZsb3cgfHwg
cmhzLnNhZmVHZXQoeSkgPT0gQ2hlY2tlZFN0YXRlOjpEaWRPdmVyZmxvdzsKICAgICB0eXBlbmFt
ZSBSZXN1bHQ8VSwgVj46OlJlc3VsdFR5cGUgcmVzdWx0ID0gMDsKLSAgICBvdmVyZmxvd2VkIHw9
ICFzYWZlU3ViKHgsIHksIHJlc3VsdCk7CisgICAgb3ZlcmZsb3dlZCB8PSAhc2FmZVN1YjxPdmVy
Zmxvd0hhbmRsZXI+KHgsIHksIHJlc3VsdCk7CiAgICAgaWYgKG92ZXJmbG93ZWQpCiAgICAgICAg
IHJldHVybiBSZXN1bHRPdmVyZmxvd2VkOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC04MzgsNyAr
ODkwLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFUsIHR5cGVuYW1lIFYsIHR5cGVuYQogICAgIFYg
eSA9IDA7CiAgICAgYm9vbCBvdmVyZmxvd2VkID0gbGhzLnNhZmVHZXQoeCkgPT0gQ2hlY2tlZFN0
YXRlOjpEaWRPdmVyZmxvdyB8fCByaHMuc2FmZUdldCh5KSA9PSBDaGVja2VkU3RhdGU6OkRpZE92
ZXJmbG93OwogICAgIHR5cGVuYW1lIFJlc3VsdDxVLCBWPjo6UmVzdWx0VHlwZSByZXN1bHQgPSAw
OwotICAgIG92ZXJmbG93ZWQgfD0gIXNhZmVNdWx0aXBseSh4LCB5LCByZXN1bHQpOworICAgIG92
ZXJmbG93ZWQgfD0gIXNhZmVNdWx0aXBseTxPdmVyZmxvd0hhbmRsZXI+KHgsIHksIHJlc3VsdCk7
CiAgICAgaWYgKG92ZXJmbG93ZWQpCiAgICAgICAgIHJldHVybiBSZXN1bHRPdmVyZmxvd2VkOwog
ICAgIHJldHVybiByZXN1bHQ7CkBAIC05MzAsNiArOTgyLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUg
VCwgdHlwZW5hbWUuLi4gQXJncz4gYgogCiB9CiAKK3VzaW5nIFdURjo6QXNzZXJ0Tm9PdmVyZmxv
dzsKIHVzaW5nIFdURjo6Q2hlY2tlZDsKIHVzaW5nIFdURjo6Q2hlY2tlZFN0YXRlOwogdXNpbmcg
V1RGOjpDaGVja2VkSW50ODsK
</data>

          </attachment>
      

    </bug>

</bugzilla>