<?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>209365</bug_id>
          
          <creation_ts>2020-03-20 15:29:23 -0700</creation_ts>
          <short_desc>[MSE] Handle the case where AVStreamDataParser packages sync and non-sync samples together in a CMSampleBufferRef.</short_desc>
          <delta_ts>2020-03-23 08:39:01 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1632319</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-20 15:29:23 -0700</bug_when>
    <thetext>[MSE] Handle the case where AVStreamDataParser packages sync and non-sync samples together in a CMSampleBufferRef.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632320</commentid>
    <comment_count>1</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-20 15:30:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/60625209&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632329</commentid>
    <comment_count>2</comment_count>
      <attachid>394140</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-20 15:36:29 -0700</bug_when>
    <thetext>Created attachment 394140
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632342</commentid>
    <comment_count>3</comment_count>
      <attachid>394140</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-03-20 15:57:11 -0700</bug_when>
    <thetext>Comment on attachment 394140
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:342
&gt; +    CFArrayRef attachmentsArray = CMSampleBufferGetSampleAttachmentsArray(m_sample.get(), true);

The documentation says CMSampleBufferGetSampleAttachmentsArray can return NULL, and some of our code does too (e.g. isCMSampleBufferNonDisplaying), so this should probably check.

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:344
&gt; +    if (count == 1)

&lt;= 1

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:369
&gt; +    CFArrayRef attachmentsArray = CMSampleBufferGetSampleAttachmentsArray(m_sample.get(), true);
&gt; +    auto count = CFArrayGetCount(attachmentsArray);
&gt; +    if (count == 1)

Ditto the comments above.

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:377
&gt; +

Nit: the extra blank isn&apos;t really needed.

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:399
&gt; +        if (CMSampleBufferCopySampleBufferForRange(kCFAllocatorDefault, m_sample.get(), range, &amp;rawSample) != noErr || !rawSample)
&gt; +            return { };

It would be good to log an error and maybe ASSERT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632346</commentid>
    <comment_count>4</comment_count>
      <attachid>394143</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-20 16:02:55 -0700</bug_when>
    <thetext>Created attachment 394143
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632855</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-23 08:39:00 -0700</bug_when>
    <thetext>Committed r258846: &lt;https://trac.webkit.org/changeset/258846&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394143.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394140</attachid>
            <date>2020-03-20 15:36:29 -0700</date>
            <delta_ts>2020-03-20 15:57:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209365-20200320153627.patch</filename>
            <type>text/plain</type>
            <size>10058</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGRkZWJmZGJhOWJjMzM3
