<?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>227452</bug_id>
          
          <creation_ts>2021-06-28 08:23:34 -0700</creation_ts>
          <short_desc>ANGLE Metal primitive restart range computation should not be done unless primitive restart is enabled</short_desc>
          <delta_ts>2021-06-29 06:53:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>ANGLE</component>
          <version>WebKit Local 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="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kbr</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>kpiddington</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1773076</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-28 08:23:34 -0700</bug_when>
    <thetext>ANGLE Metal primitive restart range computation should not be done unless primitive restart is enabled</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773081</commentid>
    <comment_count>1</comment_count>
      <attachid>432397</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-28 08:41:56 -0700</bug_when>
    <thetext>Created attachment 432397
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773082</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-06-28 08:43:06 -0700</bug_when>
    <thetext>Note that there are important steps to take when updating ANGLE. See https://trac.webkit.org/wiki/UpdatingANGLE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773218</commentid>
    <comment_count>3</comment_count>
      <attachid>432397</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2021-06-28 15:10:19 -0700</bug_when>
    <thetext>Comment on attachment 432397
Patch

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

This is easier to read and understand. r+ with a couple of small questions.

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/VertexArrayMtl.mm:753
&gt; +    if (!isSimpleType || !glContext-&gt;getState().isPrimitiveRestartEnabled())

I think it would be worth keeping the comment above, perhaps revised.

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/VertexArrayMtl.mm:781
&gt; +    size_t currentIndexOffset = offset / indexTypeBytes;

Is offset verified by this point to be divisible by indexTypeBytes?

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/VertexArrayMtl.mm:787
&gt; +            int64_t nIndicesInSlice = ((int64_t)range.restartBegin - currentIndexOffset) - ((int64_t) range.restartBegin - currentIndexOffset) % nIndicesPerPrimitive;

Here and below: do you want to upgrade these C-style casts to C++ style to make their intent clearer?

Also: I never remember operator precedence; wonder whether a temporary variable or more parentheses would make this clearer.

&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/VertexArrayMtl.mm:819
&gt; +        drawCommands.push_back({indicesLeft, currentIndexOffset * indexTypeBytes});

Just checking - it&apos;s guaranteed that this last if-test will always pick up any trailing draw commands from the loop above?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773346</commentid>
    <comment_count>4</comment_count>
      <attachid>432458</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-29 01:26:31 -0700</bug_when>
    <thetext>Created attachment 432458
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773347</commentid>
    <comment_count>5</comment_count>
      <attachid>432397</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-29 01:27:31 -0700</bug_when>
    <thetext>Comment on attachment 432397
Patch

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

&gt;&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/VertexArrayMtl.mm:781
&gt;&gt; +    size_t currentIndexOffset = offset / indexTypeBytes;
&gt; 
&gt; Is offset verified by this point to be divisible by indexTypeBytes?

Yeah, it&apos;s a GL error otherwise.

&gt;&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/VertexArrayMtl.mm:787
&gt;&gt; +            int64_t nIndicesInSlice = ((int64_t)range.restartBegin - currentIndexOffset) - ((int64_t) range.restartBegin - currentIndexOffset) % nIndicesPerPrimitive;
&gt; 
&gt; Here and below: do you want to upgrade these C-style casts to C++ style to make their intent clearer?
&gt; 
&gt; Also: I never remember operator precedence; wonder whether a temporary variable or more parentheses would make this clearer.

Yes, but not in this patch.
I don&apos;t yet understand the point of the casts. If they end up being removed, it&apos;s easier to review in patch targeting that.

&gt;&gt; Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/VertexArrayMtl.mm:819
&gt;&gt; +        drawCommands.push_back({indicesLeft, currentIndexOffset * indexTypeBytes});
&gt; 
&gt; Just checking - it&apos;s guaranteed that this last if-test will always pick up any trailing draw commands from the loop above?

Yes, as far as I understand. 
Also, if there would be a bug, maybe it&apos;d be simpler to fix in some other patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773353</commentid>
    <comment_count>6</comment_count>
      <attachid>432461</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-06-29 02:05:58 -0700</bug_when>
    <thetext>Created attachment 432461
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773397</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-29 06:52:23 -0700</bug_when>
    <thetext>Committed r279372 (239238@main): &lt;https://commits.webkit.org/239238@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432461.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773398</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-29 06:53:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/79913261&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432397</attachid>
            <date>2021-06-28 08:41:56 -0700</date>
            <delta_ts>2021-06-29 01:26:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227452-20210628184154.patch</filename>
            <type>text/plain</type>
            <size>8312</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggY2ZkMGZiYTJjMTRmZTA3OGY1NjM3YjRmMzdiZWFjMjQ0YTM0ODZjZC4uMGZhOTNjYjZjN2Zm
YTJlNjczYTM2YTkwN2NkZjBjOGRhYjA5Y2U2MCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA2LTI4ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5l
bkBhcHBsZS5jb20+CisKKyAgICAgICAgQU5HTEUgTWV0YWwgcHJpbWl0aXZlIHJlc3RhcnQgcmFu
Z2UgY29tcHV0YXRpb24gc2hvdWxkIG5vdCBiZSBkb25lIHVubGVzcyBwcmltaXRpdmUgcmVzdGFy
dCBpcyBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjc0NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBQcmltaXRpdmUgcmVzdGFydCBuZWVkcyB0byBzY2FuIHRoZSB3aG9sZSBpbmRleCBidWZm
ZXIgZm9yIHZhbHVlcy4KKyAgICAgICAgVGhpcyBzaG91bGQgbm90IGJlIGRvbmUgdW5sZXNzIG5l
ZWRlZC4KKworICAgICAgICAqIHNyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9WZXJ0ZXhBcnJh
eU10bC5tbToKKyAgICAgICAgKHJ4OjpWZXJ0ZXhBcnJheU10bDo6Z2V0RHJhd0luZGljZXMpOgor
ICAgICAgICBGaXJzdCBjaGVjayBmb3IgcHJpbWl0aXZlIHJlc3RhcnQgZW5hYmxlZG5lc3MuCisg
ICAgICAgIENvbXB1dGUgdGhlIHByaW1pdGl2ZSByZXN0YXJ0IHZhbHVlcyBhZnRlciB0aGlzLgor
ICAgICAgICBUaGUgYWxnb3JpdG0gc2hvdWxkIHN1Y2NlZWQgd2hlbiB0aGUgY291bnQgb2YgcHJp
bWl0aXZlCisgICAgICAgIHJlc3RhcnQgcmFuZ2VzIGlzIHplcm8sIGFuZCBpdCBkb2VzIG5vdCBk
byBtdWNoIG9mIHdvcmsuCisgICAgICAgIFVzZSB0aGUgcmVzdGFydCByYW5nZSB2ZWN0b3IgYXMg
cmVmZXJlbmNlLCBzbyB0aGF0IG5vIGNvcHkKKyAgICAgICAgd291bGQgYmUgZG9uZS4KKyAgICAg
ICAgQWRkIHNwYWNlcyB0aGUgaWYgc3RhdGVtZW50cywgY29tbWVudHMgYW5kIHJlZmVyZW5jZXMu
CisgICAgICAgIE1vdmUgdGhlIGVsc2UgYXJtIG9mIHRoZSBpZiBzdGF0ZW1lbnQgd2l0aCByZXR1
cm4gc3RhdGVtZW50CisgICAgICAgIHRvIGJvZHkgb2YgdGhlIGZ1bmN0aW9uIHRvIHJlZHVjZSBu
ZXN0aW5nLgorCiAyMDIxLTA2LTI4ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5j
b20+CiAKICAgICAgICAgQU5HTEUgTWV0YWwgaW5kZXggYnVmZmVyIHJlc3RhcnQgcmFuZ2UgY2Fj
aGUgaXMgY291bGQgYmUgbWFpbnRhaW5lZCBtb3JlIGNvbnNpc3RlbnRseQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL1ZlcnRl
eEFycmF5TXRsLm1tIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2xpYkFOR0xFL3JlbmRl
cmVyL21ldGFsL1ZlcnRleEFycmF5TXRsLm1tCmluZGV4IDlhNWZkNGI1YTUwMmIxNGJhYTQzMjI3
OWI0ZmEyMTc4ZDRhMDRiZWYuLjYyMTM3NDM3NTgwYWNkZDAyYmZiNzYwMjA5MzEyNmFlZDA4OTI1
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5k
ZXJlci9tZXRhbC9WZXJ0ZXhBcnJheU10bC5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9zcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvVmVydGV4QXJyYXlNdGwubW0KQEAgLTc0NCw4
NyArNzQ0LDgwIEBAIHN0ZDo6dmVjdG9yPERyYXdDb21tYW5kUmFuZ2U+IFZlcnRleEFycmF5TXRs
OjpnZXREcmF3SW5kaWNlcyhjb25zdCBnbDo6Q29udGV4dCAqCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVpbnQzMl90IGluZGV4Q291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVfdCBvZmZzZXQpCiB7Ci0gICAgQ29udGV4dE10bCAqY29udGV4dE10bCAgID0gbXRs
OjpHZXRJbXBsKGdsQ29udGV4dCk7CisgICAgQ29udGV4dE10bCAqY29udGV4dE10bCA9IG10bDo6
R2V0SW1wbChnbENvbnRleHQpOwogICAgIHN0ZDo6dmVjdG9yPERyYXdDb21tYW5kUmFuZ2U+IGRy
YXdDb21tYW5kczsKLSAgICAKLSAgICBCdWZmZXJNdGwgKmlkeEJ1ZmZlciAgICAgPSBtdGw6Okdl
dEltcGwoZ2V0U3RhdGUoKS5nZXRFbGVtZW50QXJyYXlCdWZmZXIoKSk7Ci0gICAgY29uc3Qgc3Rk
Ojp2ZWN0b3I8SW5kZXhSYW5nZT4gcmVzdGFydEluZGljZXMgPSBpZHhCdWZmZXItPmdldFJlc3Rh
cnRJbmRpY2VzKGNvbnRleHRNdGwsIG9yaWdpbmFsSW5kZXhUeXBlKTsKICAgICBib29sIGlzU2lt
cGxlVHlwZSA9CiAgICAgICAgIHByaW1pdGl2ZU1vZGUgPT0gZ2w6OlByaW1pdGl2ZU1vZGU6OlBv
aW50cyB8fAogICAgICAgICBwcmltaXRpdmVNb2RlID09IGdsOjpQcmltaXRpdmVNb2RlOjpMaW5l
cyB8fAogICAgICAgICBwcmltaXRpdmVNb2RlID09IGdsOjpQcmltaXRpdmVNb2RlOjpUcmlhbmds
ZXM7Ci0gICAgLy9JZiBwcmltIHJlc3RhcnQgaXNuJ3QgZW5hYmxlZCwgb3Igd2UncmUgZHJhd2lu
ZyBhIHJlc3RhcnRhYmxlIHR5cGUsIG9yIHRoZXJlJ3Mgbm8gcmVzdGFydHMsIHNraXAgYnJlYWtp
bmcgdXAgZHJhdyBjb21tYW5kcy4KLSAgICBpZihyZXN0YXJ0SW5kaWNlcy5zaXplKCkgPT0gMCB8
fCAhaXNTaW1wbGVUeXBlIHx8ICFnbENvbnRleHQtPmdldFN0YXRlKCkuaXNQcmltaXRpdmVSZXN0
YXJ0RW5hYmxlZCgpKQorICAgIGlmICghaXNTaW1wbGVUeXBlIHx8ICFnbENvbnRleHQtPmdldFN0
YXRlKCkuaXNQcmltaXRpdmVSZXN0YXJ0RW5hYmxlZCgpKQogICAgIHsKICAgICAgICAgZHJhd0Nv
bW1hbmRzLnB1c2hfYmFjayh7aW5kZXhDb3VudCwgb2Zmc2V0fSk7CiAgICAgICAgIHJldHVybiBk
cmF3Q29tbWFuZHM7CiAgICAgfQotICAgIGVsc2UKKworICAgIEJ1ZmZlck10bCAqaWR4QnVmZmVy
ID0gbXRsOjpHZXRJbXBsKGdldFN0YXRlKCkuZ2V0RWxlbWVudEFycmF5QnVmZmVyKCkpOworICAg
IGNvbnN0IHN0ZDo6dmVjdG9yPEluZGV4UmFuZ2U+ICZyZXN0YXJ0SW5kaWNlcyA9IGlkeEJ1ZmZl
ci0+Z2V0UmVzdGFydEluZGljZXMoY29udGV4dE10bCwgb3JpZ2luYWxJbmRleFR5cGUpOworICAg
IC8vIFJlbWluZGVyLCBvZmZzZXQgaXMgaW4gYnl0ZXMsIG5vdCBlbGVtZW50cy4KKyAgICAvLyBT
bGljZSBkcmF3IGNvbW1hbmRzIGJhc2VkIG9mZiBvZiBpbmRpY2VzLgorICAgIGludCBuSW5kaWNl
c1BlclByaW1pdGl2ZTsKKyAgICBzd2l0Y2ggKHByaW1pdGl2ZU1vZGUpCiAgICAgewotICAgICAg
ICAvL1JlbWluZGVyLCBvZmZzZXQgaXMgaW4gYnl0ZXMsIG5vdCBlbGVtZW50cy4KLSAgICAgICAg
Ly9TbGljZSBkcmF3IGNvbW1hbmRzIGJhc2VkIG9mZiBvZiBpbmRpY2VzLgotICAgICAgICBpbnQg
bkluZGljZXNQZXJQcmltaXRpdmU7Ci0gICAgICAgIHN3aXRjaChwcmltaXRpdmVNb2RlKQorICAg
ICAgICBjYXNlIGdsOjpQcmltaXRpdmVNb2RlOjpQb2ludHM6CisgICAgICAgICAgICBuSW5kaWNl
c1BlclByaW1pdGl2ZSA9IDE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBnbDo6
UHJpbWl0aXZlTW9kZTo6TGluZXM6CisgICAgICAgICAgICBuSW5kaWNlc1BlclByaW1pdGl2ZSA9
IDI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBnbDo6UHJpbWl0aXZlTW9kZTo6
VHJpYW5nbGVzOgorICAgICAgICAgICAgbkluZGljZXNQZXJQcmltaXRpdmUgPSAzOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBVTlJFQUNIQUJMRSgp
OworICAgICAgICAgICAgcmV0dXJuIGRyYXdDb21tYW5kczsKKyAgICB9CisgICAgY29uc3QgR0x1
aW50IGluZGV4VHlwZUJ5dGVzID0gZ2w6OkdldERyYXdFbGVtZW50c1R5cGVTaXplKGluZGV4VHlw
ZSk7CisgICAgdWludDMyX3QgaW5kaWNlc0xlZnQgPSBpbmRleENvdW50OworICAgIHNpemVfdCBj
dXJyZW50SW5kZXhPZmZzZXQgPSBvZmZzZXQgLyBpbmRleFR5cGVCeXRlczsKKworICAgIGZvciAo
YXV0byAmcmFuZ2UgOiByZXN0YXJ0SW5kaWNlcykKKyAgICB7CisgICAgICAgIGlmIChyYW5nZS5y
ZXN0YXJ0QmVnaW4gPiBjdXJyZW50SW5kZXhPZmZzZXQpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IGNhc2UgZ2w6OlByaW1pdGl2ZU1vZGU6OlBvaW50czoKLSAgICAgICAgICAgICAgICBuSW5kaWNl
c1BlclByaW1pdGl2ZSA9IDE7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBj
YXNlIGdsOjpQcmltaXRpdmVNb2RlOjpMaW5lczoKLSAgICAgICAgICAgICAgICBuSW5kaWNlc1Bl
clByaW1pdGl2ZSA9IDI7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNl
IGdsOjpQcmltaXRpdmVNb2RlOjpUcmlhbmdsZXM6Ci0gICAgICAgICAgICAgICAgbkluZGljZXNQ
ZXJQcmltaXRpdmUgPSAzOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgZGVm
YXVsdDoKLSAgICAgICAgICAgICAgICAvL1VucmVhY2hhYmxlCi0gICAgICAgICAgICAgICAgQVNT
RVJUKEZBTFNFKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gZHJhd0NvbW1hbmRzOworICAgICAg
ICAgICAgaW50NjRfdCBuSW5kaWNlc0luU2xpY2UgPSAoKGludDY0X3QpcmFuZ2UucmVzdGFydEJl
Z2luIC0gY3VycmVudEluZGV4T2Zmc2V0KSAtICgoaW50NjRfdCkgcmFuZ2UucmVzdGFydEJlZ2lu
IC0gY3VycmVudEluZGV4T2Zmc2V0KSAlIG5JbmRpY2VzUGVyUHJpbWl0aXZlOworICAgICAgICAg
ICAgc2l6ZV90IHJlc3RhcnRTaXplID0gKHJhbmdlLnJlc3RhcnRFbmQgLSByYW5nZS5yZXN0YXJ0
QmVnaW4pICsgMTsKKyAgICAgICAgICAgIGlmIChuSW5kaWNlc0luU2xpY2UgPiBuSW5kaWNlc1Bl
clByaW1pdGl2ZSkKKyAgICAgICAgICAgICAgICBkcmF3Q29tbWFuZHMucHVzaF9iYWNrKHsodWlu
dDMyX3QpIG5JbmRpY2VzSW5TbGljZSwgY3VycmVudEluZGV4T2Zmc2V0ICogaW5kZXhUeXBlQnl0
ZXN9KTsKKyAgICAgICAgICAgIC8vIEFjY291bnQgZm9yIGRyb3BwZWQgaW5kaWNlcyBkdWUgdG8g
aW5jb21wbGV0ZSBwcmltaXRpdmVzLgorICAgICAgICAgICAgc2l6ZV90IGluZGljZXNVc2VkID0g
KCAocmFuZ2UucmVzdGFydEJlZ2luICsgcmVzdGFydFNpemUpIC0gY3VycmVudEluZGV4T2Zmc2V0
KTsKKyAgICAgICAgICAgIGlmIChpbmRpY2VzTGVmdCA8PSBpbmRpY2VzVXNlZCkKKyAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICBpbmRpY2VzTGVmdCA9IDA7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW5kaWNlc0xl
ZnQgLT0gaW5kaWNlc1VzZWQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjdXJyZW50SW5k
ZXhPZmZzZXQgPSAoc2l6ZV90KShyYW5nZS5yZXN0YXJ0QmVnaW4gKyByZXN0YXJ0U2l6ZSk7CiAg
ICAgICAgIH0KLSAgICAgICAgY29uc3QgR0x1aW50IGluZGV4VHlwZUJ5dGVzICAgICAgICA9IGds
OjpHZXREcmF3RWxlbWVudHNUeXBlU2l6ZShpbmRleFR5cGUpOwotICAgICAgICB1aW50MzJfdCBp
bmRpY2VzTGVmdCA9IGluZGV4Q291bnQ7Ci0gICAgICAgIHNpemVfdCBjdXJyZW50SW5kZXhPZmZz
ZXQgPSBvZmZzZXQgLyBpbmRleFR5cGVCeXRlczsKLSAgICAgICAgCi0gICAgICAgIGZvcihhdXRv
ICYgcmFuZ2UgOiByZXN0YXJ0SW5kaWNlcykKKyAgICAgICAgLy8gSWYgdGhlIGluaXRpYWwgb2Zm
c2V0IGludG8gdGhlIGluZGV4IGJ1ZmZlciBpcyB3aXRoaW4gYSByZXN0YXJ0IHpvbmUsIG1vdmUg
dG8gdGhlIGVuZCBvZiB0aGUgcmVzdGFydCB6b25lLgorICAgICAgICBlbHNlIGlmIChyYW5nZS5y
ZXN0YXJ0RW5kID49IGN1cnJlbnRJbmRleE9mZnNldCkKICAgICAgICAgewotICAgICAgICAgICAg
aWYocmFuZ2UucmVzdGFydEJlZ2luID4gY3VycmVudEluZGV4T2Zmc2V0KQorICAgICAgICAgICAg
c2l6ZV90IHJlc3RhcnRTaXplID0gKHJhbmdlLnJlc3RhcnRFbmQgLSBjdXJyZW50SW5kZXhPZmZz
ZXQpICsgMTsKKyAgICAgICAgICAgIGlmIChpbmRpY2VzTGVmdCA8PSByZXN0YXJ0U2l6ZSkKICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpbnQ2NF90IG5JbmRpY2VzSW5TbGljZSA9ICgo
aW50NjRfdClyYW5nZS5yZXN0YXJ0QmVnaW4gLSBjdXJyZW50SW5kZXhPZmZzZXQpIC0gKChpbnQ2
NF90KSByYW5nZS5yZXN0YXJ0QmVnaW4gLSBjdXJyZW50SW5kZXhPZmZzZXQpICUgbkluZGljZXNQ
ZXJQcmltaXRpdmU7Ci0gICAgICAgICAgICAgICAgc2l6ZV90IHJlc3RhcnRTaXplID0gKHJhbmdl
LnJlc3RhcnRFbmQgLSByYW5nZS5yZXN0YXJ0QmVnaW4pICsgMTsKLSAgICAgICAgICAgICAgICBp
ZihuSW5kaWNlc0luU2xpY2UgPiBuSW5kaWNlc1BlclByaW1pdGl2ZSkKLSAgICAgICAgICAgICAg
ICAgICAgZHJhd0NvbW1hbmRzLnB1c2hfYmFjayh7KHVpbnQzMl90KW5JbmRpY2VzSW5TbGljZSwg
Y3VycmVudEluZGV4T2Zmc2V0ICogaW5kZXhUeXBlQnl0ZXN9KTsKLSAgICAgICAgICAgICAgICAv
L0FjY291bnQgZm9yIGRyb3BwZWQgaW5kaWNlcyBkdWUgdG8gaW5jb21wbGV0ZSBwcmltaXRpdmVz
LgotICAgICAgICAgICAgICAgIHNpemVfdCBpbmRpY2VzVXNlZCA9ICggKHJhbmdlLnJlc3RhcnRC
ZWdpbiArIHJlc3RhcnRTaXplKSAtIGN1cnJlbnRJbmRleE9mZnNldCk7Ci0gICAgICAgICAgICAg
ICAgaWYoaW5kaWNlc0xlZnQgPD0gaW5kaWNlc1VzZWQpCi0gICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgICBpbmRpY2VzTGVmdCA9IDA7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
IGluZGljZXNMZWZ0IC09IGluZGljZXNVc2VkOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBjdXJyZW50SW5kZXhPZmZzZXQgPSAoc2l6ZV90KShyYW5nZS5yZXN0YXJ0QmVnaW4g
KyByZXN0YXJ0U2l6ZSk7CisgICAgICAgICAgICAgICAgaW5kaWNlc0xlZnQgPSAwOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgLy9JZiB0aGUgaW5pdGlhbCBvZmZzZXQgaW50byB0aGUgaW5k
ZXggYnVmZmVyIGlzIHdpdGhpbiBhIHJlc3RhcnQgem9uZSwgbW92ZSB0byB0aGUgZW5kIG9mIHRo
ZSByZXN0YXJ0IHpvbmUuCi0gICAgICAgICAgICBlbHNlIGlmKHJhbmdlLnJlc3RhcnRFbmQgPj0g
Y3VycmVudEluZGV4T2Zmc2V0KQorICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIHNpemVfdCByZXN0YXJ0U2l6ZSA9IChyYW5nZS5yZXN0YXJ0RW5kIC0gY3Vy
cmVudEluZGV4T2Zmc2V0KSArIDE7Ci0gICAgICAgICAgICAgICAgaWYoaW5kaWNlc0xlZnQgPD0g
cmVzdGFydFNpemUpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBpbmRp
Y2VzTGVmdCA9IDA7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGluZGljZXNMZWZ0IC09IHJlc3Rh
cnRTaXplOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBjdXJyZW50SW5kZXhP
ZmZzZXQgPSAoc2l6ZV90KShjdXJyZW50SW5kZXhPZmZzZXQgKyByZXN0YXJ0U2l6ZSk7CisgICAg
ICAgICAgICAgICAgaW5kaWNlc0xlZnQgLT0gcmVzdGFydFNpemU7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAKKyAgICAgICAgICAgIGN1cnJlbnRJbmRleE9mZnNldCA9IChzaXplX3QpKGN1
cnJlbnRJbmRleE9mZnNldCArIHJlc3RhcnRTaXplKTsKICAgICAgICAgfQotICAgICAgICBpZihp
bmRpY2VzTGVmdCA+PSBuSW5kaWNlc1BlclByaW1pdGl2ZSkKLSAgICAgICAgICAgIGRyYXdDb21t
YW5kcy5wdXNoX2JhY2soe2luZGljZXNMZWZ0LCBjdXJyZW50SW5kZXhPZmZzZXQgKiBpbmRleFR5
cGVCeXRlc30pOwotICAgICAgICByZXR1cm4gZHJhd0NvbW1hbmRzOwogICAgIH0KLSAgICAKKyAg
ICBpZiAoaW5kaWNlc0xlZnQgPj0gbkluZGljZXNQZXJQcmltaXRpdmUpCisgICAgICAgIGRyYXdD
b21tYW5kcy5wdXNoX2JhY2soe2luZGljZXNMZWZ0LCBjdXJyZW50SW5kZXhPZmZzZXQgKiBpbmRl
eFR5cGVCeXRlc30pOworICAgIHJldHVybiBkcmF3Q29tbWFuZHM7CiB9CiAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432458</attachid>
            <date>2021-06-29 01:26:31 -0700</date>
            <delta_ts>2021-06-29 02:05:53 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-227452-20210629112630.patch</filename>
            <type>text/plain</type>
            <size>8553</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggOTc3ZDM1MjU5Y2YzOWFhMGJmNzViZjI5YTc4MzAzOGUyM2UyZGRiZC4uNWQyMmM0YzJiZWZh