OWQ3NzI3ODMzNDYwNTM5Mjg4ZjU3OTJhZi4uMDI2YmRiMDA1ZWEzZjQ2ZTIzMGNiMjdkZWRkMTA0
N2I0MTRlYWI3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTAzLTIwICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNU0VdIEhhbmRsZSB0aGUg
Y2FzZSB3aGVyZSBBVlN0cmVhbURhdGFQYXJzZXIgcGFja2FnZXMgc3luYyBhbmQgbm9uLXN5bmMg
c2FtcGxlcyB0b2dldGhlciBpbiBhIENNU2FtcGxlQnVmZmVyUmVmLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MzY1CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS82MDYyNTIwOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBVlN0cmVhbURhdGFQYXJzZXIgd2lsbCBwYWNrYWdlIHRvZ2V0aGVyIG11bGlw
bGUgc2FtcGxlcyBpbnRvIGEgc2luZ2xlIENNU2FtcGxlQnVmZmVyUmVmIGZvciBlZmZpY2llbmN5
J3Mgc2FrZS4gV2hlbgorICAgICAgICB0aGlzIG9jY3VycywgaXQgbWF5IGluY2x1ZGUgc3luYyBh
bmQgbm9uLXN5bmMgc2FtcGxlcyB0b2dldGhlciBpbnRvIHRoZSBzYW1lIENNU2FtcGxlQnVmZmVy
UmVmLCB3aGljaCBpcyBwcm9ibGVtYXRpYworICAgICAgICBhcyB3ZSBjb25zaWRlciBhIENNU2Ft
cGxlQnVmZmVyUmVmIHRvIGJlICJzeW5jIiBvbmx5IHdoZW4gZXZlcnkgc2FtcGxlIGluc2lkZSB0
aGUgYnVmZmVyIGlzIGFsc28gc3luYy4KKworICAgICAgICBUbyBoYW5kbGUgdGhpcyBzY2VuYXJp
bywgd2hlbiByZWNlaXZpbmcgYSBDTVNhbXBsZUJ1ZmZlclJlZiBmcm9tIEFWU3RyZWFtRGF0YVBh
cnNlciwgZmlyc3QgY2hlY2sgd2hldGhlciB0aGF0IGJ1ZmZlcgorICAgICAgICBpcyAiaG9tb2dl
bmVvdXMiLCBtZWFuaW5nIGV2ZXJ5IHNhbXBsZSB3aXRoaW4gdGhlIGJ1ZmZlciBoYXMgdGhlIHNh
bWUgZWZmZWN0aXZlIE1lZGlhU2FtcGxlIGZsYWdzLiBUaGVuLCBpZiB0aGUgYnVmZmVyCisgICAg
ICAgIGlzIG5vdCBob21vZ2Vub3VzLCBicmVhayB0aGUgYnVmZmVyIGludG8gbXVsaXBsZSBob21v
Z2VuaW91cyBDTVNhbXBsZUJ1ZmZlclJlZnMuIFRoZW4sIGVhY2ggb2YgdGhvc2UgcmVzdWx0aW5n
IGJ1ZmZlcnMKKyAgICAgICAgaXMgcGFzc2VkIHVwIHRvIFNvdXJjZUJ1ZmZlciBhcyBhIE1lZGlh
U2FtcGxlIGluZGl2aWR1YWxseS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OmlzQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50UmFuZG9tQWNjZXNzKToKKyAgICAg
ICAgKFdlYkNvcmU6OmlzQ01TYW1wbGVCdWZmZXJSYW5kb21BY2Nlc3MpOgorICAgICAgICAoV2Vi
Q29yZTo6aXNDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnROb25EaXNwbGF5aW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OmlzQ01TYW1wbGVCdWZmZXJOb25EaXNwbGF5aW5nKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6ZmxhZ3MgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTYW1wbGVBVkZPYmpDOjppc0hvbW9nZW5lb3VzIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6ZGl2aWRlSW50b0hvbW9nZW5lb3VzU2FtcGxlcyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6cHJvY2Vzc0NvZGVkRnJhbWUpOgorCiAyMDIwLTAzLTIwICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIEVuc3VyZSBtZWRpYSBjYWNoZSBkaXJlY3Rv
cnkgaXMgY3JlYXRlZCBiZWZvcmUgcGFzc2luZyB0byBBVlVSTEFzc2V0LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFT
YW1wbGVBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaAppbmRleCAyNDM2MjY4MTI3NzZlYThlMzVh
YzVmNjBiNGEzMzQxOGIwNDU3NDYxLi5hMWRiODNmNjBjMDRlZGIwODRmMWFhOWJkMjFjZjUxNWVm
MTgxMGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaApA
QCAtNzAsNiArNzAsOSBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgdG9KU09OU3RyaW5nKCkgY29u
c3Qgb3ZlcnJpZGU7CiAKKyAgICBib29sIGlzSG9tb2dlbmVvdXMoKSBjb25zdDsKKyAgICBWZWN0
b3I8UmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4+IGRpdmlkZUludG9Ib21vZ2VuZW91c1NhbXBsZXMo
KTsKKwogcHJvdGVjdGVkOgogICAgIE1lZGlhU2FtcGxlQVZGT2JqQyhSZXRhaW5QdHI8Q01TYW1w
bGVCdWZmZXJSZWY+JiYgc2FtcGxlKQogICAgICAgICA6IG1fc2FtcGxlKFdURk1vdmUoc2FtcGxl
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5tbQppbmRleCA1
MzA4NzlkNTU4YTk0N2IyYTM1ODMwZDhmMGM1M2U2OTA3Yjc5NmU5Li4xMDFlMTA0Mjk1YmJkMGZm
MjVhYjIyMzBiZDM3MjliMzFlMmYzNjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFTYW1wbGVBVkZPYmpDLm1tCkBAIC0xMTUsNiArMTE1LDExIEBAIHVpbnQzMl90IE1lZGlhU2Ft
cGxlQVZGT2JqQzo6dmlkZW9QaXhlbEZvcm1hdCgpIGNvbnN0CiAgICAgcmV0dXJuIENWUGl4ZWxC
dWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIpOwogfQogCitzdGF0aWMgYm9vbCBp
c0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudFJhbmRvbUFjY2VzcyhDRkRpY3Rpb25hcnlSZWYgYXR0
YWNobWVudERpY3QpCit7CisgICAgcmV0dXJuICFDRkRpY3Rpb25hcnlDb250YWluc0tleShhdHRh
Y2htZW50RGljdCwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RTeW5jKTsKK30KKwogc3RhdGlj
IGJvb2wgaXNDTVNhbXBsZUJ1ZmZlclJhbmRvbUFjY2VzcyhDTVNhbXBsZUJ1ZmZlclJlZiBzYW1w
bGUpCiB7CiAgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IENNU2FtcGxlQnVmZmVyR2V0U2Ft
cGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKQEAgLTEyMiwxMyArMTI3LDE3IEBA
IHN0YXRpYyBib29sIGlzQ01TYW1wbGVCdWZmZXJSYW5kb21BY2Nlc3MoQ01TYW1wbGVCdWZmZXJS
ZWYgc2FtcGxlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAKICAgICBmb3IgKENGSW5kZXgg
aSA9IDAsIGNvdW50ID0gQ0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzKTsgaSA8IGNvdW50OyAr
K2kpIHsKLSAgICAgICAgQ0ZEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnREaWN0ID0gY2hlY2tlZF9j
Zl9jYXN0PENGRGljdGlvbmFyeVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50
cywgaSkpOwotICAgICAgICBpZiAoQ0ZEaWN0aW9uYXJ5Q29udGFpbnNLZXkoYXR0YWNobWVudERp
Y3QsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90U3luYykpCisgICAgICAgIGlmICghaXNDTVNh
bXBsZUJ1ZmZlckF0dGFjaG1lbnRSYW5kb21BY2Nlc3MoY2hlY2tlZF9jZl9jYXN0PENGRGljdGlv
bmFyeVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50cywgaSkpKSkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRp
YyBib29sIGlzQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50Tm9uRGlzcGxheWluZyhDRkRpY3Rpb25h
cnlSZWYgYXR0YWNobWVudERpY3QpCit7CisgICAgcmV0dXJuIENGRGljdGlvbmFyeUNvbnRhaW5z
S2V5KGF0dGFjaG1lbnREaWN0LCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSk7
Cit9CisKIHN0YXRpYyBib29sIGlzQ01TYW1wbGVCdWZmZXJOb25EaXNwbGF5aW5nKENNU2FtcGxl
QnVmZmVyUmVmIHNhbXBsZSkKIHsKICAgICBDRkFycmF5UmVmIGF0dGFjaG1lbnRzID0gQ01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZSwgZmFsc2UpOwpAQCAtMTM2
LDggKzE0NSw3IEBAIHN0YXRpYyBib29sIGlzQ01TYW1wbGVCdWZmZXJOb25EaXNwbGF5aW5nKENN
U2FtcGxlQnVmZmVyUmVmIHNhbXBsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAg
IGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IENGQXJyYXlHZXRDb3VudChhdHRhY2htZW50cyk7ICsr
aSkgewotICAgICAgICBDRkRpY3Rpb25hcnlSZWYgYXR0YWNobWVudERpY3QgPSBjaGVja2VkX2Nm
X2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRz
LCBpKSk7Ci0gICAgICAgIGlmIChDRkRpY3Rpb25hcnlDb250YWluc0tleShhdHRhY2htZW50RGlj
dCwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXkpKQorICAgICAgICBpZiAoaXND
TVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnROb25EaXNwbGF5aW5nKGNoZWNrZWRfY2ZfY2FzdDxDRkRp
Y3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHMsIGkpKSkpCiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTE0NywxMyArMTU1LDEzIEBAIHN0
YXRpYyBib29sIGlzQ01TYW1wbGVCdWZmZXJOb25EaXNwbGF5aW5nKENNU2FtcGxlQnVmZmVyUmVm
IHNhbXBsZSkKIE1lZGlhU2FtcGxlOjpTYW1wbGVGbGFncyBNZWRpYVNhbXBsZUFWRk9iakM6OmZs
YWdzKCkgY29uc3QKIHsKICAgICBpbnQgcmV0dXJuVmFsdWUgPSBNZWRpYVNhbXBsZTo6Tm9uZTsK
LSAgICAKKwogICAgIGlmIChpc0NNU2FtcGxlQnVmZmVyUmFuZG9tQWNjZXNzKG1fc2FtcGxlLmdl
dCgpKSkKICAgICAgICAgcmV0dXJuVmFsdWUgfD0gTWVkaWFTYW1wbGU6OklzU3luYzsKIAogICAg
IGlmIChpc0NNU2FtcGxlQnVmZmVyTm9uRGlzcGxheWluZyhtX3NhbXBsZS5nZXQoKSkpCiAgICAg
ICAgIHJldHVyblZhbHVlIHw9IE1lZGlhU2FtcGxlOjpJc05vbkRpc3BsYXlpbmc7Ci0gICAgCisK
ICAgICByZXR1cm4gU2FtcGxlRmxhZ3MocmV0dXJuVmFsdWUpOwogfQogCkBAIC0zMjksNCArMzM3
LDY5IEBAIFN0cmluZyBNZWRpYVNhbXBsZUFWRk9iakM6OnRvSlNPTlN0cmluZygpIGNvbnN0CiAg
ICAgcmV0dXJuIG9iamVjdC0+dG9KU09OU3RyaW5nKCk7CiB9CiAKK2Jvb2wgTWVkaWFTYW1wbGVB
VkZPYmpDOjppc0hvbW9nZW5lb3VzKCkgY29uc3QKK3sKKyAgICBDRkFycmF5UmVmIGF0dGFjaG1l
bnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobV9zYW1w
bGUuZ2V0KCksIHRydWUpOworICAgIGF1dG8gY291bnQgPSBDRkFycmF5R2V0Q291bnQoYXR0YWNo
bWVudHNBcnJheSk7CisgICAgaWYgKGNvdW50ID09IDEpCisgICAgICAgIHJldHVybiB0cnVlOwor
CisgICAgQ0ZEaWN0aW9uYXJ5UmVmIGZpcnN0QXR0YWNobWVudCA9IGNoZWNrZWRfY2ZfY2FzdDxD
RkRpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHNBcnJheSwg
MCkpOworICAgIGJvb2wgaXNTeW5jID0gaXNDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRSYW5kb21B
Y2Nlc3MoZmlyc3RBdHRhY2htZW50KTsKKyAgICBib29sIGlzTm9uRGlzcGxheWluZyA9IGlzQ01T
YW1wbGVCdWZmZXJBdHRhY2htZW50Tm9uRGlzcGxheWluZyhmaXJzdEF0dGFjaG1lbnQpOworCisg
ICAgZm9yIChDRkluZGV4IGkgPSAxOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICBhdXRvIGF0
dGFjaG1lbnREaWN0ID0gY2hlY2tlZF9jZl9jYXN0PENGRGljdGlvbmFyeVJlZj4oQ0ZBcnJheUdl
dFZhbHVlQXRJbmRleChhdHRhY2htZW50c0FycmF5LCBpKSk7CisgICAgICAgIGlmIChpc1N5bmMg
IT0gaXNDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRSYW5kb21BY2Nlc3MoYXR0YWNobWVudERpY3Qp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmIChpc05vbkRpc3BsYXlp
bmcgIT0gaXNDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnROb25EaXNwbGF5aW5nKGF0dGFjaG1lbnRE
aWN0KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworCisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK1ZlY3RvcjxSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPj4gTWVkaWFTYW1wbGVBVkZP
YmpDOjpkaXZpZGVJbnRvSG9tb2dlbmVvdXNTYW1wbGVzKCkKK3sKKyAgICB1c2luZyBTYW1wbGVW
ZWN0b3IgPSBWZWN0b3I8UmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4+OworCisgICAgQ0ZBcnJheVJl
ZiBhdHRhY2htZW50c0FycmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0Fy
cmF5KG1fc2FtcGxlLmdldCgpLCB0cnVlKTsKKyAgICBhdXRvIGNvdW50ID0gQ0ZBcnJheUdldENv
dW50KGF0dGFjaG1lbnRzQXJyYXkpOworICAgIGlmIChjb3VudCA9PSAxKQorICAgICAgICByZXR1
cm4gU2FtcGxlVmVjdG9yOjpmcm9tKG1ha2VSZWYoKnRoaXMpKTsKKworICAgIENGRGljdGlvbmFy
eVJlZiBmaXJzdEF0dGFjaG1lbnQgPSBjaGVja2VkX2NmX2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmPihD
RkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRzQXJyYXksIDApKTsKKyAgICBib29sIGlz
U3luYyA9IGlzQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50UmFuZG9tQWNjZXNzKGZpcnN0QXR0YWNo
bWVudCk7CisgICAgYm9vbCBpc05vbkRpc3BsYXlpbmcgPSBpc0NNU2FtcGxlQnVmZmVyQXR0YWNo
bWVudE5vbkRpc3BsYXlpbmcoZmlyc3RBdHRhY2htZW50KTsKKworICAgIFZlY3RvcjxDRlJhbmdl
PiByYW5nZXM7CisKKyAgICBDRkluZGV4IGN1cnJlbnRSYW5nZVN0YXJ0ID0gMDsKKyAgICBDRklu
ZGV4IGN1cnJlbnRSYW5nZUxlbmd0aCA9IDE7CisgICAgZm9yIChDRkluZGV4IGkgPSAxOyBpIDwg
Y291bnQ7ICsraSwgKytjdXJyZW50UmFuZ2VMZW5ndGgpIHsKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5
UmVmIGF0dGFjaG1lbnREaWN0ID0gY2hlY2tlZF9jZl9jYXN0PENGRGljdGlvbmFyeVJlZj4oQ0ZB
cnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50c0FycmF5LCBpKSk7CisgICAgICAgIGlmIChp
c1N5bmMgPT0gaXNDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRSYW5kb21BY2Nlc3MoYXR0YWNobWVu
dERpY3QpICYmIGlzTm9uRGlzcGxheWluZyA9PSBpc0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudE5v
bkRpc3BsYXlpbmcoYXR0YWNobWVudERpY3QpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgcmFuZ2VzLmFwcGVuZChDRlJhbmdlTWFrZShjdXJyZW50UmFuZ2VTdGFydCwgY3VycmVu
dFJhbmdlTGVuZ3RoKSk7CisgICAgICAgIGN1cnJlbnRSYW5nZVN0YXJ0ID0gaTsKKyAgICAgICAg
Y3VycmVudFJhbmdlTGVuZ3RoID0gMDsKKyAgICB9CisgICAgcmFuZ2VzLmFwcGVuZChDRlJhbmdl
TWFrZShjdXJyZW50UmFuZ2VTdGFydCwgY3VycmVudFJhbmdlTGVuZ3RoKSk7CisKKyAgICBpZiAo
cmFuZ2VzLnNpemUoKSA9PSAxKQorICAgICAgICByZXR1cm4gU2FtcGxlVmVjdG9yOjpmcm9tKG1h
a2VSZWYoKnRoaXMpKTsKKworICAgIFNhbXBsZVZlY3RvciBzYW1wbGVzOworICAgIHNhbXBsZXMu
cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShyYW5nZXMuc2l6ZSgpKTsKKyAgICBmb3IgKGF1dG8mIHJh
bmdlIDogcmFuZ2VzKSB7CisgICAgICAgIENNU2FtcGxlQnVmZmVyUmVmIHJhd1NhbXBsZSA9IG51
bGxwdHI7CisgICAgICAgIGlmIChDTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5n
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtX3NhbXBsZS5nZXQoKSwgcmFuZ2UsICZyYXdTYW1wbGUp
ICE9IG5vRXJyIHx8ICFyYXdTYW1wbGUpCisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAg
ICBzYW1wbGVzLnVuY2hlY2tlZEFwcGVuZChNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShhZG9w
dENGKHJhd1NhbXBsZSkuZ2V0KCksIG1faWQpKTsKKyAgICB9CisgICAgcmV0dXJuIHNhbXBsZXM7
Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMubW0KaW5kZXggNmQ4MWExMzZjZTg1Y2IzNzlkMTljMTJjMjEyMDJlZTBhNjRj
Nzc3OC4uYjJmMWRiNjIwYTU1Mjk3Mjk5YWRiZWVkMzdhMzUyOGQxMWZhMzUzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0K
QEAgLTU5OCwxMCArNTk4LDIxIEBAIGJvb2wgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnBy
b2Nlc3NDb2RlZEZyYW1lKGludCB0cmFja0lELCBDTVNhbXBsZUJ1ZmZlclJlCiAgICAgaWYgKG1f
ZGlzY2FyZFNhbXBsZXNVbnRpbE5leHRJbml0aWFsaXphdGlvblNlZ21lbnQpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIGlmIChtX2NsaWVudCkgewotICAgICAgICBSZWY8TWVkaWFTYW1w
bGU+IG1lZGlhU2FtcGxlID0gTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUoc2FtcGxlQnVmZmVy
LCB0cmFja0lEKTsKLSAgICAgICAgREVCVUdfTE9HKExPR0lERU5USUZJRVIsIG1lZGlhU2FtcGxl
LmdldCgpKTsKKyAgICBpZiAoIW1fY2xpZW50KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
IGF1dG8gbWVkaWFTYW1wbGUgPSBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShzYW1wbGVCdWZm
ZXIsIHRyYWNrSUQpOworCisgICAgaWYgKG1lZGlhU2FtcGxlLT5pc0hvbW9nZW5lb3VzKCkpIHsK
KyAgICAgICAgREVCVUdfTE9HKExPR0lERU5USUZJRVIsIG1lZGlhU2FtcGxlLT50b0pTT05TdHJp
bmcoKSk7CiAgICAgICAgIG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNh
bXBsZShtZWRpYVNhbXBsZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGF1
dG8gbWVkaWFTYW1wbGVzID0gbWVkaWFTYW1wbGUtPmRpdmlkZUludG9Ib21vZ2VuZW91c1NhbXBs
ZXMoKTsKKyAgICBmb3IgKGF1dG8mIHNhbXBsZSA6IG1lZGlhU2FtcGxlcykgeworICAgICAgICBE
RUJVR19MT0coTE9HSURFTlRJRklFUiwgc2FtcGxlLT50b0pTT05TdHJpbmcoKSk7CisgICAgICAg
IG1fY2xpZW50LT5zb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShzYW1wbGUpOwog
ICAgIH0KIAogICAgIHJldHVybiB0cnVlOwo=
</data>
<flag name="review"
          id="409573"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394143</attachid>
            <date>2020-03-20 16:02:55 -0700</date>
            <delta_ts>2020-03-23 08:39:00 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-209365-20200320160253.patch</filename>
            <type>text/plain</type>
            <size>10188</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGRkZWJmZGJhOWJjMzM3
OWQ3NzI3ODMzNDYwNTM5Mjg4ZjU3OTJhZi4uZDdkMDg4Y2JjMDQ1MTdmYWI1YTZkMTIyOWE1M2E1
YTFjMTU2NDdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTAzLTIwICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNU0VdIEhhbmRsZSB0aGUg
Y2FzZSB3aGVyZSBBVlN0cmVhbURhdGFQYXJzZXIgcGFja2FnZXMgc3luYyBhbmQgbm9uLXN5bmMg
c2FtcGxlcyB0b2dldGhlciBpbiBhIENNU2FtcGxlQnVmZmVyUmVmLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MzY1CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS82MDYyNTIwOT4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisK
KyAgICAgICAgQVZTdHJlYW1EYXRhUGFyc2VyIHdpbGwgcGFja2FnZSB0b2dldGhlciBtdWxpcGxl
IHNhbXBsZXMgaW50byBhIHNpbmdsZSBDTVNhbXBsZUJ1ZmZlclJlZiBmb3IgZWZmaWNpZW5jeSdz
IHNha2UuIFdoZW4KKyAgICAgICAgdGhpcyBvY2N1cnMsIGl0IG1heSBpbmNsdWRlIHN5bmMgYW5k
IG5vbi1zeW5jIHNhbXBsZXMgdG9nZXRoZXIgaW50byB0aGUgc2FtZSBDTVNhbXBsZUJ1ZmZlclJl
Ziwgd2hpY2ggaXMgcHJvYmxlbWF0aWMKKyAgICAgICAgYXMgd2UgY29uc2lkZXIgYSBDTVNhbXBs
ZUJ1ZmZlclJlZiB0byBiZSAic3luYyIgb25seSB3aGVuIGV2ZXJ5IHNhbXBsZSBpbnNpZGUgdGhl
IGJ1ZmZlciBpcyBhbHNvIHN5bmMuCisKKyAgICAgICAgVG8gaGFuZGxlIHRoaXMgc2NlbmFyaW8s
IHdoZW4gcmVjZWl2aW5nIGEgQ01TYW1wbGVCdWZmZXJSZWYgZnJvbSBBVlN0cmVhbURhdGFQYXJz
ZXIsIGZpcnN0IGNoZWNrIHdoZXRoZXIgdGhhdCBidWZmZXIKKyAgICAgICAgaXMgImhvbW9nZW5l
b3VzIiwgbWVhbmluZyBldmVyeSBzYW1wbGUgd2l0aGluIHRoZSBidWZmZXIgaGFzIHRoZSBzYW1l
IGVmZmVjdGl2ZSBNZWRpYVNhbXBsZSBmbGFncy4gVGhlbiwgaWYgdGhlIGJ1ZmZlcgorICAgICAg
ICBpcyBub3QgaG9tb2dlbm91cywgYnJlYWsgdGhlIGJ1ZmZlciBpbnRvIG11bGlwbGUgaG9tb2dl
bmlvdXMgQ01TYW1wbGVCdWZmZXJSZWZzLiBUaGVuLCBlYWNoIG9mIHRob3NlIHJlc3VsdGluZyBi
dWZmZXJzCisgICAgICAgIGlzIHBhc3NlZCB1cCB0byBTb3VyY2VCdWZmZXIgYXMgYSBNZWRpYVNh
bXBsZSBpbmRpdmlkdWFsbHkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW06CisgICAgICAgIChX
ZWJDb3JlOjppc0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudFJhbmRvbUFjY2Vzcyk6CisgICAgICAg
IChXZWJDb3JlOjppc0NNU2FtcGxlQnVmZmVyUmFuZG9tQWNjZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OmlzQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50Tm9uRGlzcGxheWluZyk6CisgICAgICAgIChX
ZWJDb3JlOjppc0NNU2FtcGxlQnVmZmVyTm9uRGlzcGxheWluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNhbXBsZUFWRk9iakM6OmZsYWdzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlQVZGT2JqQzo6aXNIb21vZ2VuZW91cyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNhbXBsZUFWRk9iakM6OmRpdmlkZUludG9Ib21vZ2VuZW91c1NhbXBsZXMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakM6OnByb2Nlc3NDb2RlZEZyYW1lKToKKwogMjAyMC0wMy0yMCAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBFbnN1cmUgbWVkaWEgY2FjaGUgZGlyZWN0b3J5
IGlzIGNyZWF0ZWQgYmVmb3JlIHBhc3NpbmcgdG8gQVZVUkxBc3NldC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2Ft
cGxlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmgKaW5kZXggMjQzNjI2ODEyNzc2ZWE4ZTM1YWM1
ZjYwYjRhMzM0MThiMDQ1NzQ2MS4uYTFkYjgzZjYwYzA0ZWRiMDg0ZjFhYTliZDIxY2Y1MTVlZjE4
MTBmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmgKQEAg
LTcwLDYgKzcwLDkgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIHRvSlNPTlN0cmluZygpIGNvbnN0
IG92ZXJyaWRlOwogCisgICAgYm9vbCBpc0hvbW9nZW5lb3VzKCkgY29uc3Q7CisgICAgVmVjdG9y
PFJlZjxNZWRpYVNhbXBsZUFWRk9iakM+PiBkaXZpZGVJbnRvSG9tb2dlbmVvdXNTYW1wbGVzKCk7
CisKIHByb3RlY3RlZDoKICAgICBNZWRpYVNhbXBsZUFWRk9iakMoUmV0YWluUHRyPENNU2FtcGxl
QnVmZmVyUmVmPiYmIHNhbXBsZSkKICAgICAgICAgOiBtX3NhbXBsZShXVEZNb3ZlKHNhbXBsZSkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMubW0KaW5kZXggNTMw
ODc5ZDU1OGE5NDdiMmEzNTgzMGQ4ZjBjNTNlNjkwN2I3OTZlOS4uZmMyNzQ5NmM4OWJlN2RlYTYy
Yjc4ZjZmMDJiYjRmYzc0NjIxMGY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
U2FtcGxlQVZGT2JqQy5tbQpAQCAtMTE1LDYgKzExNSwxMSBAQCB1aW50MzJfdCBNZWRpYVNhbXBs
ZUFWRk9iakM6OnZpZGVvUGl4ZWxGb3JtYXQoKSBjb25zdAogICAgIHJldHVybiBDVlBpeGVsQnVm
ZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVsQnVmZmVyKTsKIH0KIAorc3RhdGljIGJvb2wgaXND
TVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRSYW5kb21BY2Nlc3MoQ0ZEaWN0aW9uYXJ5UmVmIGF0dGFj
aG1lbnREaWN0KQoreworICAgIHJldHVybiAhQ0ZEaWN0aW9uYXJ5Q29udGFpbnNLZXkoYXR0YWNo
bWVudERpY3QsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfTm90U3luYyk7Cit9CisKIHN0YXRpYyBi
b29sIGlzQ01TYW1wbGVCdWZmZXJSYW5kb21BY2Nlc3MoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxl
KQogewogICAgIENGQXJyYXlSZWYgYXR0YWNobWVudHMgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBs
ZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlLCBmYWxzZSk7CkBAIC0xMjIsMTMgKzEyNywxNyBAQCBz
dGF0aWMgYm9vbCBpc0NNU2FtcGxlQnVmZmVyUmFuZG9tQWNjZXNzKENNU2FtcGxlQnVmZmVyUmVm
IHNhbXBsZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCiAgICAgZm9yIChDRkluZGV4IGkg
PSAwLCBjb3VudCA9IENGQXJyYXlHZXRDb3VudChhdHRhY2htZW50cyk7IGkgPCBjb3VudDsgKytp
KSB7Ci0gICAgICAgIENGRGljdGlvbmFyeVJlZiBhdHRhY2htZW50RGljdCA9IGNoZWNrZWRfY2Zf
Y2FzdDxDRkRpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHMs
IGkpKTsKLSAgICAgICAgaWYgKENGRGljdGlvbmFyeUNvbnRhaW5zS2V5KGF0dGFjaG1lbnREaWN0
LCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X05vdFN5bmMpKQorICAgICAgICBpZiAoIWlzQ01TYW1w
bGVCdWZmZXJBdHRhY2htZW50UmFuZG9tQWNjZXNzKGNoZWNrZWRfY2ZfY2FzdDxDRkRpY3Rpb25h
cnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHMsIGkpKSkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMg
Ym9vbCBpc0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudE5vbkRpc3BsYXlpbmcoQ0ZEaWN0aW9uYXJ5
UmVmIGF0dGFjaG1lbnREaWN0KQoreworICAgIHJldHVybiBDRkRpY3Rpb25hcnlDb250YWluc0tl
eShhdHRhY2htZW50RGljdCwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXkpOwor
fQorCiBzdGF0aWMgYm9vbCBpc0NNU2FtcGxlQnVmZmVyTm9uRGlzcGxheWluZyhDTVNhbXBsZUJ1
ZmZlclJlZiBzYW1wbGUpCiB7CiAgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9IENNU2FtcGxl
QnVmZmVyR2V0U2FtcGxlQXR0YWNobWVudHNBcnJheShzYW1wbGUsIGZhbHNlKTsKQEAgLTEzNiw4
ICsxNDUsNyBAQCBzdGF0aWMgYm9vbCBpc0NNU2FtcGxlQnVmZmVyTm9uRGlzcGxheWluZyhDTVNh
bXBsZUJ1ZmZlclJlZiBzYW1wbGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBm
b3IgKENGSW5kZXggaSA9IDA7IGkgPCBDRkFycmF5R2V0Q291bnQoYXR0YWNobWVudHMpOyArK2kp
IHsKLSAgICAgICAgQ0ZEaWN0aW9uYXJ5UmVmIGF0dGFjaG1lbnREaWN0ID0gY2hlY2tlZF9jZl9j
YXN0PENGRGljdGlvbmFyeVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50cywg
aSkpOwotICAgICAgICBpZiAoQ0ZEaWN0aW9uYXJ5Q29udGFpbnNLZXkoYXR0YWNobWVudERpY3Qs
IGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5KSkKKyAgICAgICAgaWYgKGlzQ01T
YW1wbGVCdWZmZXJBdHRhY2htZW50Tm9uRGlzcGxheWluZyhjaGVja2VkX2NmX2Nhc3Q8Q0ZEaWN0
aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRzLCBpKSkpKQogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0xNDcsMTMgKzE1NSwxMyBAQCBzdGF0
aWMgYm9vbCBpc0NNU2FtcGxlQnVmZmVyTm9uRGlzcGxheWluZyhDTVNhbXBsZUJ1ZmZlclJlZiBz
YW1wbGUpCiBNZWRpYVNhbXBsZTo6U2FtcGxlRmxhZ3MgTWVkaWFTYW1wbGVBVkZPYmpDOjpmbGFn
cygpIGNvbnN0CiB7CiAgICAgaW50IHJldHVyblZhbHVlID0gTWVkaWFTYW1wbGU6Ok5vbmU7Ci0g
ICAgCisKICAgICBpZiAoaXNDTVNhbXBsZUJ1ZmZlclJhbmRvbUFjY2VzcyhtX3NhbXBsZS5nZXQo
KSkpCiAgICAgICAgIHJldHVyblZhbHVlIHw9IE1lZGlhU2FtcGxlOjpJc1N5bmM7CiAKICAgICBp
ZiAoaXNDTVNhbXBsZUJ1ZmZlck5vbkRpc3BsYXlpbmcobV9zYW1wbGUuZ2V0KCkpKQogICAgICAg
ICByZXR1cm5WYWx1ZSB8PSBNZWRpYVNhbXBsZTo6SXNOb25EaXNwbGF5aW5nOwotICAgIAorCiAg
ICAgcmV0dXJuIFNhbXBsZUZsYWdzKHJldHVyblZhbHVlKTsKIH0KIApAQCAtMzI5LDQgKzMzNyw3
NCBAQCBTdHJpbmcgTWVkaWFTYW1wbGVBVkZPYmpDOjp0b0pTT05TdHJpbmcoKSBjb25zdAogICAg
IHJldHVybiBvYmplY3QtPnRvSlNPTlN0cmluZygpOwogfQogCitib29sIE1lZGlhU2FtcGxlQVZG
T2JqQzo6aXNIb21vZ2VuZW91cygpIGNvbnN0Cit7CisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50
c0FycmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KG1fc2FtcGxl
LmdldCgpLCB0cnVlKTsKKyAgICBpZiAoIWF0dGFjaG1lbnRzQXJyYXkpCisgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgYXV0byBjb3VudCA9IENGQXJyYXlHZXRDb3VudChhdHRhY2htZW50c0Fy
cmF5KTsKKyAgICBpZiAoY291bnQgPD0gMSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBD
RkRpY3Rpb25hcnlSZWYgZmlyc3RBdHRhY2htZW50ID0gY2hlY2tlZF9jZl9jYXN0PENGRGljdGlv
bmFyeVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50c0FycmF5LCAwKSk7Cisg
ICAgYm9vbCBpc1N5bmMgPSBpc0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudFJhbmRvbUFjY2Vzcyhm
aXJzdEF0dGFjaG1lbnQpOworICAgIGJvb2wgaXNOb25EaXNwbGF5aW5nID0gaXNDTVNhbXBsZUJ1
ZmZlckF0dGFjaG1lbnROb25EaXNwbGF5aW5nKGZpcnN0QXR0YWNobWVudCk7CisKKyAgICBmb3Ig
KENGSW5kZXggaSA9IDE7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgIGF1dG8gYXR0YWNobWVu
dERpY3QgPSBjaGVja2VkX2NmX2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVB
dEluZGV4KGF0dGFjaG1lbnRzQXJyYXksIGkpKTsKKyAgICAgICAgaWYgKGlzU3luYyAhPSBpc0NN
U2FtcGxlQnVmZmVyQXR0YWNobWVudFJhbmRvbUFjY2VzcyhhdHRhY2htZW50RGljdCkpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKGlzTm9uRGlzcGxheWluZyAhPSBp
c0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudE5vbkRpc3BsYXlpbmcoYXR0YWNobWVudERpY3QpKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH07CisKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KworVmVjdG9yPFJlZjxNZWRpYVNhbXBsZUFWRk9iakM+PiBNZWRpYVNhbXBsZUFWRk9iakM6OmRp
dmlkZUludG9Ib21vZ2VuZW91c1NhbXBsZXMoKQoreworICAgIHVzaW5nIFNhbXBsZVZlY3RvciA9
IFZlY3RvcjxSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPj47CisKKyAgICBDRkFycmF5UmVmIGF0dGFj
aG1lbnRzQXJyYXkgPSBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkobV9z
YW1wbGUuZ2V0KCksIHRydWUpOworICAgIGlmICghYXR0YWNobWVudHNBcnJheSkKKyAgICAgICAg
cmV0dXJuIFNhbXBsZVZlY3Rvcjo6ZnJvbShtYWtlUmVmKCp0aGlzKSk7CisKKyAgICBhdXRvIGNv
dW50ID0gQ0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzQXJyYXkpOworICAgIGlmIChjb3VudCA8
PSAxKQorICAgICAgICByZXR1cm4gU2FtcGxlVmVjdG9yOjpmcm9tKG1ha2VSZWYoKnRoaXMpKTsK
KworICAgIENGRGljdGlvbmFyeVJlZiBmaXJzdEF0dGFjaG1lbnQgPSBjaGVja2VkX2NmX2Nhc3Q8
Q0ZEaWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRzQXJyYXks
IDApKTsKKyAgICBib29sIGlzU3luYyA9IGlzQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50UmFuZG9t
QWNjZXNzKGZpcnN0QXR0YWNobWVudCk7CisgICAgYm9vbCBpc05vbkRpc3BsYXlpbmcgPSBpc0NN
U2FtcGxlQnVmZmVyQXR0YWNobWVudE5vbkRpc3BsYXlpbmcoZmlyc3RBdHRhY2htZW50KTsKKyAg
ICBWZWN0b3I8Q0ZSYW5nZT4gcmFuZ2VzOworICAgIENGSW5kZXggY3VycmVudFJhbmdlU3RhcnQg
PSAwOworICAgIENGSW5kZXggY3VycmVudFJhbmdlTGVuZ3RoID0gMTsKKworICAgIGZvciAoQ0ZJ
bmRleCBpID0gMTsgaSA8IGNvdW50OyArK2ksICsrY3VycmVudFJhbmdlTGVuZ3RoKSB7CisgICAg
ICAgIENGRGljdGlvbmFyeVJlZiBhdHRhY2htZW50RGljdCA9IGNoZWNrZWRfY2ZfY2FzdDxDRkRp
Y3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHNBcnJheSwgaSkp
OworICAgICAgICBpZiAoaXNTeW5jID09IGlzQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50UmFuZG9t
QWNjZXNzKGF0dGFjaG1lbnREaWN0KSAmJiBpc05vbkRpc3BsYXlpbmcgPT0gaXNDTVNhbXBsZUJ1
ZmZlckF0dGFjaG1lbnROb25EaXNwbGF5aW5nKGF0dGFjaG1lbnREaWN0KSkKKyAgICAgICAgICAg
IGNvbnRpbnVlOworCisgICAgICAgIHJhbmdlcy5hcHBlbmQoQ0ZSYW5nZU1ha2UoY3VycmVudFJh
bmdlU3RhcnQsIGN1cnJlbnRSYW5nZUxlbmd0aCkpOworICAgICAgICBjdXJyZW50UmFuZ2VTdGFy
dCA9IGk7CisgICAgICAgIGN1cnJlbnRSYW5nZUxlbmd0aCA9IDA7CisgICAgfQorICAgIHJhbmdl
cy5hcHBlbmQoQ0ZSYW5nZU1ha2UoY3VycmVudFJhbmdlU3RhcnQsIGN1cnJlbnRSYW5nZUxlbmd0
aCkpOworCisgICAgaWYgKHJhbmdlcy5zaXplKCkgPT0gMSkKKyAgICAgICAgcmV0dXJuIFNhbXBs
ZVZlY3Rvcjo6ZnJvbShtYWtlUmVmKCp0aGlzKSk7CisKKyAgICBTYW1wbGVWZWN0b3Igc2FtcGxl
czsKKyAgICBzYW1wbGVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkocmFuZ2VzLnNpemUoKSk7Cisg
ICAgZm9yIChhdXRvJiByYW5nZSA6IHJhbmdlcykgeworICAgICAgICBDTVNhbXBsZUJ1ZmZlclJl
ZiByYXdTYW1wbGUgPSBudWxscHRyOworICAgICAgICBpZiAoQ01TYW1wbGVCdWZmZXJDb3B5U2Ft
cGxlQnVmZmVyRm9yUmFuZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zYW1wbGUuZ2V0KCksIHJh
bmdlLCAmcmF3U2FtcGxlKSAhPSBub0VyciB8fCAhcmF3U2FtcGxlKQorICAgICAgICAgICAgcmV0
dXJuIHsgfTsKKyAgICAgICAgc2FtcGxlcy51bmNoZWNrZWRBcHBlbmQoTWVkaWFTYW1wbGVBVkZP
YmpDOjpjcmVhdGUoYWRvcHRDRihyYXdTYW1wbGUpLmdldCgpLCBtX2lkKSk7CisgICAgfQorICAg
IHJldHVybiBzYW1wbGVzOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDZkODFhMTM2Y2U4NWNiMzc5ZDE5
YzEyYzIxMjAyZWUwYTY0Yzc3NzguLmIyZjFkYjYyMGE1NTI5NzI5OWFkYmVlZDM3YTM1MjhkMTFm
YTM1MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDLm1tCkBAIC01OTgsMTAgKzU5OCwyMSBAQCBib29sIFNvdXJjZUJ1ZmZlclBy
aXZhdGVBVkZPYmpDOjpwcm9jZXNzQ29kZWRGcmFtZShpbnQgdHJhY2tJRCwgQ01TYW1wbGVCdWZm
ZXJSZQogICAgIGlmIChtX2Rpc2NhcmRTYW1wbGVzVW50aWxOZXh0SW5pdGlhbGl6YXRpb25TZWdt
ZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAobV9jbGllbnQpIHsKLSAgICAg
ICAgUmVmPE1lZGlhU2FtcGxlPiBtZWRpYVNhbXBsZSA9IE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3Jl
YXRlKHNhbXBsZUJ1ZmZlciwgdHJhY2tJRCk7Ci0gICAgICAgIERFQlVHX0xPRyhMT0dJREVOVElG
SUVSLCBtZWRpYVNhbXBsZS5nZXQoKSk7CisgICAgaWYgKCFtX2NsaWVudCkKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICBhdXRvIG1lZGlhU2FtcGxlID0gTWVkaWFTYW1wbGVBVkZPYmpDOjpj
cmVhdGUoc2FtcGxlQnVmZmVyLCB0cmFja0lEKTsKKworICAgIGlmIChtZWRpYVNhbXBsZS0+aXNI
b21vZ2VuZW91cygpKSB7CisgICAgICAgIERFQlVHX0xPRyhMT0dJREVOVElGSUVSLCBtZWRpYVNh
bXBsZS0+dG9KU09OU3RyaW5nKCkpOwogICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJp
dmF0ZURpZFJlY2VpdmVTYW1wbGUobWVkaWFTYW1wbGUpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisKKyAgICBhdXRvIG1lZGlhU2FtcGxlcyA9IG1lZGlhU2FtcGxlLT5kaXZpZGVJbnRv
SG9tb2dlbmVvdXNTYW1wbGVzKCk7CisgICAgZm9yIChhdXRvJiBzYW1wbGUgOiBtZWRpYVNhbXBs
ZXMpIHsKKyAgICAgICAgREVCVUdfTE9HKExPR0lERU5USUZJRVIsIHNhbXBsZS0+dG9KU09OU3Ry
aW5nKCkpOworICAgICAgICBtX2NsaWVudC0+c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVT
YW1wbGUoc2FtcGxlKTsKICAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>