OTcwMTc2YmFmNWFkNTFhY2I4NTJlODIyNmFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA2LTI4ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5l
bkBhcHBsZS5jb20+CisKKyAgICAgICAgQU5HTEUgTWV0YWwgcHJpbWl0aXZlIHJlc3RhcnQgcmFu
Z2UgY29tcHV0YXRpb24gc2hvdWxkIG5vdCBiZSBkb25lIHVubGVzcyBwcmltaXRpdmUgcmVzdGFy
dCBpcyBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjc0NTIKKworICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCisKKyAg
ICAgICAgUHJpbWl0aXZlIHJlc3RhcnQgbmVlZHMgdG8gc2NhbiB0aGUgd2hvbGUgaW5kZXggYnVm
ZmVyIGZvciB2YWx1ZXMuCisgICAgICAgIFRoaXMgc2hvdWxkIG5vdCBiZSBkb25lIHVubGVzcyBu
ZWVkZWQuCisKKyAgICAgICAgKiBzcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvVmVydGV4QXJy
YXlNdGwubW06CisgICAgICAgIChyeDo6VmVydGV4QXJyYXlNdGw6OmdldERyYXdJbmRpY2VzKToK
KyAgICAgICAgRmlyc3QgY2hlY2sgZm9yIHByaW1pdGl2ZSByZXN0YXJ0IGVuYWJsZWRuZXNzLgor
ICAgICAgICBDb21wdXRlIHRoZSBwcmltaXRpdmUgcmVzdGFydCB2YWx1ZXMgYWZ0ZXIgdGhpcy4K
KyAgICAgICAgVGhlIGFsZ29yaXRtIHNob3VsZCBzdWNjZWVkIHdoZW4gdGhlIGNvdW50IG9mIHBy
aW1pdGl2ZQorICAgICAgICByZXN0YXJ0IHJhbmdlcyBpcyB6ZXJvLCBhbmQgaXQgZG9lcyBub3Qg
ZG8gbXVjaCBvZiB3b3JrLgorICAgICAgICBVc2UgdGhlIHJlc3RhcnQgcmFuZ2UgdmVjdG9yIGFz
IHJlZmVyZW5jZSwgc28gdGhhdCBubyBjb3B5CisgICAgICAgIHdvdWxkIGJlIGRvbmUuCisgICAg
ICAgIEFkZCBzcGFjZXMgdGhlIGlmIHN0YXRlbWVudHMsIGNvbW1lbnRzIGFuZCByZWZlcmVuY2Vz
LgorICAgICAgICBNb3ZlIHRoZSBlbHNlIGFybSBvZiB0aGUgaWYgc3RhdGVtZW50IHdpdGggcmV0
dXJuIHN0YXRlbWVudAorICAgICAgICB0byBib2R5IG9mIHRoZSBmdW5jdGlvbiB0byByZWR1Y2Ug
bmVzdGluZy4KKwogMjAyMS0wNi0yOCAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIEFOR0xFIE1ldGFsIGluZGV4IGJ1ZmZlciByZXN0YXJ0IHJhbmdlIGNh
Y2hlIGlzIGNvdWxkIGJlIG1haW50YWluZWQgbW9yZSBjb25zaXN0ZW50bHkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9WZXJ0
ZXhBcnJheU10bC5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5k
ZXJlci9tZXRhbC9WZXJ0ZXhBcnJheU10bC5tbQppbmRleCA5YTVmZDRiNWE1MDJiMTRiYWE0MzIy
NzliNGZhMjE3OGQ0YTA0YmVmLi4yYjg3ZjA1MWVlNDcyMTQ5ZTlhZTA2ZThhNjY0MDY1YzllYjJk
ZTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVu
ZGVyZXIvbWV0YWwvVmVydGV4QXJyYXlNdGwubW0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL1ZlcnRleEFycmF5TXRsLm1tCkBAIC03NDQs
ODcgKzc0NCw4MyBAQCBzdGQ6OnZlY3RvcjxEcmF3Q29tbWFuZFJhbmdlPiBWZXJ0ZXhBcnJheU10
bDo6Z2V0RHJhd0luZGljZXMoY29uc3QgZ2w6OkNvbnRleHQgKgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1aW50MzJfdCBpbmRleENvdW50LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaXplX3Qgb2Zmc2V0KQogewotICAgIENvbnRleHRNdGwgKmNvbnRleHRNdGwgICA9IG10
bDo6R2V0SW1wbChnbENvbnRleHQpOworICAgIENvbnRleHRNdGwgKmNvbnRleHRNdGwgPSBtdGw6
OkdldEltcGwoZ2xDb250ZXh0KTsKICAgICBzdGQ6OnZlY3RvcjxEcmF3Q29tbWFuZFJhbmdlPiBk
cmF3Q29tbWFuZHM7Ci0gICAgCi0gICAgQnVmZmVyTXRsICppZHhCdWZmZXIgICAgID0gbXRsOjpH
ZXRJbXBsKGdldFN0YXRlKCkuZ2V0RWxlbWVudEFycmF5QnVmZmVyKCkpOwotICAgIGNvbnN0IHN0
ZDo6dmVjdG9yPEluZGV4UmFuZ2U+IHJlc3RhcnRJbmRpY2VzID0gaWR4QnVmZmVyLT5nZXRSZXN0
YXJ0SW5kaWNlcyhjb250ZXh0TXRsLCBvcmlnaW5hbEluZGV4VHlwZSk7CisgICAgLy8gVGhlIGlu
ZGV4ZWQgZHJhdyBuZWVkcyB0byBiZSBzcGxpdCB0byBzZXBhcmF0ZSBkcmF3IGNvbW1hbmRzIGlu
IGNhc2UgcHJpbWl0aXZlIHJlc3RhcnQgaXMgZW5hYmxlZAorICAgIC8vIGFuZCB0aGUgZHJhd24g
cHJpbWl0aXZlIHN1cHBvcnRzIHByaW1pdGl2ZSByZXN0YXJ0LiBPdGhlcndpc2UgdGhlIHdob2xl
IGluZGV4ZWQgZHJhdyBjYW4gYmUgc2VudAorICAgIC8vIGFzIG9uZSBkcmF3IGNvbW1hbmQuCiAg
ICAgYm9vbCBpc1NpbXBsZVR5cGUgPQogICAgICAgICBwcmltaXRpdmVNb2RlID09IGdsOjpQcmlt
aXRpdmVNb2RlOjpQb2ludHMgfHwKICAgICAgICAgcHJpbWl0aXZlTW9kZSA9PSBnbDo6UHJpbWl0
aXZlTW9kZTo6TGluZXMgfHwKICAgICAgICAgcHJpbWl0aXZlTW9kZSA9PSBnbDo6UHJpbWl0aXZl
TW9kZTo6VHJpYW5nbGVzOwotICAgIC8vSWYgcHJpbSByZXN0YXJ0IGlzbid0IGVuYWJsZWQsIG9y
IHdlJ3JlIGRyYXdpbmcgYSByZXN0YXJ0YWJsZSB0eXBlLCBvciB0aGVyZSdzIG5vIHJlc3RhcnRz
LCBza2lwIGJyZWFraW5nIHVwIGRyYXcgY29tbWFuZHMuCi0gICAgaWYocmVzdGFydEluZGljZXMu
c2l6ZSgpID09IDAgfHwgIWlzU2ltcGxlVHlwZSB8fCAhZ2xDb250ZXh0LT5nZXRTdGF0ZSgpLmlz
UHJpbWl0aXZlUmVzdGFydEVuYWJsZWQoKSkKKyAgICBpZiAoIWlzU2ltcGxlVHlwZSB8fCAhZ2xD
b250ZXh0LT5nZXRTdGF0ZSgpLmlzUHJpbWl0aXZlUmVzdGFydEVuYWJsZWQoKSkKICAgICB7CiAg
ICAgICAgIGRyYXdDb21tYW5kcy5wdXNoX2JhY2soe2luZGV4Q291bnQsIG9mZnNldH0pOwogICAg
ICAgICByZXR1cm4gZHJhd0NvbW1hbmRzOwogICAgIH0KLSAgICBlbHNlCisKKyAgICBCdWZmZXJN
dGwgKmlkeEJ1ZmZlciA9IG10bDo6R2V0SW1wbChnZXRTdGF0ZSgpLmdldEVsZW1lbnRBcnJheUJ1
ZmZlcigpKTsKKyAgICBjb25zdCBzdGQ6OnZlY3RvcjxJbmRleFJhbmdlPiAmcmVzdGFydEluZGlj
ZXMgPSBpZHhCdWZmZXItPmdldFJlc3RhcnRJbmRpY2VzKGNvbnRleHRNdGwsIG9yaWdpbmFsSW5k
ZXhUeXBlKTsKKyAgICAvLyBSZW1pbmRlciwgb2Zmc2V0IGlzIGluIGJ5dGVzLCBub3QgZWxlbWVu
dHMuCisgICAgLy8gU2xpY2UgZHJhdyBjb21tYW5kcyBiYXNlZCBvZmYgb2YgaW5kaWNlcy4KKyAg
ICBpbnQgbkluZGljZXNQZXJQcmltaXRpdmU7CisgICAgc3dpdGNoIChwcmltaXRpdmVNb2RlKQog
ICAgIHsKLSAgICAgICAgLy9SZW1pbmRlciwgb2Zmc2V0IGlzIGluIGJ5dGVzLCBub3QgZWxlbWVu
dHMuCi0gICAgICAgIC8vU2xpY2UgZHJhdyBjb21tYW5kcyBiYXNlZCBvZmYgb2YgaW5kaWNlcy4K
LSAgICAgICAgaW50IG5JbmRpY2VzUGVyUHJpbWl0aXZlOwotICAgICAgICBzd2l0Y2gocHJpbWl0
aXZlTW9kZSkKKyAgICAgICAgY2FzZSBnbDo6UHJpbWl0aXZlTW9kZTo6UG9pbnRzOgorICAgICAg
ICAgICAgbkluZGljZXNQZXJQcmltaXRpdmUgPSAxOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgZ2w6OlByaW1pdGl2ZU1vZGU6OkxpbmVzOgorICAgICAgICAgICAgbkluZGljZXNQ
ZXJQcmltaXRpdmUgPSAyOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgZ2w6OlBy
aW1pdGl2ZU1vZGU6OlRyaWFuZ2xlczoKKyAgICAgICAgICAgIG5JbmRpY2VzUGVyUHJpbWl0aXZl
ID0gMzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
VU5SRUFDSEFCTEUoKTsKKyAgICAgICAgICAgIHJldHVybiBkcmF3Q29tbWFuZHM7CisgICAgfQor
ICAgIGNvbnN0IEdMdWludCBpbmRleFR5cGVCeXRlcyA9IGdsOjpHZXREcmF3RWxlbWVudHNUeXBl
U2l6ZShpbmRleFR5cGUpOworICAgIHVpbnQzMl90IGluZGljZXNMZWZ0ID0gaW5kZXhDb3VudDsK
KyAgICBzaXplX3QgY3VycmVudEluZGV4T2Zmc2V0ID0gb2Zmc2V0IC8gaW5kZXhUeXBlQnl0ZXM7
CisKKyAgICBmb3IgKGF1dG8gJnJhbmdlIDogcmVzdGFydEluZGljZXMpCisgICAgeworICAgICAg
ICBpZiAocmFuZ2UucmVzdGFydEJlZ2luID4gY3VycmVudEluZGV4T2Zmc2V0KQogICAgICAgICB7
Ci0gICAgICAgICAgICBjYXNlIGdsOjpQcmltaXRpdmVNb2RlOjpQb2ludHM6Ci0gICAgICAgICAg
ICAgICAgbkluZGljZXNQZXJQcmltaXRpdmUgPSAxOwotICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgY2FzZSBnbDo6UHJpbWl0aXZlTW9kZTo6TGluZXM6Ci0gICAgICAgICAgICAg
ICAgbkluZGljZXNQZXJQcmltaXRpdmUgPSAyOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgY2FzZSBnbDo6UHJpbWl0aXZlTW9kZTo6VHJpYW5nbGVzOgotICAgICAgICAgICAg
ICAgIG5JbmRpY2VzUGVyUHJpbWl0aXZlID0gMzsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgLy9VbnJlYWNoYWJsZQotICAgICAg
ICAgICAgICAgIEFTU0VSVChGQUxTRSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGRyYXdDb21t
YW5kczsKKyAgICAgICAgICAgIGludDY0X3QgbkluZGljZXNJblNsaWNlID0gKChpbnQ2NF90KXJh
bmdlLnJlc3RhcnRCZWdpbiAtIGN1cnJlbnRJbmRleE9mZnNldCkgLSAoKGludDY0X3QpIHJhbmdl
LnJlc3RhcnRCZWdpbiAtIGN1cnJlbnRJbmRleE9mZnNldCkgJSBuSW5kaWNlc1BlclByaW1pdGl2
ZTsKKyAgICAgICAgICAgIHNpemVfdCByZXN0YXJ0U2l6ZSA9IChyYW5nZS5yZXN0YXJ0RW5kIC0g
cmFuZ2UucmVzdGFydEJlZ2luKSArIDE7CisgICAgICAgICAgICBpZiAobkluZGljZXNJblNsaWNl
ID4gbkluZGljZXNQZXJQcmltaXRpdmUpCisgICAgICAgICAgICAgICAgZHJhd0NvbW1hbmRzLnB1
c2hfYmFjayh7KHVpbnQzMl90KSBuSW5kaWNlc0luU2xpY2UsIGN1cnJlbnRJbmRleE9mZnNldCAq
IGluZGV4VHlwZUJ5dGVzfSk7CisgICAgICAgICAgICAvLyBBY2NvdW50IGZvciBkcm9wcGVkIGlu
ZGljZXMgZHVlIHRvIGluY29tcGxldGUgcHJpbWl0aXZlcy4KKyAgICAgICAgICAgIHNpemVfdCBp
bmRpY2VzVXNlZCA9ICggKHJhbmdlLnJlc3RhcnRCZWdpbiArIHJlc3RhcnRTaXplKSAtIGN1cnJl
bnRJbmRleE9mZnNldCk7CisgICAgICAgICAgICBpZiAoaW5kaWNlc0xlZnQgPD0gaW5kaWNlc1Vz
ZWQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW5kaWNlc0xlZnQgPSAwOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIGluZGljZXNMZWZ0IC09IGluZGljZXNVc2VkOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgY3VycmVudEluZGV4T2Zmc2V0ID0gKHNpemVfdCkocmFuZ2UucmVzdGFydEJlZ2luICsgcmVz
dGFydFNpemUpOwogICAgICAgICB9Ci0gICAgICAgIGNvbnN0IEdMdWludCBpbmRleFR5cGVCeXRl
cyAgICAgICAgPSBnbDo6R2V0RHJhd0VsZW1lbnRzVHlwZVNpemUoaW5kZXhUeXBlKTsKLSAgICAg
ICAgdWludDMyX3QgaW5kaWNlc0xlZnQgPSBpbmRleENvdW50OwotICAgICAgICBzaXplX3QgY3Vy
cmVudEluZGV4T2Zmc2V0ID0gb2Zmc2V0IC8gaW5kZXhUeXBlQnl0ZXM7Ci0gICAgICAgIAotICAg
ICAgICBmb3IoYXV0byAmIHJhbmdlIDogcmVzdGFydEluZGljZXMpCisgICAgICAgIC8vIElmIHRo
ZSBpbml0aWFsIG9mZnNldCBpbnRvIHRoZSBpbmRleCBidWZmZXIgaXMgd2l0aGluIGEgcmVzdGFy
dCB6b25lLCBtb3ZlIHRvIHRoZSBlbmQgb2YgdGhlIHJlc3RhcnQgem9uZS4KKyAgICAgICAgZWxz
ZSBpZiAocmFuZ2UucmVzdGFydEVuZCA+PSBjdXJyZW50SW5kZXhPZmZzZXQpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIGlmKHJhbmdlLnJlc3RhcnRCZWdpbiA+IGN1cnJlbnRJbmRleE9mZnNldCkK
KyAgICAgICAgICAgIHNpemVfdCByZXN0YXJ0U2l6ZSA9IChyYW5nZS5yZXN0YXJ0RW5kIC0gY3Vy
cmVudEluZGV4T2Zmc2V0KSArIDE7CisgICAgICAgICAgICBpZiAoaW5kaWNlc0xlZnQgPD0gcmVz
dGFydFNpemUpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50NjRfdCBuSW5kaWNl
c0luU2xpY2UgPSAoKGludDY0X3QpcmFuZ2UucmVzdGFydEJlZ2luIC0gY3VycmVudEluZGV4T2Zm
c2V0KSAtICgoaW50NjRfdCkgcmFuZ2UucmVzdGFydEJlZ2luIC0gY3VycmVudEluZGV4T2Zmc2V0
KSAlIG5JbmRpY2VzUGVyUHJpbWl0aXZlOwotICAgICAgICAgICAgICAgIHNpemVfdCByZXN0YXJ0
U2l6ZSA9IChyYW5nZS5yZXN0YXJ0RW5kIC0gcmFuZ2UucmVzdGFydEJlZ2luKSArIDE7Ci0gICAg
ICAgICAgICAgICAgaWYobkluZGljZXNJblNsaWNlID4gbkluZGljZXNQZXJQcmltaXRpdmUpCi0g
ICAgICAgICAgICAgICAgICAgIGRyYXdDb21tYW5kcy5wdXNoX2JhY2soeyh1aW50MzJfdCluSW5k
aWNlc0luU2xpY2UsIGN1cnJlbnRJbmRleE9mZnNldCAqIGluZGV4VHlwZUJ5dGVzfSk7Ci0gICAg
ICAgICAgICAgICAgLy9BY2NvdW50IGZvciBkcm9wcGVkIGluZGljZXMgZHVlIHRvIGluY29tcGxl
dGUgcHJpbWl0aXZlcy4KLSAgICAgICAgICAgICAgICBzaXplX3QgaW5kaWNlc1VzZWQgPSAoIChy
YW5nZS5yZXN0YXJ0QmVnaW4gKyByZXN0YXJ0U2l6ZSkgLSBjdXJyZW50SW5kZXhPZmZzZXQpOwot
ICAgICAgICAgICAgICAgIGlmKGluZGljZXNMZWZ0IDw9IGluZGljZXNVc2VkKQotICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgaW5kaWNlc0xlZnQgPSAwOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICBpbmRpY2VzTGVmdCAtPSBpbmRpY2VzVXNlZDsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgY3VycmVudEluZGV4T2Zmc2V0ID0gKHNpemVfdCkocmFuZ2Uu
cmVzdGFydEJlZ2luICsgcmVzdGFydFNpemUpOworICAgICAgICAgICAgICAgIGluZGljZXNMZWZ0
ID0gMDsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC8vSWYgdGhlIGluaXRpYWwgb2Zmc2V0
IGludG8gdGhlIGluZGV4IGJ1ZmZlciBpcyB3aXRoaW4gYSByZXN0YXJ0IHpvbmUsIG1vdmUgdG8g
dGhlIGVuZCBvZiB0aGUgcmVzdGFydCB6b25lLgotICAgICAgICAgICAgZWxzZSBpZihyYW5nZS5y
ZXN0YXJ0RW5kID49IGN1cnJlbnRJbmRleE9mZnNldCkKKyAgICAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBzaXplX3QgcmVzdGFydFNpemUgPSAocmFuZ2UucmVz
dGFydEVuZCAtIGN1cnJlbnRJbmRleE9mZnNldCkgKyAxOwotICAgICAgICAgICAgICAgIGlmKGlu
ZGljZXNMZWZ0IDw9IHJlc3RhcnRTaXplKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgaW5kaWNlc0xlZnQgPSAwOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBpbmRpY2Vz
TGVmdCAtPSByZXN0YXJ0U2l6ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
Y3VycmVudEluZGV4T2Zmc2V0ID0gKHNpemVfdCkoY3VycmVudEluZGV4T2Zmc2V0ICsgcmVzdGFy
dFNpemUpOworICAgICAgICAgICAgICAgIGluZGljZXNMZWZ0IC09IHJlc3RhcnRTaXplOwogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgCisgICAgICAgICAgICBjdXJyZW50SW5kZXhPZmZzZXQg
PSAoc2l6ZV90KShjdXJyZW50SW5kZXhPZmZzZXQgKyByZXN0YXJ0U2l6ZSk7CiAgICAgICAgIH0K
LSAgICAgICAgaWYoaW5kaWNlc0xlZnQgPj0gbkluZGljZXNQZXJQcmltaXRpdmUpCi0gICAgICAg
ICAgICBkcmF3Q29tbWFuZHMucHVzaF9iYWNrKHtpbmRpY2VzTGVmdCwgY3VycmVudEluZGV4T2Zm
c2V0ICogaW5kZXhUeXBlQnl0ZXN9KTsKLSAgICAgICAgcmV0dXJuIGRyYXdDb21tYW5kczsKICAg
ICB9Ci0gICAgCisgICAgaWYgKGluZGljZXNMZWZ0ID49IG5JbmRpY2VzUGVyUHJpbWl0aXZlKQor
ICAgICAgICBkcmF3Q29tbWFuZHMucHVzaF9iYWNrKHtpbmRpY2VzTGVmdCwgY3VycmVudEluZGV4
T2Zmc2V0ICogaW5kZXhUeXBlQnl0ZXN9KTsKKyAgICByZXR1cm4gZHJhd0NvbW1hbmRzOwogfQog
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432461</attachid>
            <date>2021-06-29 02:05:58 -0700</date>
            <delta_ts>2021-06-29 06:52:23 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-227452-20210629120556.patch</filename>
            <type>text/plain</type>
            <size>8553</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggOTc3ZDM1MjU5Y2YzOWFhMGJmNzViZjI5YTc4MzAzOGUyM2UyZGRiZC4uNWQyMmM0YzJiZWZh
OTcwMTc2YmFmNWFkNTFhY2I4NTJlODIyNmFkNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA2LTI4ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5l
bkBhcHBsZS5jb20+CisKKyAgICAgICAgQU5HTEUgTWV0YWwgcHJpbWl0aXZlIHJlc3RhcnQgcmFu
Z2UgY29tcHV0YXRpb24gc2hvdWxkIG5vdCBiZSBkb25lIHVubGVzcyBwcmltaXRpdmUgcmVzdGFy
dCBpcyBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjc0NTIKKworICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCisKKyAg
ICAgICAgUHJpbWl0aXZlIHJlc3RhcnQgbmVlZHMgdG8gc2NhbiB0aGUgd2hvbGUgaW5kZXggYnVm
ZmVyIGZvciB2YWx1ZXMuCisgICAgICAgIFRoaXMgc2hvdWxkIG5vdCBiZSBkb25lIHVubGVzcyBu
ZWVkZWQuCisKKyAgICAgICAgKiBzcmMvbGliQU5HTEUvcmVuZGVyZXIvbWV0YWwvVmVydGV4QXJy
YXlNdGwubW06CisgICAgICAgIChyeDo6VmVydGV4QXJyYXlNdGw6OmdldERyYXdJbmRpY2VzKToK
KyAgICAgICAgRmlyc3QgY2hlY2sgZm9yIHByaW1pdGl2ZSByZXN0YXJ0IGVuYWJsZWRuZXNzLgor
ICAgICAgICBDb21wdXRlIHRoZSBwcmltaXRpdmUgcmVzdGFydCB2YWx1ZXMgYWZ0ZXIgdGhpcy4K
KyAgICAgICAgVGhlIGFsZ29yaXRtIHNob3VsZCBzdWNjZWVkIHdoZW4gdGhlIGNvdW50IG9mIHBy
aW1pdGl2ZQorICAgICAgICByZXN0YXJ0IHJhbmdlcyBpcyB6ZXJvLCBhbmQgaXQgZG9lcyBub3Qg
ZG8gbXVjaCBvZiB3b3JrLgorICAgICAgICBVc2UgdGhlIHJlc3RhcnQgcmFuZ2UgdmVjdG9yIGFz
IHJlZmVyZW5jZSwgc28gdGhhdCBubyBjb3B5CisgICAgICAgIHdvdWxkIGJlIGRvbmUuCisgICAg
ICAgIEFkZCBzcGFjZXMgdGhlIGlmIHN0YXRlbWVudHMsIGNvbW1lbnRzIGFuZCByZWZlcmVuY2Vz
LgorICAgICAgICBNb3ZlIHRoZSBlbHNlIGFybSBvZiB0aGUgaWYgc3RhdGVtZW50IHdpdGggcmV0
dXJuIHN0YXRlbWVudAorICAgICAgICB0byBib2R5IG9mIHRoZSBmdW5jdGlvbiB0byByZWR1Y2Ug
bmVzdGluZy4KKwogMjAyMS0wNi0yOCAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIEFOR0xFIE1ldGFsIGluZGV4IGJ1ZmZlciByZXN0YXJ0IHJhbmdlIGNh
Y2hlIGlzIGNvdWxkIGJlIG1haW50YWluZWQgbW9yZSBjb25zaXN0ZW50bHkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5kZXJlci9tZXRhbC9WZXJ0
ZXhBcnJheU10bC5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9saWJBTkdMRS9yZW5k
ZXJlci9tZXRhbC9WZXJ0ZXhBcnJheU10bC5tbQppbmRleCA5YTVmZDRiNWE1MDJiMTRiYWE0MzIy
NzliNGZhMjE3OGQ0YTA0YmVmLi4yYjg3ZjA1MWVlNDcyMTQ5ZTlhZTA2ZThhNjY0MDY1YzllYjJk
ZTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvbGliQU5HTEUvcmVu
ZGVyZXIvbWV0YWwvVmVydGV4QXJyYXlNdGwubW0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL2xpYkFOR0xFL3JlbmRlcmVyL21ldGFsL1ZlcnRleEFycmF5TXRsLm1tCkBAIC03NDQs
ODcgKzc0NCw4MyBAQCBzdGQ6OnZlY3RvcjxEcmF3Q29tbWFuZFJhbmdlPiBWZXJ0ZXhBcnJheU10
bDo6Z2V0RHJhd0luZGljZXMoY29uc3QgZ2w6OkNvbnRleHQgKgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1aW50MzJfdCBpbmRleENvdW50LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaXplX3Qgb2Zmc2V0KQogewotICAgIENvbnRleHRNdGwgKmNvbnRleHRNdGwgICA9IG10
bDo6R2V0SW1wbChnbENvbnRleHQpOworICAgIENvbnRleHRNdGwgKmNvbnRleHRNdGwgPSBtdGw6
OkdldEltcGwoZ2xDb250ZXh0KTsKICAgICBzdGQ6OnZlY3RvcjxEcmF3Q29tbWFuZFJhbmdlPiBk
cmF3Q29tbWFuZHM7Ci0gICAgCi0gICAgQnVmZmVyTXRsICppZHhCdWZmZXIgICAgID0gbXRsOjpH
ZXRJbXBsKGdldFN0YXRlKCkuZ2V0RWxlbWVudEFycmF5QnVmZmVyKCkpOwotICAgIGNvbnN0IHN0
ZDo6dmVjdG9yPEluZGV4UmFuZ2U+IHJlc3RhcnRJbmRpY2VzID0gaWR4QnVmZmVyLT5nZXRSZXN0
YXJ0SW5kaWNlcyhjb250ZXh0TXRsLCBvcmlnaW5hbEluZGV4VHlwZSk7CisgICAgLy8gVGhlIGlu
ZGV4ZWQgZHJhdyBuZWVkcyB0byBiZSBzcGxpdCB0byBzZXBhcmF0ZSBkcmF3IGNvbW1hbmRzIGlu
IGNhc2UgcHJpbWl0aXZlIHJlc3RhcnQgaXMgZW5hYmxlZAorICAgIC8vIGFuZCB0aGUgZHJhd24g
cHJpbWl0aXZlIHN1cHBvcnRzIHByaW1pdGl2ZSByZXN0YXJ0LiBPdGhlcndpc2UgdGhlIHdob2xl
IGluZGV4ZWQgZHJhdyBjYW4gYmUgc2VudAorICAgIC8vIGFzIG9uZSBkcmF3IGNvbW1hbmQuCiAg
ICAgYm9vbCBpc1NpbXBsZVR5cGUgPQogICAgICAgICBwcmltaXRpdmVNb2RlID09IGdsOjpQcmlt
aXRpdmVNb2RlOjpQb2ludHMgfHwKICAgICAgICAgcHJpbWl0aXZlTW9kZSA9PSBnbDo6UHJpbWl0
aXZlTW9kZTo6TGluZXMgfHwKICAgICAgICAgcHJpbWl0aXZlTW9kZSA9PSBnbDo6UHJpbWl0aXZl
TW9kZTo6VHJpYW5nbGVzOwotICAgIC8vSWYgcHJpbSByZXN0YXJ0IGlzbid0IGVuYWJsZWQsIG9y
IHdlJ3JlIGRyYXdpbmcgYSByZXN0YXJ0YWJsZSB0eXBlLCBvciB0aGVyZSdzIG5vIHJlc3RhcnRz
LCBza2lwIGJyZWFraW5nIHVwIGRyYXcgY29tbWFuZHMuCi0gICAgaWYocmVzdGFydEluZGljZXMu
c2l6ZSgpID09IDAgfHwgIWlzU2ltcGxlVHlwZSB8fCAhZ2xDb250ZXh0LT5nZXRTdGF0ZSgpLmlz
UHJpbWl0aXZlUmVzdGFydEVuYWJsZWQoKSkKKyAgICBpZiAoIWlzU2ltcGxlVHlwZSB8fCAhZ2xD
b250ZXh0LT5nZXRTdGF0ZSgpLmlzUHJpbWl0aXZlUmVzdGFydEVuYWJsZWQoKSkKICAgICB7CiAg
ICAgICAgIGRyYXdDb21tYW5kcy5wdXNoX2JhY2soe2luZGV4Q291bnQsIG9mZnNldH0pOwogICAg
ICAgICByZXR1cm4gZHJhd0NvbW1hbmRzOwogICAgIH0KLSAgICBlbHNlCisKKyAgICBCdWZmZXJN
dGwgKmlkeEJ1ZmZlciA9IG10bDo6R2V0SW1wbChnZXRTdGF0ZSgpLmdldEVsZW1lbnRBcnJheUJ1
ZmZlcigpKTsKKyAgICBjb25zdCBzdGQ6OnZlY3RvcjxJbmRleFJhbmdlPiAmcmVzdGFydEluZGlj
ZXMgPSBpZHhCdWZmZXItPmdldFJlc3RhcnRJbmRpY2VzKGNvbnRleHRNdGwsIG9yaWdpbmFsSW5k
ZXhUeXBlKTsKKyAgICAvLyBSZW1pbmRlciwgb2Zmc2V0IGlzIGluIGJ5dGVzLCBub3QgZWxlbWVu
dHMuCisgICAgLy8gU2xpY2UgZHJhdyBjb21tYW5kcyBiYXNlZCBvZmYgb2YgaW5kaWNlcy4KKyAg
ICBpbnQgbkluZGljZXNQZXJQcmltaXRpdmU7CisgICAgc3dpdGNoIChwcmltaXRpdmVNb2RlKQog
ICAgIHsKLSAgICAgICAgLy9SZW1pbmRlciwgb2Zmc2V0IGlzIGluIGJ5dGVzLCBub3QgZWxlbWVu
dHMuCi0gICAgICAgIC8vU2xpY2UgZHJhdyBjb21tYW5kcyBiYXNlZCBvZmYgb2YgaW5kaWNlcy4K
LSAgICAgICAgaW50IG5JbmRpY2VzUGVyUHJpbWl0aXZlOwotICAgICAgICBzd2l0Y2gocHJpbWl0
aXZlTW9kZSkKKyAgICAgICAgY2FzZSBnbDo6UHJpbWl0aXZlTW9kZTo6UG9pbnRzOgorICAgICAg
ICAgICAgbkluZGljZXNQZXJQcmltaXRpdmUgPSAxOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgZ2w6OlByaW1pdGl2ZU1vZGU6OkxpbmVzOgorICAgICAgICAgICAgbkluZGljZXNQ
ZXJQcmltaXRpdmUgPSAyOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgZ2w6OlBy
aW1pdGl2ZU1vZGU6OlRyaWFuZ2xlczoKKyAgICAgICAgICAgIG5JbmRpY2VzUGVyUHJpbWl0aXZl
ID0gMzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
VU5SRUFDSEFCTEUoKTsKKyAgICAgICAgICAgIHJldHVybiBkcmF3Q29tbWFuZHM7CisgICAgfQor
ICAgIGNvbnN0IEdMdWludCBpbmRleFR5cGVCeXRlcyA9IGdsOjpHZXREcmF3RWxlbWVudHNUeXBl
U2l6ZShpbmRleFR5cGUpOworICAgIHVpbnQzMl90IGluZGljZXNMZWZ0ID0gaW5kZXhDb3VudDsK
KyAgICBzaXplX3QgY3VycmVudEluZGV4T2Zmc2V0ID0gb2Zmc2V0IC8gaW5kZXhUeXBlQnl0ZXM7
CisKKyAgICBmb3IgKGF1dG8gJnJhbmdlIDogcmVzdGFydEluZGljZXMpCisgICAgeworICAgICAg
ICBpZiAocmFuZ2UucmVzdGFydEJlZ2luID4gY3VycmVudEluZGV4T2Zmc2V0KQogICAgICAgICB7
Ci0gICAgICAgICAgICBjYXNlIGdsOjpQcmltaXRpdmVNb2RlOjpQb2ludHM6Ci0gICAgICAgICAg
ICAgICAgbkluZGljZXNQZXJQcmltaXRpdmUgPSAxOwotICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgY2FzZSBnbDo6UHJpbWl0aXZlTW9kZTo6TGluZXM6Ci0gICAgICAgICAgICAg
ICAgbkluZGljZXNQZXJQcmltaXRpdmUgPSAyOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgY2FzZSBnbDo6UHJpbWl0aXZlTW9kZTo6VHJpYW5nbGVzOgotICAgICAgICAgICAg
ICAgIG5JbmRpY2VzUGVyUHJpbWl0aXZlID0gMzsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgLy9VbnJlYWNoYWJsZQotICAgICAg
ICAgICAgICAgIEFTU0VSVChGQUxTRSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGRyYXdDb21t
YW5kczsKKyAgICAgICAgICAgIGludDY0X3QgbkluZGljZXNJblNsaWNlID0gKChpbnQ2NF90KXJh
bmdlLnJlc3RhcnRCZWdpbiAtIGN1cnJlbnRJbmRleE9mZnNldCkgLSAoKGludDY0X3QpIHJhbmdl
LnJlc3RhcnRCZWdpbiAtIGN1cnJlbnRJbmRleE9mZnNldCkgJSBuSW5kaWNlc1BlclByaW1pdGl2
ZTsKKyAgICAgICAgICAgIHNpemVfdCByZXN0YXJ0U2l6ZSA9IChyYW5nZS5yZXN0YXJ0RW5kIC0g
cmFuZ2UucmVzdGFydEJlZ2luKSArIDE7CisgICAgICAgICAgICBpZiAobkluZGljZXNJblNsaWNl
ID4gbkluZGljZXNQZXJQcmltaXRpdmUpCisgICAgICAgICAgICAgICAgZHJhd0NvbW1hbmRzLnB1
c2hfYmFjayh7KHVpbnQzMl90KSBuSW5kaWNlc0luU2xpY2UsIGN1cnJlbnRJbmRleE9mZnNldCAq
IGluZGV4VHlwZUJ5dGVzfSk7CisgICAgICAgICAgICAvLyBBY2NvdW50IGZvciBkcm9wcGVkIGlu
ZGljZXMgZHVlIHRvIGluY29tcGxldGUgcHJpbWl0aXZlcy4KKyAgICAgICAgICAgIHNpemVfdCBp
bmRpY2VzVXNlZCA9ICggKHJhbmdlLnJlc3RhcnRCZWdpbiArIHJlc3RhcnRTaXplKSAtIGN1cnJl
bnRJbmRleE9mZnNldCk7CisgICAgICAgICAgICBpZiAoaW5kaWNlc0xlZnQgPD0gaW5kaWNlc1Vz
ZWQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW5kaWNlc0xlZnQgPSAwOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIGluZGljZXNMZWZ0IC09IGluZGljZXNVc2VkOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgY3VycmVudEluZGV4T2Zmc2V0ID0gKHNpemVfdCkocmFuZ2UucmVzdGFydEJlZ2luICsgcmVz
dGFydFNpemUpOwogICAgICAgICB9Ci0gICAgICAgIGNvbnN0IEdMdWludCBpbmRleFR5cGVCeXRl
cyAgICAgICAgPSBnbDo6R2V0RHJhd0VsZW1lbnRzVHlwZVNpemUoaW5kZXhUeXBlKTsKLSAgICAg
ICAgdWludDMyX3QgaW5kaWNlc0xlZnQgPSBpbmRleENvdW50OwotICAgICAgICBzaXplX3QgY3Vy
cmVudEluZGV4T2Zmc2V0ID0gb2Zmc2V0IC8gaW5kZXhUeXBlQnl0ZXM7Ci0gICAgICAgIAotICAg
ICAgICBmb3IoYXV0byAmIHJhbmdlIDogcmVzdGFydEluZGljZXMpCisgICAgICAgIC8vIElmIHRo
ZSBpbml0aWFsIG9mZnNldCBpbnRvIHRoZSBpbmRleCBidWZmZXIgaXMgd2l0aGluIGEgcmVzdGFy
dCB6b25lLCBtb3ZlIHRvIHRoZSBlbmQgb2YgdGhlIHJlc3RhcnQgem9uZS4KKyAgICAgICAgZWxz
ZSBpZiAocmFuZ2UucmVzdGFydEVuZCA+PSBjdXJyZW50SW5kZXhPZmZzZXQpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIGlmKHJhbmdlLnJlc3RhcnRCZWdpbiA+IGN1cnJlbnRJbmRleE9mZnNldCkK
KyAgICAgICAgICAgIHNpemVfdCByZXN0YXJ0U2l6ZSA9IChyYW5nZS5yZXN0YXJ0RW5kIC0gY3Vy
cmVudEluZGV4T2Zmc2V0KSArIDE7CisgICAgICAgICAgICBpZiAoaW5kaWNlc0xlZnQgPD0gcmVz
dGFydFNpemUpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50NjRfdCBuSW5kaWNl
c0luU2xpY2UgPSAoKGludDY0X3QpcmFuZ2UucmVzdGFydEJlZ2luIC0gY3VycmVudEluZGV4T2Zm
c2V0KSAtICgoaW50NjRfdCkgcmFuZ2UucmVzdGFydEJlZ2luIC0gY3VycmVudEluZGV4T2Zmc2V0
KSAlIG5JbmRpY2VzUGVyUHJpbWl0aXZlOwotICAgICAgICAgICAgICAgIHNpemVfdCByZXN0YXJ0
U2l6ZSA9IChyYW5nZS5yZXN0YXJ0RW5kIC0gcmFuZ2UucmVzdGFydEJlZ2luKSArIDE7Ci0gICAg
ICAgICAgICAgICAgaWYobkluZGljZXNJblNsaWNlID4gbkluZGljZXNQZXJQcmltaXRpdmUpCi0g
ICAgICAgICAgICAgICAgICAgIGRyYXdDb21tYW5kcy5wdXNoX2JhY2soeyh1aW50MzJfdCluSW5k
aWNlc0luU2xpY2UsIGN1cnJlbnRJbmRleE9mZnNldCAqIGluZGV4VHlwZUJ5dGVzfSk7Ci0gICAg
ICAgICAgICAgICAgLy9BY2NvdW50IGZvciBkcm9wcGVkIGluZGljZXMgZHVlIHRvIGluY29tcGxl
dGUgcHJpbWl0aXZlcy4KLSAgICAgICAgICAgICAgICBzaXplX3QgaW5kaWNlc1VzZWQgPSAoIChy
YW5nZS5yZXN0YXJ0QmVnaW4gKyByZXN0YXJ0U2l6ZSkgLSBjdXJyZW50SW5kZXhPZmZzZXQpOwot
ICAgICAgICAgICAgICAgIGlmKGluZGljZXNMZWZ0IDw9IGluZGljZXNVc2VkKQotICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgaW5kaWNlc0xlZnQgPSAwOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgICAgICBpbmRpY2VzTGVmdCAtPSBpbmRpY2VzVXNlZDsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgY3VycmVudEluZGV4T2Zmc2V0ID0gKHNpemVfdCkocmFuZ2Uu
cmVzdGFydEJlZ2luICsgcmVzdGFydFNpemUpOworICAgICAgICAgICAgICAgIGluZGljZXNMZWZ0
ID0gMDsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC8vSWYgdGhlIGluaXRpYWwgb2Zmc2V0
IGludG8gdGhlIGluZGV4IGJ1ZmZlciBpcyB3aXRoaW4gYSByZXN0YXJ0IHpvbmUsIG1vdmUgdG8g
dGhlIGVuZCBvZiB0aGUgcmVzdGFydCB6b25lLgotICAgICAgICAgICAgZWxzZSBpZihyYW5nZS5y
ZXN0YXJ0RW5kID49IGN1cnJlbnRJbmRleE9mZnNldCkKKyAgICAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBzaXplX3QgcmVzdGFydFNpemUgPSAocmFuZ2UucmVz
dGFydEVuZCAtIGN1cnJlbnRJbmRleE9mZnNldCkgKyAxOwotICAgICAgICAgICAgICAgIGlmKGlu
ZGljZXNMZWZ0IDw9IHJlc3RhcnRTaXplKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgaW5kaWNlc0xlZnQgPSAwOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBpbmRpY2Vz
TGVmdCAtPSByZXN0YXJ0U2l6ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
Y3VycmVudEluZGV4T2Zmc2V0ID0gKHNpemVfdCkoY3VycmVudEluZGV4T2Zmc2V0ICsgcmVzdGFy
dFNpemUpOworICAgICAgICAgICAgICAgIGluZGljZXNMZWZ0IC09IHJlc3RhcnRTaXplOwogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgCisgICAgICAgICAgICBjdXJyZW50SW5kZXhPZmZzZXQg
PSAoc2l6ZV90KShjdXJyZW50SW5kZXhPZmZzZXQgKyByZXN0YXJ0U2l6ZSk7CiAgICAgICAgIH0K
LSAgICAgICAgaWYoaW5kaWNlc0xlZnQgPj0gbkluZGljZXNQZXJQcmltaXRpdmUpCi0gICAgICAg
ICAgICBkcmF3Q29tbWFuZHMucHVzaF9iYWNrKHtpbmRpY2VzTGVmdCwgY3VycmVudEluZGV4T2Zm
c2V0ICogaW5kZXhUeXBlQnl0ZXN9KTsKLSAgICAgICAgcmV0dXJuIGRyYXdDb21tYW5kczsKICAg
ICB9Ci0gICAgCisgICAgaWYgKGluZGljZXNMZWZ0ID49IG5JbmRpY2VzUGVyUHJpbWl0aXZlKQor
ICAgICAgICBkcmF3Q29tbWFuZHMucHVzaF9iYWNrKHtpbmRpY2VzTGVmdCwgY3VycmVudEluZGV4
T2Zmc2V0ICogaW5kZXhUeXBlQnl0ZXN9KTsKKyAgICByZXR1cm4gZHJhd0NvbW1hbmRzOwogfQog
CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>