<?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>265752</bug_id>
          
          <creation_ts>2023-12-03 06:45:14 -0800</creation_ts>
          <short_desc>[IFC][Ruby] Add support for breakable ruby bases</short_desc>
          <delta_ts>2023-12-04 06:16:15 -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>Layout and Rendering</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1996546</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2023-12-03 06:45:14 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1996552</commentid>
    <comment_count>1</comment_count>
      <attachid>468841</attachid>
    <who name="alan">zalan</who>
    <bug_when>2023-12-03 10:21:56 -0800</bug_when>
    <thetext>Created attachment 468841
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1996705</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-12-04 06:15:47 -0800</bug_when>
    <thetext>Committed 271473@main (d208198da137): &lt;https://commits.webkit.org/271473@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 468841.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1996706</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-12-04 06:16:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/119129876&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>468841</attachid>
            <date>2023-12-03 10:21:56 -0800</date>
            <delta_ts>2023-12-04 06:15:49 -0800</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-265752-20231203102156.patch</filename>
            <type>text/plain</type>
            <size>26779</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAwM2FhZDE0ZDc2M2ZlNmRlNTk2NWY4NmJlNGMzODdkY2MxZjNhM2QzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFN1biwgMyBEZWMgMjAyMyAxMDoxMzo1MSAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIFtJRkNdW1J1
YnldIEFkZCBzdXBwb3J0IGZvciBicmVha2FibGUgcnVieSBiYXNlcwogaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2NTc1MgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCgpMZXQncyBiZSBtb3JlIHJlbGF4ZWQgYWJvdXQgd2hlcmUgd2UgY2FuIGhhdmUgYSBsaW5l
IGJyZWFrIG9wcG9ydHVuaXR5IGluc2lkZSBydWJ5IGJveGVzLgoKYmVmb3JlL2FmdGVyIHJ1Ynkg
Ym94IC0+IHllcyAoc2VlIEZJWE1FIGZvciBzb21lIHNwZWNpYWwgY2hhcmFjdGVycykKYmV0d2Vl
biBydWJ5IHN0YXJ0L2VuZCBhbmQgcnVieSBiYXNlIHN0YXIvZW5kIC0+IG5vCmJldHdlZW4gcnVi
eSBzdGFydC9lbmQgYW5kIGFkamFjZW50IHJ1YnkgY29udGVudCAtPiBubyAodGhpcyBpcyBzaW1p
bGFyIHRvIDxzcGFuPm5vX2JyZWFrKQppbnNpZGUgcnVieSBiYXNlIC0+IHllcwpiZXR3ZWVuIHJ1
YnkgYmFzZXMgLT4geWVzCgpJbiB0aGlzIHBhdGNoCi0gcmVtb3ZlIGNvZGUgZm9yIG9sZCBiZWhh
dmlvciB3aGVyZSBydWJ5IGJhc2VzIHdoZXJlIGhhbmRsZWQgYXRvbWljIGZyb20gbGluZSBicmVh
a2luZyBwb2ludCBvZiB2aWV3Ci0gZW5zdXJlIHdlIGRvbid0IGJyZWFrIHdoZW4gYW5ub3RhdGlv
biB3b3VsZCBvdmVyZmxvdyAoc2VlIG1pbmltdW1SZXF1aXJlZFdpZHRoKQoKKiBTb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVDb250ZW50QnJlYWtl
ci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUNvbnRlbnRCcmVha2VyOjpDb250aW51b3Vz
Q29udGVudDo6cmVzZXQpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUNvbnRlbnRCcmVha2VyLmg6CihXZWJDb3JlOjpMYXlvdXQ6OklubGlu
ZUNvbnRlbnRCcmVha2VyOjpDb250aW51b3VzQ29udGVudDo6bWluaW11bVJlcXVpcmVkV2lkdGgg
Y29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVDb250ZW50QnJlYWtlcjo6Q29udGludW91
c0NvbnRlbnQ6OnNldE1pbmltdW1SZXF1aXJlZFdpZHRoKToKKiBTb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nVXRpbHMuY3BwOgoo
V2ViQ29yZTo6TGF5b3V0Ojppc0F0U29mdFdyYXBPcHBvcnR1bml0eSk6CihXZWJDb3JlOjpMYXlv
dXQ6OklubGluZUZvcm1hdHRpbmdVdGlsczo6bmV4dFdyYXBPcHBvcnR1bml0eSk6CiogU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxk
ZXIuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lQ2FuZGlkYXRlOjpJbmxpbmVDb250ZW50Ojpj
b250aW51b3VzQ29udGVudCBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVDYW5kaWRhdGU6
OklubGluZUNvbnRlbnQ6OmFwcGVuZHRyYWlsaW5nV29yZEJyZWFrT3Bwb3J0dW5pdHkpOgooV2Vi
Q29yZTo6TGF5b3V0OjpMaW5lQ2FuZGlkYXRlOjpJbmxpbmVDb250ZW50Ojppc0VtcHR5IGNvbnN0
KToKKFdlYkNvcmU6OkxheW91dDo6TGluZUNhbmRpZGF0ZTo6SW5saW5lQ29udGVudDo6c2V0TWlu
aW11bVJlcXVpcmVkV2lkdGgpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lQ2FuZGlkYXRlOjpJbmxp
bmVDb250ZW50OjpyZXNldCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjpjYW5kaWRh
dGVDb250ZW50Rm9yTGluZSk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjpoYW5kbGVJ
bmxpbmVDb250ZW50KToKKFdlYkNvcmU6OkxheW91dDo6TGluZUNhbmRpZGF0ZTo6SW5saW5lQ29u
dGVudDo6cnVieUNvbnRhaW5lclJhbmdlIGNvbnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6OkxheW91
dDo6TGluZUNhbmRpZGF0ZTo6SW5saW5lQ29udGVudDo6YXBwZW5kUnVieUNvbnRhaW5lclJhbmdl
KTogRGVsZXRlZC4KKFdlYkNvcmU6OkxheW91dDo6TGluZUNhbmRpZGF0ZTo6SW5saW5lQ29udGVu
dDo6aXNSdWJ5IGNvbnN0KTogRGVsZXRlZC4KKFdlYkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6
OmhhbmRsZVJ1YnlDb250ZW50KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5oOgoqIFNvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxh
eUNvbnRlbnRCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRGlzcGxheUNvbnRl
bnRCdWlsZGVyOjphcHBlbmRTcGFubmluZ0lubGluZUJveERpc3BsYXlCb3gpOgoqIFNvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3J1YnkvUnVieUZvcm1hdHRp
bmdDb250ZXh0LmNwcDoKKFdlYkNvcmU6OkxheW91dDo6UnVieUZvcm1hdHRpbmdDb250ZXh0Ojpp
c0F0U29mdFdyYXBPcHBvcnR1bml0eSk6CihXZWJDb3JlOjpMYXlvdXQ6OlJ1YnlGb3JtYXR0aW5n
Q29udGV4dDo6YW5ub3RhdGlvbkJveExvZ2ljYWxXaWR0aCk6CiogU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvcnVieS9SdWJ5Rm9ybWF0dGluZ0NvbnRleHQu
aDoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaDoKKFdlYkNv
cmU6OkxheW91dDo6Qm94Ojppc1J1YnlJbmxpbmVCb3ggY29uc3QpOgotLS0KIC4uLi9pbmxpbmUv
SW5saW5lQ29udGVudEJyZWFrZXIuY3BwICAgICAgICAgICB8ICAxICsKIC4uLi9pbmxpbmUvSW5s
aW5lQ29udGVudEJyZWFrZXIuaCAgICAgICAgICAgICB8ICAzICsKIC4uLi9pbmxpbmUvSW5saW5l
Rm9ybWF0dGluZ1V0aWxzLmNwcCAgICAgICAgICB8IDE2ICsrLS0tCiAuLi4vaW5saW5lL0lubGlu
ZUxpbmVCdWlsZGVyLmNwcCAgICAgICAgICAgICAgfCA2MSArKysrKysrLS0tLS0tLS0tLS0tCiAu
Li4vaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmggICAgICAgICAgICAgICAgfCAgMSAtCiAuLi4v
ZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwICAgfCAgMiAtCiAuLi4vaW5s
aW5lL3J1YnkvUnVieUZvcm1hdHRpbmdDb250ZXh0LmNwcCAgICAgfCA1MyArKysrKysrKysrKysr
KysrCiAuLi4vaW5saW5lL3J1YnkvUnVieUZvcm1hdHRpbmdDb250ZXh0LmggICAgICAgfCAgMyAr
CiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaCAgfCAgMSArCiA5
IGZpbGVzIGNoYW5nZWQsIDkxIGluc2VydGlvbnMoKyksIDUwIGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lu
bGluZUNvbnRlbnRCcmVha2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRCcmVha2VyLmNwcAppbmRleCBlMWZjNWJmMDQ1
OTMuLmM0MzMxMTRhMDEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lQ29udGVudEJyZWFrZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRC
cmVha2VyLmNwcApAQCAtODc2LDYgKzg3Niw3IEBAIHZvaWQgSW5saW5lQ29udGVudEJyZWFrZXI6
OkNvbnRpbnVvdXNDb250ZW50OjpyZXNldCgpCiAgICAgbV9sZWFkaW5nVHJpbW1hYmxlV2lkdGgg
PSB7IH07CiAgICAgbV90cmFpbGluZ1RyaW1tYWJsZVdpZHRoID0geyB9OwogICAgIG1faGFuZ2lu
Z0NvbnRlbnRXaWR0aCA9IHsgfTsKKyAgICBtX21pbmltdW1SZXF1aXJlZFdpZHRoID0geyB9Owog
ICAgIG1fcnVucy5jbGVhcigpOwogICAgIG1faGFzVGV4dENvbnRlbnQgPSBmYWxzZTsKICAgICBt
X2lzVGV4dE9ubHlDb250ZW50ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRCcmVha2VyLmggYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVDb250
ZW50QnJlYWtlci5oCmluZGV4IDczNTIxZjBjYjM2Mi4uMzUwYWFjY2RiZjE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVD
b250ZW50QnJlYWtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZUNvbnRlbnRCcmVha2VyLmgKQEAgLTgxLDYgKzgxLDcgQEAgcHVi
bGljOgogICAgIC8vIHNlZSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLXRleHQtMy8jbGlu
ZS1icmVhay1kZXRhaWxzCiAgICAgc3RydWN0IENvbnRpbnVvdXNDb250ZW50IHsKICAgICAgICAg
SW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxX
aWR0aDsgfQorICAgICAgICBzdGQ6Om9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IG1pbmltdW1S
ZXF1aXJlZFdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9taW5pbXVtUmVxdWlyZWRXaWR0aDsgfQog
ICAgICAgICBJbmxpbmVMYXlvdXRVbml0IGxlYWRpbmdUcmltbWFibGVXaWR0aCgpIGNvbnN0IHsg
cmV0dXJuIG1fbGVhZGluZ1RyaW1tYWJsZVdpZHRoOyB9CiAgICAgICAgIElubGluZUxheW91dFVu
aXQgdHJhaWxpbmdUcmltbWFibGVXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdUcmlt
bWFibGVXaWR0aDsgfQogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IGhhbmdpbmdDb250ZW50V2lk
dGgoKSBjb25zdCB7IHJldHVybiBtX2hhbmdpbmdDb250ZW50V2lkdGgudmFsdWVfb3IoMC5mKTsg
fQpAQCAtOTQsNiArOTUsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZvaWQgYXBwZW5kKGNvbnN0IElu
bGluZUl0ZW0mLCBjb25zdCBSZW5kZXJTdHlsZSYsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdp
ZHRoKTsKICAgICAgICAgdm9pZCBhcHBlbmRUZXh0Q29udGVudChjb25zdCBJbmxpbmVUZXh0SXRl
bSYsIGNvbnN0IFJlbmRlclN0eWxlJiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpOwog
ICAgICAgICB2b2lkIHNldEhhbmdpbmdDb250ZW50V2lkdGgoSW5saW5lTGF5b3V0VW5pdCBsb2dp
Y2FsV2lkdGgpIHsgbV9oYW5naW5nQ29udGVudFdpZHRoID0gbG9naWNhbFdpZHRoOyB9CisgICAg
ICAgIHZvaWQgc2V0TWluaW11bVJlcXVpcmVkV2lkdGgoSW5saW5lTGF5b3V0VW5pdCBtaW5pbXVt
UmVxdWlyZWRXaWR0aCkgeyBtX21pbmltdW1SZXF1aXJlZFdpZHRoID0gbWluaW11bVJlcXVpcmVk
V2lkdGg7IH0KICAgICAgICAgdm9pZCByZXNldCgpOwogCiAgICAgICAgIHN0cnVjdCBSdW4gewpA
QCAtMTE3LDYgKzExOSw3IEBAIHB1YmxpYzoKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBtX2xl
YWRpbmdUcmltbWFibGVXaWR0aCB7IDAuZiB9OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG1f
dHJhaWxpbmdUcmltbWFibGVXaWR0aCB7IDAuZiB9OwogICAgICAgICBzdGQ6Om9wdGlvbmFsPElu
bGluZUxheW91dFVuaXQ+IG1faGFuZ2luZ0NvbnRlbnRXaWR0aCB7IH07CisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gbV9taW5pbXVtUmVxdWlyZWRXaWR0aCB7IH07CiAg
ICAgICAgIGJvb2wgbV9oYXNUZXh0Q29udGVudCB7IGZhbHNlIH07CiAgICAgICAgIGJvb2wgbV9p
c1RleHRPbmx5Q29udGVudCB7IHRydWUgfTsKICAgICAgICAgYm9vbCBtX2lzRnVsbHlUcmltbWFi
bGUgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdVdGls
cy5jcHAKaW5kZXggZTNmZGUyNWEzYTI1Li43NDQzOWYzMDZkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRp
bmdVdGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1V0aWxzLmNwcApAQCAtMzc1LDggKzM3NSw4IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBpc0F0U29mdFdyYXBPcHBvcnR1bml0eShjb25zdCBJbmxpbmVJdGVt
JiBwcmV2aW91cywgY29uc3QgSW5sCiAgICAgLy8gZS5nLiBbaW5saW5lIGJveCBzdGFydF1bcHJp
b3JfY29udGludW91c19jb250ZW50XVtpbmxpbmUgYm94IGVuZF0gKDxzcGFuPnByaW9yX2NvbnRp
bnVvdXNfY29udGVudDwvc3Bhbj4pCiAgICAgLy8gQW4gaW5jb21pbmcgPGltZz4gYm94IHdvdWxk
IGVuYWJsZSB1cyB0byBjb21taXQgdGhlICI8c3Bhbj5wcmlvcl9jb250aW51b3VzX2NvbnRlbnQ8
L3NwYW4+IiBjb250ZW50CiAgICAgLy8gYnV0IGFuIGluY29taW5nIHRleHQgY29udGVudCB3b3Vs
ZCBub3QgbmVjZXNzYXJpbHkuCi0gICAgQVNTRVJUKHByZXZpb3VzLmlzVGV4dCgpIHx8IHByZXZp
b3VzLmlzQm94KCkpOwotICAgIEFTU0VSVChuZXh0LmlzVGV4dCgpIHx8IG5leHQuaXNCb3goKSk7
CisgICAgQVNTRVJUKHByZXZpb3VzLmlzVGV4dCgpIHx8IHByZXZpb3VzLmlzQm94KCkgfHwgcHJl
dmlvdXMubGF5b3V0Qm94KCkuaXNSdWJ5SW5saW5lQm94KCkpOworICAgIEFTU0VSVChuZXh0Lmlz
VGV4dCgpIHx8IG5leHQuaXNCb3goKSB8fCBuZXh0LmxheW91dEJveCgpLmlzUnVieUlubGluZUJv
eCgpKTsKICAgICBpZiAocHJldmlvdXMuaXNUZXh0KCkgJiYgbmV4dC5pc1RleHQoKSkgewogICAg
ICAgICBhdXRvJiBjdXJyZW50SW5saW5lVGV4dEl0ZW0gPSBkb3duY2FzdDxJbmxpbmVUZXh0SXRl
bT4ocHJldmlvdXMpOwogICAgICAgICBhdXRvJiBuZXh0SW5saW5lVGV4dEl0ZW0gPSBkb3duY2Fz
dDxJbmxpbmVUZXh0SXRlbT4obmV4dCk7CkBAIC00MTEsNiArNDExLDkgQEAgc3RhdGljIGlubGlu
ZSBib29sIGlzQXRTb2Z0V3JhcE9wcG9ydHVuaXR5KGNvbnN0IElubGluZUl0ZW0mIHByZXZpb3Vz
LCBjb25zdCBJbmwKICAgICAgICAgLy8gVGhlIGxpbmUgYnJlYWtpbmcgYmVoYXZpb3Igb2YgYSBy
ZXBsYWNlZCBlbGVtZW50IG9yIG90aGVyIGF0b21pYyBpbmxpbmUgaXMgZXF1aXZhbGVudCB0byBh
biBpZGVvZ3JhcGhpYyBjaGFyYWN0ZXIuCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKyAg
ICBpZiAocHJldmlvdXMubGF5b3V0Qm94KCkuaXNSdWJ5SW5saW5lQm94KCkgfHwgbmV4dC5sYXlv
dXRCb3goKS5pc1J1YnlJbmxpbmVCb3goKSkKKyAgICAgICAgcmV0dXJuIFJ1YnlGb3JtYXR0aW5n
Q29udGV4dDo6aXNBdFNvZnRXcmFwT3Bwb3J0dW5pdHkocHJldmlvdXMsIG5leHQpOworCiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC00MzUsOSArNDM4
LDggQEAgc2l6ZV90IElubGluZUZvcm1hdHRpbmdVdGlsczo6bmV4dFdyYXBPcHBvcnR1bml0eShz
aXplX3Qgc3RhcnRJbmRleCwgY29uc3QgSW5saW4KICAgICAgICAgICAgIGZvciAoKytpbmRleDsg
aW5kZXggPCBsYXlvdXRSYW5nZS5lbmRJbmRleCgpICYmIGlubGluZUl0ZW1MaXN0W2luZGV4XS5p
c0lubGluZUJveEVuZCgpOyArK2luZGV4KSB7IH0KICAgICAgICAgICAgIHJldHVybiBpbmRleDsK
ICAgICAgICAgfQotICAgICAgICBpZiAoY3VycmVudEl0ZW0uaXNJbmxpbmVCb3hTdGFydCgpIHx8
IGN1cnJlbnRJdGVtLmlzSW5saW5lQm94RW5kKCkpIHsKLSAgICAgICAgICAgIGlmIChhdXRvIG5l
eHRXcmFwT3Bwb3J0dW5pdHlGb3JSdWJ5ID0gUnVieUZvcm1hdHRpbmdDb250ZXh0OjpuZXh0V3Jh
cE9wcG9ydHVuaXR5KGluZGV4LCBwcmV2aW91c0lubGluZUl0ZW1JbmRleCwgbGF5b3V0UmFuZ2Us
IGlubGluZUl0ZW1MaXN0KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gKm5leHRXcmFwT3Bwb3J0
dW5pdHlGb3JSdWJ5OworICAgICAgICBhdXRvIGlzTm9uUnVieUlubGluZUJveCA9IChjdXJyZW50
SXRlbS5pc0lubGluZUJveFN0YXJ0KCkgfHwgY3VycmVudEl0ZW0uaXNJbmxpbmVCb3hFbmQoKSkg
JiYgIWN1cnJlbnRJdGVtLmxheW91dEJveCgpLmlzUnVieUlubGluZUJveCgpOworICAgICAgICBp
ZiAoaXNOb25SdWJ5SW5saW5lQm94KSB7CiAgICAgICAgICAgICAvLyBOZWVkIHRvIHNlZSB3aGF0
IGNvbWVzIG5leHQgdG8gZGVjaWRlLgogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0K
QEAgLTQ0NSw3ICs0NDcsNyBAQCBzaXplX3QgSW5saW5lRm9ybWF0dGluZ1V0aWxzOjpuZXh0V3Jh
cE9wcG9ydHVuaXR5KHNpemVfdCBzdGFydEluZGV4LCBjb25zdCBJbmxpbgogICAgICAgICAgICAg
Ly8gVGhpcyBpdGVtIGlzIGludmlzaWJsZSB0byBsaW5lIGJyZWFraW5nLiBOZWVkIHRvIHByZXRl
bmQgaXQncyBub3QgaGVyZS4KICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAg
ICAgIEFTU0VSVChjdXJyZW50SXRlbS5pc1RleHQoKSB8fCBjdXJyZW50SXRlbS5pc0JveCgpIHx8
IGN1cnJlbnRJdGVtLmlzRmxvYXQoKSk7CisgICAgICAgIEFTU0VSVChjdXJyZW50SXRlbS5pc1Rl
eHQoKSB8fCBjdXJyZW50SXRlbS5pc0JveCgpIHx8IGN1cnJlbnRJdGVtLmlzRmxvYXQoKSB8fCBj
dXJyZW50SXRlbS5sYXlvdXRCb3goKS5pc1J1YnlJbmxpbmVCb3goKSk7CiAgICAgICAgIGlmIChj
dXJyZW50SXRlbS5pc0Zsb2F0KCkpIHsKICAgICAgICAgICAgIC8vIFdoaWxlIGZsb2F0cyBhcmUg
bm90IHBhcnQgb2YgdGhlIGlubGluZSBjb250ZW50IGFuZCB0aGV5IGFyZSBub3Qgc3VwcG9zZWQg
dG8gaW50cm9kdWNlIHNvZnQgd3JhcCBvcHBvcnR1bml0aWVzLAogICAgICAgICAgICAgLy8gZS5n
LiBbdGV4dF1bZmxvYXQgYm94XVtmbG9hdCBib3hdW3RleHRdW2Zsb2F0IGJveF1bdGV4dF0gaXMg
ZXNzZW50aWFsbHkganVzdCBbdGV4dF1bdGV4dF1bdGV4dF0KQEAgLTQ4OCw3ICs0OTAsNyBAQCBz
aXplX3QgSW5saW5lRm9ybWF0dGluZ1V0aWxzOjpuZXh0V3JhcE9wcG9ydHVuaXR5KHNpemVfdCBz
dGFydEluZGV4LCBjb25zdCBJbmxpbgogICAgICAgICAgICAgLy8gU29mdCB3cmFwIG9wcG9ydHVu
aXR5IGlzIGF0IHRoZSBmaXJzdCBpbmxpbmUgYm94IHRoYXQgZW5jbG9zZXMgdGhlIHRyYWlsaW5n
IGNvbnRlbnQuCiAgICAgICAgICAgICBmb3IgKGF1dG8gY2FuZGlkYXRlSW5kZXggPSBzdGFydCAr
IDE7IGNhbmRpZGF0ZUluZGV4IDwgZW5kOyArK2NhbmRpZGF0ZUluZGV4KSB7CiAgICAgICAgICAg
ICAgICAgYXV0byYgaW5saW5lSXRlbSA9IGlubGluZUl0ZW1MaXN0W2NhbmRpZGF0ZUluZGV4XTsK
LSAgICAgICAgICAgICAgICBBU1NFUlQoKGlubGluZUl0ZW0uaXNJbmxpbmVCb3hTdGFydCgpIHx8
IGlubGluZUl0ZW0uaXNJbmxpbmVCb3hFbmQoKSB8fCBpbmxpbmVJdGVtLmlzT3BhcXVlKCkpICYm
ICFpbmxpbmVJdGVtLmxheW91dEJveCgpLmlzUnVieSgpKTsKKyAgICAgICAgICAgICAgICBBU1NF
UlQoaW5saW5lSXRlbS5pc0lubGluZUJveFN0YXJ0KCkgfHwgaW5saW5lSXRlbS5pc0lubGluZUJv
eEVuZCgpIHx8IGlubGluZUl0ZW0uaXNPcGFxdWUoKSk7CiAgICAgICAgICAgICAgICAgaWYgKGlu
bGluZUl0ZW0uaXNJbmxpbmVCb3hTdGFydCgpKQogICAgICAgICAgICAgICAgICAgICBpbmxpbmVC
b3hTdGFjay5hcHBlbmQoeyAmaW5saW5lSXRlbS5sYXlvdXRCb3goKSwgY2FuZGlkYXRlSW5kZXgg
fSk7CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaW5saW5lSXRlbS5pc0lubGluZUJveEVuZCgp
ICYmICFpbmxpbmVCb3hTdGFjay5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVM
aW5lQnVpbGRlci5jcHAKaW5kZXggMmZkOGY3Njg1NGI1Li4wMTA1ZWQ1NWUzNGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUxpbmVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5jcHAKQEAgLTE2MiwxNyArMTYyLDE0IEBA
IHN0cnVjdCBMaW5lQ2FuZGlkYXRlIHsKIAogICAgIHN0cnVjdCBJbmxpbmVDb250ZW50IHsKICAg
ICAgICAgY29uc3QgSW5saW5lQ29udGVudEJyZWFrZXI6OkNvbnRpbnVvdXNDb250ZW50JiBjb250
aW51b3VzQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGludW91c0NvbnRlbnQ7IH0KLSAg
ICAgICAgY29uc3QgSW5saW5lSXRlbVJhbmdlJiBydWJ5Q29udGFpbmVyUmFuZ2UoKSBjb25zdCB7
IHJldHVybiBtX3J1YnlDb250YWluZXJSYW5nZTsgfQogICAgICAgICBjb25zdCBJbmxpbmVJdGVt
KiB0cmFpbGluZ0xpbmVCcmVhaygpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdMaW5lQnJlYWs7
IH0KICAgICAgICAgY29uc3QgSW5saW5lSXRlbSogdHJhaWxpbmdXb3JkQnJlYWtPcHBvcnR1bml0
eSgpIGNvbnN0IHsgcmV0dXJuIG1fdHJhaWxpbmdXb3JkQnJlYWtPcHBvcnR1bml0eTsgfQogCiAg
ICAgICAgIHZvaWQgYXBwZW5kSW5saW5lSXRlbShjb25zdCBJbmxpbmVJdGVtJiwgY29uc3QgUmVu
ZGVyU3R5bGUmLCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCk7CiAgICAgICAgIHZvaWQg
YXBwZW5kVHJhaWxpbmdMaW5lQnJlYWsoY29uc3QgSW5saW5lSXRlbSYgbGluZUJyZWFrSXRlbSkg
eyBtX3RyYWlsaW5nTGluZUJyZWFrID0gJmxpbmVCcmVha0l0ZW07IH0KICAgICAgICAgdm9pZCBh
cHBlbmR0cmFpbGluZ1dvcmRCcmVha09wcG9ydHVuaXR5KGNvbnN0IElubGluZUl0ZW0mIHdvcmRC
cmVha0l0ZW0pIHsgbV90cmFpbGluZ1dvcmRCcmVha09wcG9ydHVuaXR5ID0gJndvcmRCcmVha0l0
ZW07IH0KLSAgICAgICAgdm9pZCBhcHBlbmRSdWJ5Q29udGFpbmVyUmFuZ2UoY29uc3QgSW5saW5l
SXRlbVJhbmdlJiBydWJ5UmFuZ2UpIHsgbV9ydWJ5Q29udGFpbmVyUmFuZ2UgPSBydWJ5UmFuZ2U7
IH0KICAgICAgICAgdm9pZCByZXNldCgpOwogICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7
IHJldHVybiBtX2NvbnRpbnVvdXNDb250ZW50LnJ1bnMoKS5pc0VtcHR5KCkgJiYgIXRyYWlsaW5n
V29yZEJyZWFrT3Bwb3J0dW5pdHkoKSAmJiAhdHJhaWxpbmdMaW5lQnJlYWsoKTsgfQotICAgICAg
ICBib29sIGlzUnVieSgpIGNvbnN0IHsgcmV0dXJuICFtX3J1YnlDb250YWluZXJSYW5nZS5pc0Vt
cHR5KCk7IH0KIAogICAgICAgICB2b2lkIHNldEhhc1RyYWlsaW5nU29mdFdyYXBPcHBvcnR1bml0
eShib29sIGhhc1RyYWlsaW5nU29mdFdyYXBPcHBvcnR1bml0eSkgeyBtX2hhc1RyYWlsaW5nU29m
dFdyYXBPcHBvcnR1bml0eSA9IGhhc1RyYWlsaW5nU29mdFdyYXBPcHBvcnR1bml0eTsgfQogICAg
ICAgICBib29sIGhhc1RyYWlsaW5nU29mdFdyYXBPcHBvcnR1bml0eSgpIGNvbnN0IHsgcmV0dXJu
IG1faGFzVHJhaWxpbmdTb2Z0V3JhcE9wcG9ydHVuaXR5OyB9CkBAIC0xODIsOSArMTc5LDEwIEBA
IHN0cnVjdCBMaW5lQ2FuZGlkYXRlIHsKICAgICAgICAgdm9pZCBzZXRBY2N1bXVsYXRlZENsb25l
ZERlY29yYXRpb25FbmQoSW5saW5lTGF5b3V0VW5pdCBhY2N1bXVsYXRlZFdpZHRoKSB7IG1fYWNj
dW11bGF0ZWRDbG9uZWREZWNvcmF0aW9uRW5kID0gYWNjdW11bGF0ZWRXaWR0aDsgfQogICAgICAg
ICBJbmxpbmVMYXlvdXRVbml0IGFjY3VtdWxhdGVkQ2xvbmVkRGVjb3JhdGlvbkVuZCgpIGNvbnN0
IHsgcmV0dXJuIG1fYWNjdW11bGF0ZWRDbG9uZWREZWNvcmF0aW9uRW5kOyB9CiAKKyAgICAgICAg
dm9pZCBzZXRNaW5pbXVtUmVxdWlyZWRXaWR0aChJbmxpbmVMYXlvdXRVbml0IG1pbmltdW1SZXF1
aXJlZFdpZHRoKSB7IG1fY29udGludW91c0NvbnRlbnQuc2V0TWluaW11bVJlcXVpcmVkV2lkdGgo
bWluaW11bVJlcXVpcmVkV2lkdGgpOyB9CisKICAgICBwcml2YXRlOgogICAgICAgICBJbmxpbmVD
b250ZW50QnJlYWtlcjo6Q29udGludW91c0NvbnRlbnQgbV9jb250aW51b3VzQ29udGVudDsKLSAg
ICAgICAgSW5saW5lSXRlbVJhbmdlIG1fcnVieUNvbnRhaW5lclJhbmdlIHsgfTsKICAgICAgICAg
Y29uc3QgSW5saW5lSXRlbSogbV90cmFpbGluZ0xpbmVCcmVhayB7IG51bGxwdHIgfTsKICAgICAg
ICAgY29uc3QgSW5saW5lSXRlbSogbV90cmFpbGluZ1dvcmRCcmVha09wcG9ydHVuaXR5IHsgbnVs
bHB0ciB9OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG1fYWNjdW11bGF0ZWRDbG9uZWREZWNv
cmF0aW9uRW5kIHsgMC5mIH07CkBAIC0yMTUsNyArMjEzLDYgQEAgaW5saW5lIHZvaWQgTGluZUNh
bmRpZGF0ZTo6SW5saW5lQ29udGVudDo6cmVzZXQoKQogICAgIG1fdHJhaWxpbmdMaW5lQnJlYWsg
PSB7IH07CiAgICAgbV90cmFpbGluZ1dvcmRCcmVha09wcG9ydHVuaXR5ID0geyB9OwogICAgIG1f
YWNjdW11bGF0ZWRDbG9uZWREZWNvcmF0aW9uRW5kID0geyB9OwotICAgIG1fcnVieUNvbnRhaW5l
clJhbmdlID0geyB9OwogfQogCiBpbmxpbmUgdm9pZCBMaW5lQ2FuZGlkYXRlOjpyZXNldCgpCkBA
IC02MTcsMjAgKzYxNCw2IEBAIHZvaWQgTGluZUJ1aWxkZXI6OmNhbmRpZGF0ZUNvbnRlbnRGb3JM
aW5lKExpbmVDYW5kaWRhdGUmIGxpbmVDYW5kaWRhdGUsIHNpemVfdCBjCiAgICAgICAgICsrY3Vy
cmVudElubGluZUl0ZW1JbmRleDsKICAgICB9CiAKLSAgICBhdXRvIGFwcGVuZFJ1YnlDb250YWlu
ZXJJZkFwcGxpY2FibGUgPSBbJl0gewotICAgICAgICBhdXRvIGlzUnVieUNvbnRlbnQgPSBjdXJy
ZW50SW5saW5lSXRlbUluZGV4IDwgbGF5b3V0UmFuZ2UuZW5kSW5kZXgoKSAmJiAobV9pbmxpbmVJ
dGVtTGlzdFtjdXJyZW50SW5saW5lSXRlbUluZGV4XS5sYXlvdXRCb3goKS5pc1J1YnkoKSB8fCBt
X2lubGluZUl0ZW1MaXN0W2N1cnJlbnRJbmxpbmVJdGVtSW5kZXhdLmxheW91dEJveCgpLmlzUnVi
eUJhc2UoKSk7Ci0gICAgICAgIGlmICghaXNSdWJ5Q29udGVudCkKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgLy8gV2UgbXVzdCBiZSBhdCBhIHJ1YnkgY29udGFpbmVyL2Jhc2Ug
YW5kIHdlIHNob3VsZCBsZXQgdGhlIHJ1YnkgZm9ybWF0dGluZyBjb250ZXh0IGhhbmRsZSB0aGUg
cmVzdCBvZiB0aGUgcnVieSBjb250ZW50LgotICAgICAgICBBU1NFUlQobV9pbmxpbmVJdGVtTGlz
dFtzb2Z0V3JhcE9wcG9ydHVuaXR5SW5kZXggLSAxXS5pc0lubGluZUJveEVuZCgpICYmIG1faW5s
aW5lSXRlbUxpc3Rbc29mdFdyYXBPcHBvcnR1bml0eUluZGV4IC0gMV0ubGF5b3V0Qm94KCkuaXNS
dWJ5KCkpOwotICAgICAgICAvLyBSdWJ5IGJhc2UgY29udGVudCBpcyBoYW5kbGVkIGFzIG9uZSBh
dG9taWMgbGluZSBjYW5kaWRhdGUgd2hlcmUgcnVieSBmb3JtYXR0aW5nIGNvbnRleHQgdGFrZXMg
Y2FyZSBvZiB0aGUgaW50ZXJuYWwgZGV0YWlscy4KLSAgICAgICAgLy8gTm90ZSB0aGF0IHJ1Ynkg
Y29udGVudCBpcyBwbGFjZWQgb24gdGhlIGxpbmUgYXMgcmVndWFsYXIgaW5saW5lIGNvbnRlbnQg
YnkgdGhlIHJ1YnkgZm9ybWF0dGluZyBjb250ZXh0LgotICAgICAgICBsaW5lQ2FuZGlkYXRlLmlu
bGluZUNvbnRlbnQuYXBwZW5kUnVieUNvbnRhaW5lclJhbmdlKHsgeyBjdXJyZW50SW5saW5lSXRl
bUluZGV4LCB7IH0gfSwgeyBzb2Z0V3JhcE9wcG9ydHVuaXR5SW5kZXgsIHsgfSB9IH0pOwotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9OwotICAgIGlmIChhcHBlbmRSdWJ5Q29udGFpbmVySWZB
cHBsaWNhYmxlKCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIGF1dG8gZmlyc3RJbmxpbmVUZXh0
SXRlbUluZGV4ID0gc3RkOjpvcHRpb25hbDxzaXplX3Q+IHsgfTsKICAgICBhdXRvIGxhc3RJbmxp
bmVUZXh0SXRlbUluZGV4ID0gc3RkOjpvcHRpb25hbDxzaXplX3Q+IHsgfTsKICAgICBIYXNoU2V0
PGNvbnN0IEJveCo+IGlubGluZUJveExpc3RXaXRoQ2xvbmVkRGVjb3JhdGlvbkVuZDsKQEAgLTY1
Niw5ICs2MzksMTUgQEAgdm9pZCBMaW5lQnVpbGRlcjo6Y2FuZGlkYXRlQ29udGVudEZvckxpbmUo
TGluZUNhbmRpZGF0ZSYgbGluZUNhbmRpZGF0ZSwgc2l6ZV90IGMKICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICB9CiAgICAgICAgIGlmIChpbmxpbmVJdGVtLmlzSW5saW5lQm94U3RhcnQo
KSB8fCBpbmxpbmVJdGVtLmlzSW5saW5lQm94RW5kKCkpIHsKKyAgICAgICAgICAgIGF1dG8mIGxh
eW91dEJveCA9IGlubGluZUl0ZW0ubGF5b3V0Qm94KCk7CisgICAgICAgICAgICBpZiAoaW5saW5l
SXRlbS5pc0lubGluZUJveFN0YXJ0KCkgJiYgbGF5b3V0Qm94LmlzUnVieUJhc2UoKSkgeworICAg
ICAgICAgICAgICAgIC8vIFRoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBydWJ5IGJhc2UgcGVyL2Fu
bm90YXRpb24gY2FuZGlkYXRlIGNvbnRlbnQgYXMgd2UgYWxsb3cgbGluZSBicmVha2luZyBiZXR3
ZWVuIGJhc2VzLgorICAgICAgICAgICAgICAgIEFTU0VSVCghbGluZUNhbmRpZGF0ZS5pbmxpbmVD
b250ZW50LmNvbnRpbnVvdXNDb250ZW50KCkubWluaW11bVJlcXVpcmVkV2lkdGgoKSk7CisgICAg
ICAgICAgICAgICAgaWYgKGF1dG8gbWluaW11bVJlcXVpcmVkV2lkdGggPSBSdWJ5Rm9ybWF0dGlu
Z0NvbnRleHQ6OmFubm90YXRpb25Cb3hMb2dpY2FsV2lkdGgobGF5b3V0Qm94LCBmb3JtYXR0aW5n
Q29udGV4dCgpKSkKKyAgICAgICAgICAgICAgICAgICAgbGluZUNhbmRpZGF0ZS5pbmxpbmVDb250
ZW50LnNldE1pbmltdW1SZXF1aXJlZFdpZHRoKCptaW5pbXVtUmVxdWlyZWRXaWR0aCk7CisgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBhdXRvIGxvZ2ljYWxXaWR0aCA9IGZvcm1hdHRpbmdDb250
ZXh0KCkuZm9ybWF0dGluZ1V0aWxzKCkuaW5saW5lSXRlbVdpZHRoKGlubGluZUl0ZW0sIGN1cnJl
bnRMb2dpY2FsUmlnaHQsIGlzRmlyc3RGb3JtYXR0ZWRMaW5lKCkpOwogICAgICAgICAgICAgaWYg
KHN0eWxlLmJveERlY29yYXRpb25CcmVhaygpID09IEJveERlY29yYXRpb25CcmVhazo6Q2xvbmUp
IHsKLSAgICAgICAgICAgICAgICBhdXRvJiBsYXlvdXRCb3ggPSBpbmxpbmVJdGVtLmxheW91dEJv
eCgpOwogICAgICAgICAgICAgICAgIGlmIChpbmxpbmVJdGVtLmlzSW5saW5lQm94U3RhcnQoKSkK
ICAgICAgICAgICAgICAgICAgICAgaW5saW5lQm94TGlzdFdpdGhDbG9uZWREZWNvcmF0aW9uRW5k
LmFkZCgmbGF5b3V0Qm94KTsKICAgICAgICAgICAgICAgICBlbHNlIGlmIChpbmxpbmVCb3hMaXN0
V2l0aENsb25lZERlY29yYXRpb25FbmQuY29udGFpbnMoJmxheW91dEJveCkpCkBAIC05NzQsNyAr
OTYzLDcgQEAgTGluZUJ1aWxkZXI6OlJlc3VsdCBMaW5lQnVpbGRlcjo6aGFuZGxlSW5saW5lQ29u
dGVudChjb25zdCBJbmxpbmVJdGVtUmFuZ2UmIGxheW8KICAgICBhdXRvJiBpbmxpbmVDb250ZW50
ID0gbGluZUNhbmRpZGF0ZS5pbmxpbmVDb250ZW50OwogCiAgICAgYXV0byYgY29udGludW91c0lu
bGluZUNvbnRlbnQgPSBpbmxpbmVDb250ZW50LmNvbnRpbnVvdXNDb250ZW50KCk7Ci0gICAgaWYg
KGNvbnRpbnVvdXNJbmxpbmVDb250ZW50LnJ1bnMoKS5pc0VtcHR5KCkgJiYgIWlubGluZUNvbnRl
bnQuaXNSdWJ5KCkpIHsKKyAgICBpZiAoY29udGludW91c0lubGluZUNvbnRlbnQucnVucygpLmlz
RW1wdHkoKSkgewogICAgICAgICBBU1NFUlQoaW5saW5lQ29udGVudC50cmFpbGluZ0xpbmVCcmVh
aygpIHx8IGlubGluZUNvbnRlbnQudHJhaWxpbmdXb3JkQnJlYWtPcHBvcnR1bml0eSgpKTsKICAg
ICAgICAgcmVzdWx0ID0geyBpbmxpbmVDb250ZW50LnRyYWlsaW5nTGluZUJyZWFrKCkgPyBJbmxp
bmVDb250ZW50QnJlYWtlcjo6SXNFbmRPZkxpbmU6OlllcyA6IElubGluZUNvbnRlbnRCcmVha2Vy
OjpJc0VuZE9mTGluZTo6Tm8gfTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTk5MCwyMSAr
OTc5LDE5IEBAIExpbmVCdWlsZGVyOjpSZXN1bHQgTGluZUJ1aWxkZXI6OmhhbmRsZUlubGluZUNv
bnRlbnQoY29uc3QgSW5saW5lSXRlbVJhbmdlJiBsYXlvCiAgICAgICAgIHJldHVybiBhdmFpbGFi
bGVXaWR0aChpbmxpbmVDb250ZW50LCBtX2xpbmUsIGF2YWlsYWJsZVRvdGFsV2lkdGhGb3JDb250
ZW50KTsKICAgICB9KCk7CiAKLSAgICBhdXRvIGxpbmVHYWluc05ld0NvbnRlbnQgPSB0cnVlOwot
ICAgIGlmICghaW5saW5lQ29udGVudC5pc1J1YnkoKSkgewotICAgICAgICBhdXRvIGxpbmVCcmVh
a2luZ1Jlc3VsdCA9IElubGluZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQgeyBJbmxpbmVDb250ZW50
QnJlYWtlcjo6UmVzdWx0OjpBY3Rpb246OktlZXAsIElubGluZUNvbnRlbnRCcmVha2VyOjpJc0Vu
ZE9mTGluZTo6Tm8sIHsgfSwgeyB9IH07Ci0gICAgICAgIGlmIChjb250aW51b3VzSW5saW5lQ29u
dGVudC5sb2dpY2FsV2lkdGgoKSA+IGF2YWlsYWJsZVdpZHRoRm9yQ2FuZGlkYXRlQ29udGVudCkg
ewotICAgICAgICAgICAgYXV0byBsaW5lSXNDb25zaWRlcmVkQ29udGVudGZ1bCA9IG1fbGluZS5o
YXNDb250ZW50T3JMaXN0TWFya2VyKCkgfHwgaXNMaW5lQ29uc3RyYWluZWRCeUZsb2F0KCkgfHwg
IWNvbnN0cmFpbnRzLmNvbnN0cmFpbmVkU2lkZVNldC5pc0VtcHR5KCk7Ci0gICAgICAgICAgICBh
dXRvIGxpbmVTdGF0dXMgPSBJbmxpbmVDb250ZW50QnJlYWtlcjo6TGluZVN0YXR1cyB7IG1fbGlu
ZS5jb250ZW50TG9naWNhbFJpZ2h0KCksIGF2YWlsYWJsZVdpZHRoRm9yQ2FuZGlkYXRlQ29udGVu
dCwgbV9saW5lLnRyaW1tYWJsZVRyYWlsaW5nV2lkdGgoKSwgbV9saW5lLnRyYWlsaW5nU29mdEh5
cGhlbldpZHRoKCksIG1fbGluZS5pc1RyYWlsaW5nUnVuRnVsbHlUcmltbWFibGUoKSwgbGluZUlz
Q29uc2lkZXJlZENvbnRlbnRmdWwsICFtX3dyYXBPcHBvcnR1bml0eUxpc3QuaXNFbXB0eSgpIH07
Ci0gICAgICAgICAgICBsaW5lQnJlYWtpbmdSZXN1bHQgPSBpbmxpbmVDb250ZW50QnJlYWtlcigp
LnByb2Nlc3NJbmxpbmVDb250ZW50KGNvbnRpbnVvdXNJbmxpbmVDb250ZW50LCBsaW5lU3RhdHVz
KTsKLSAgICAgICAgICAgIGxpbmVHYWluc05ld0NvbnRlbnQgPSBsaW5lQnJlYWtpbmdSZXN1bHQu
YWN0aW9uID09IElubGluZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQ6OkFjdGlvbjo6S2VlcCB8fCBs
aW5lQnJlYWtpbmdSZXN1bHQuYWN0aW9uID09IElubGluZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQ6
OkFjdGlvbjo6QnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgcmVzdWx0ID0gcHJvY2Vzc0xpbmVC
cmVha2luZ1Jlc3VsdChsaW5lQ2FuZGlkYXRlLCBsYXlvdXRSYW5nZSwgbGluZUJyZWFraW5nUmVz
dWx0KTsKLSAgICB9IGVsc2UgewotICAgICAgICByZXN1bHQgPSBoYW5kbGVSdWJ5Q29udGVudChp
bmxpbmVDb250ZW50LnJ1YnlDb250YWluZXJSYW5nZSgpLCBhdmFpbGFibGVXaWR0aEZvckNhbmRp
ZGF0ZUNvbnRlbnQpOwotICAgICAgICBsaW5lR2FpbnNOZXdDb250ZW50ID0gISFyZXN1bHQuY29t
bWl0dGVkQ291bnQudmFsdWU7CisgICAgYXV0byBsaW5lSXNDb25zaWRlcmVkQ29udGVudGZ1bCA9
IG1fbGluZS5oYXNDb250ZW50T3JMaXN0TWFya2VyKCkgfHwgaXNMaW5lQ29uc3RyYWluZWRCeUZs
b2F0KCkgfHwgIWNvbnN0cmFpbnRzLmNvbnN0cmFpbmVkU2lkZVNldC5pc0VtcHR5KCk7CisgICAg
YXV0byBsaW5lQnJlYWtpbmdSZXN1bHQgPSBJbmxpbmVDb250ZW50QnJlYWtlcjo6UmVzdWx0IHsg
SW5saW5lQ29udGVudEJyZWFrZXI6OlJlc3VsdDo6QWN0aW9uOjpLZWVwLCBJbmxpbmVDb250ZW50
QnJlYWtlcjo6SXNFbmRPZkxpbmU6Ok5vLCB7IH0sIHsgfSB9OworCisgICAgaWYgKGF1dG8gbWlu
aW11bVJlcXVpcmVkV2lkdGggPSBjb250aW51b3VzSW5saW5lQ29udGVudC5taW5pbXVtUmVxdWly
ZWRXaWR0aCgpOyBtaW5pbXVtUmVxdWlyZWRXaWR0aCAmJiAqbWluaW11bVJlcXVpcmVkV2lkdGgg
PiBhdmFpbGFibGVXaWR0aEZvckNhbmRpZGF0ZUNvbnRlbnQpIHsKKyAgICAgICAgaWYgKGxpbmVJ
c0NvbnNpZGVyZWRDb250ZW50ZnVsKQorICAgICAgICAgICAgbGluZUJyZWFraW5nUmVzdWx0ID0g
SW5saW5lQ29udGVudEJyZWFrZXI6OlJlc3VsdCB7IElubGluZUNvbnRlbnRCcmVha2VyOjpSZXN1
bHQ6OkFjdGlvbjo6V3JhcCwgSW5saW5lQ29udGVudEJyZWFrZXI6OklzRW5kT2ZMaW5lOjpZZXMs
IHsgfSwgeyB9IH07CisgICAgfSBlbHNlIGlmIChjb250aW51b3VzSW5saW5lQ29udGVudC5sb2dp
Y2FsV2lkdGgoKSA+IGF2YWlsYWJsZVdpZHRoRm9yQ2FuZGlkYXRlQ29udGVudCkgeworICAgICAg
ICBhdXRvIGxpbmVTdGF0dXMgPSBJbmxpbmVDb250ZW50QnJlYWtlcjo6TGluZVN0YXR1cyB7IG1f
bGluZS5jb250ZW50TG9naWNhbFJpZ2h0KCksIGF2YWlsYWJsZVdpZHRoRm9yQ2FuZGlkYXRlQ29u
dGVudCwgbV9saW5lLnRyaW1tYWJsZVRyYWlsaW5nV2lkdGgoKSwgbV9saW5lLnRyYWlsaW5nU29m
dEh5cGhlbldpZHRoKCksIG1fbGluZS5pc1RyYWlsaW5nUnVuRnVsbHlUcmltbWFibGUoKSwgbGlu
ZUlzQ29uc2lkZXJlZENvbnRlbnRmdWwsICFtX3dyYXBPcHBvcnR1bml0eUxpc3QuaXNFbXB0eSgp
IH07CisgICAgICAgIGxpbmVCcmVha2luZ1Jlc3VsdCA9IGlubGluZUNvbnRlbnRCcmVha2VyKCku
cHJvY2Vzc0lubGluZUNvbnRlbnQoY29udGludW91c0lubGluZUNvbnRlbnQsIGxpbmVTdGF0dXMp
OwogICAgIH0KKyAgICByZXN1bHQgPSBwcm9jZXNzTGluZUJyZWFraW5nUmVzdWx0KGxpbmVDYW5k
aWRhdGUsIGxheW91dFJhbmdlLCBsaW5lQnJlYWtpbmdSZXN1bHQpOwogCisgICAgYXV0byBsaW5l
R2FpbnNOZXdDb250ZW50ID0gbGluZUJyZWFraW5nUmVzdWx0LmFjdGlvbiA9PSBJbmxpbmVDb250
ZW50QnJlYWtlcjo6UmVzdWx0OjpBY3Rpb246OktlZXAgfHwgbGluZUJyZWFraW5nUmVzdWx0LmFj
dGlvbiA9PSBJbmxpbmVDb250ZW50QnJlYWtlcjo6UmVzdWx0OjpBY3Rpb246OkJyZWFrOwogICAg
IGlmIChsaW5lR2FpbnNOZXdDb250ZW50KSB7CiAgICAgICAgIC8vIFNvbWV0aW1lcyBpbiBvcmRl
ciB0byBwdXQgdGhpcyBjb250ZW50IG9uIHRoZSBsaW5lLCB3ZSBoYXZlIHRvIGF2b2lkIGFkZGl0
aW9uYWwgZmxvYXQgYm94ZXMgKHdoZW4gdGhlIG5ldyBjb250ZW50IGlzIHRhbGxlciB0aGFuIGFu
eSBwcmV2aW91cyBjb250ZW50IGFuZCB3ZSBoYXZlIHZlcnRpY2FsbHkgc3RhY2tlZCBmbG9hdHMg
b24gdGhpcyBsaW5lKQogICAgICAgICAvLyB3aGljaCBtZWFucyB3ZSBuZWVkIHRvIGFkanVzdCB0
aGUgbGluZSByZWN0IHRvIGFjY29tbW9kYXRlIHN1Y2ggbmV3IGNvbnN0cmFpbnRzLgpAQCAtMTEw
NSwxMiArMTA5Miw2IEBAIExpbmVCdWlsZGVyOjpSZXN1bHQgTGluZUJ1aWxkZXI6OnByb2Nlc3NM
aW5lQnJlYWtpbmdSZXN1bHQoY29uc3QgTGluZUNhbmRpZGF0ZSYKICAgICByZXR1cm4geyBJbmxp
bmVDb250ZW50QnJlYWtlcjo6SXNFbmRPZkxpbmU6Ok5vIH07CiB9CiAKLUxpbmVCdWlsZGVyOjpS
ZXN1bHQgTGluZUJ1aWxkZXI6OmhhbmRsZVJ1YnlDb250ZW50KGNvbnN0IElubGluZUl0ZW1SYW5n
ZSYgcnVieUNvbnRhaW5lclJhbmdlLCBJbmxpbmVMYXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoRm9y
Q2FuZGlkYXRlQ29udGVudCkKLXsKLSAgICBhdXRvIHJlc3VsdCA9IFJ1YnlGb3JtYXR0aW5nQ29u
dGV4dCB7IGZvcm1hdHRpbmdDb250ZXh0KCkgfS5sYXlvdXRJbmxpbmVBeGlzKHJ1YnlDb250YWlu
ZXJSYW5nZSwgbV9pbmxpbmVJdGVtTGlzdCwgbV9saW5lLCBhdmFpbGFibGVXaWR0aEZvckNhbmRp
ZGF0ZUNvbnRlbnQpOwotICAgIHJldHVybiB7IHJlc3VsdC5pc0VuZE9mTGluZSwgeyByZXN1bHQu
Y29tbWl0dGVkQ291bnQsIGZhbHNlIH0gfTsKLX0KLQogdm9pZCBMaW5lQnVpbGRlcjo6Y29tbWl0
UGFydGlhbENvbnRlbnQoY29uc3QgSW5saW5lQ29udGVudEJyZWFrZXI6OkNvbnRpbnVvdXNDb250
ZW50OjpSdW5MaXN0JiBydW5zLCBjb25zdCBJbmxpbmVDb250ZW50QnJlYWtlcjo6UmVzdWx0OjpQ
YXJ0aWFsVHJhaWxpbmdDb250ZW50JiBwYXJ0aWFsVHJhaWxpbmdDb250ZW50KQogewogICAgIGZv
ciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBydW5zLnNpemUoKTsgKytpbmRleCkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lTGluZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmgKaW5kZXggNzNmMmFjNmYxODQzLi5jMWYx
ZjA2Yjg1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuaApAQCAtNTgs
NyArNTgsNiBAQCBwcml2YXRlOgogICAgIGVudW0gTWF5T3ZlckNvbnN0cmFpbkxpbmUgOiB1aW50
OF90IHsgTm8sIFllcywgT25seVdoZW5GaXJzdEZsb2F0T25MaW5lIH07CiAgICAgYm9vbCB0cnlQ
bGFjaW5nRmxvYXRCb3goY29uc3QgQm94JiwgTWF5T3ZlckNvbnN0cmFpbkxpbmUpOwogICAgIFJl
c3VsdCBoYW5kbGVJbmxpbmVDb250ZW50KGNvbnN0IElubGluZUl0ZW1SYW5nZSYgbmVlZHNMYXlv
dXRSYW5nZSwgY29uc3QgTGluZUNhbmRpZGF0ZSYpOwotICAgIFJlc3VsdCBoYW5kbGVSdWJ5Q29u
dGVudChjb25zdCBJbmxpbmVJdGVtUmFuZ2UmIHJ1YnlDb250YWluZXJSYW5nZSwgSW5saW5lTGF5
b3V0VW5pdCBhdmFpbGFibGVXaWR0aEZvckNhbmRpZGF0ZUNvbnRlbnQpOwogICAgIFJlc3VsdCBw
cm9jZXNzTGluZUJyZWFraW5nUmVzdWx0KGNvbnN0IExpbmVDYW5kaWRhdGUmLCBjb25zdCBJbmxp
bmVJdGVtUmFuZ2UmIGxheW91dFJhbmdlLCBjb25zdCBJbmxpbmVDb250ZW50QnJlYWtlcjo6UmVz
dWx0Jik7CiAgICAgc3RydWN0IFJlY3RBbmRGbG9hdENvbnN0cmFpbnRzIHsKICAgICAgICAgSW5s
aW5lUmVjdCBsb2dpY2FsUmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWls
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcAppbmRleCBlZjExOWUyNjlj
MGEuLjIzYTY0YTU1NWFkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcApAQCAtNDA2LDggKzQwNiw2
IEBAIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBlbmRTcGFubmluZ0lubGlu
ZUJveERpc3BsYXlCb3goY29uc3QgTGluZTo6CiAgICAgQVNTRVJUKGxpbmVSdW4ubGF5b3V0Qm94
KCkuaXNJbmxpbmVCb3goKSk7CiAgICAgQVNTRVJUKGlubGluZUJveC5pc0lubGluZUJveCgpKTsK
ICAgICBBU1NFUlQoIWlubGluZUJveC5pc0ZpcnN0Qm94KCkpOwotICAgIC8vIFdlIGRvbid0IGJy
ZWFrIGluc2lkZSBiYXNlcyB5ZXQuCi0gICAgQVNTRVJUKCFsaW5lUnVuLmxheW91dEJveCgpLmlz
UnVieUJhc2UoKSk7CiAKICAgICBpZiAoIWxpbmVIYXNDb250ZW50KSB7CiAgICAgICAgIC8vIFdo
ZW4gYSBzcGFubmluZyBpbmxpbmUgYm94IChlLmcuIDxkaXY+dGV4dDxzcGFuPjxicj48L3NwYW4+
PC9kaXY+KSBsYW5kcyBvbiBhbiBlbXB0eSBsaW5lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9ydWJ5L1J1YnlGb3JtYXR0aW5nQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9ydWJ5L1J1YnlGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggZWI0OTk4NWRiNDA3Li44MDZm
ODgzMGQ4ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL3J1YnkvUnVieUZvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9ydWJ5L1J1YnlGb3JtYXR0
aW5nQ29udGV4dC5jcHAKQEAgLTY0LDYgKzY0LDU5IEBAIFJ1YnlGb3JtYXR0aW5nQ29udGV4dDo6
UnVieUZvcm1hdHRpbmdDb250ZXh0KGNvbnN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0JiBwYXJl
CiB7CiB9CiAKK2Jvb2wgUnVieUZvcm1hdHRpbmdDb250ZXh0Ojppc0F0U29mdFdyYXBPcHBvcnR1
bml0eShjb25zdCBJbmxpbmVJdGVtJiBwcmV2aW91cywgY29uc3QgSW5saW5lSXRlbSYgY3VycmVu
dCkKK3sKKyAgICBhdXRvJiBwcmV2aW91c0xheW91dEJveCA9IHByZXZpb3VzLmxheW91dEJveCgp
OworICAgIGF1dG8mIGN1cnJlbnRMYXlvdXRCb3ggPSBjdXJyZW50LmxheW91dEJveCgpOworICAg
IEFTU0VSVChwcmV2aW91c0xheW91dEJveC5pc1J1YnlJbmxpbmVCb3goKSB8fCBjdXJyZW50TGF5
b3V0Qm94LmlzUnVieUlubGluZUJveCgpKTsKKworICAgIGlmIChjdXJyZW50TGF5b3V0Qm94Lmlz
UnVieUJhc2UoKSB8fCBwcmV2aW91c0xheW91dEJveC5pc1J1YnlCYXNlKCkpIHsKKyAgICAgICAg
Ly8gVGhlcmUncyBhbHdheXMgYSBzb2Z0IHdyYXAgb3Bwb3J0dW5pdHkgYmV0d2VlbiB0d28gYmFz
ZXMuCisgICAgICAgIHJldHVybiBjdXJyZW50TGF5b3V0Qm94LmlzUnVieUJhc2UoKSAmJiBwcmV2
aW91c0xheW91dEJveC5pc1J1YnlCYXNlKCk7CisgICAgfQorCisgICAgaWYgKGN1cnJlbnRMYXlv
dXRCb3guaXNSdWJ5KCkpIHsKKyAgICAgICAgQVNTRVJUKCghcHJldmlvdXMuaXNJbmxpbmVCb3hT
dGFydCgpICYmICFwcmV2aW91cy5pc0lubGluZUJveEVuZCgpKSB8fCBwcmV2aW91cy5sYXlvdXRC
b3goKS5pc1J1YnkoKSk7CisKKyAgICAgICAgaWYgKGN1cnJlbnQuaXNJbmxpbmVCb3hTdGFydCgp
KSB7CisgICAgICAgICAgICAvLyBBdCB0aGUgYmVnaW5uaW5nIG9mIDxydWJ5Pi4KKyAgICAgICAg
ICAgIGlmICghcHJldmlvdXMuaXNUZXh0KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgICAgICAvLyBGSVhNRTogQ29weSBzcGVjaWFsIGNoYXJhY3RlciBoYW5kbGluZyBm
cm9tIFJlbmRlclJ1YnlUZXh0OjpjYW5CcmVha0JlZm9yZS4KKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICB9CisgICAgICAgIC8vIERvbid0IGJyZWFrIGJldHdlZW4gYmFzZSBlbmQg
YW5kIDxydWJ5PiBlbmQuCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAo
cHJldmlvdXNMYXlvdXRCb3guaXNSdWJ5KCkpIHsKKyAgICAgICAgQVNTRVJUKCghY3VycmVudC5p
c0lubGluZUJveFN0YXJ0KCkgJiYgIWN1cnJlbnQuaXNJbmxpbmVCb3hFbmQoKSkgfHwgY3VycmVu
dC5sYXlvdXRCb3goKS5pc1J1YnkoKSk7CisKKyAgICAgICAgaWYgKHByZXZpb3VzLmlzSW5saW5l
Qm94RW5kKCkpIHsKKyAgICAgICAgICAgIC8vIEF0IHRoZSBlbmQgb2YgPHJ1Ynk+CisgICAgICAg
ICAgICBpZiAoIWN1cnJlbnQuaXNUZXh0KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgICAgICAvLyBGSVhNRTogQ29weSBzcGVjaWFsIGNoYXJhY3RlciBoYW5kbGluZyBm
cm9tIFJlbmRlclJ1YnlUZXh0OjpjYW5CcmVha0JlZm9yZS4KKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICB9CisgICAgICAgIC8vIFdlIHNob3VsZCBoYW5kbGVkIHRoaXMgY2FzZSBh
bHJlYWR5IHdoZW4gbG9va2luZyBhdCBjdXJyZW50OiBiYXNlLCBwcmV2aW91czogcnVieS4KKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3N0
ZDo6b3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gUnVieUZvcm1hdHRpbmdDb250ZXh0Ojphbm5v
dGF0aW9uQm94TG9naWNhbFdpZHRoKGNvbnN0IEJveCYgcnVieUJhc2VMYXlvdXRCb3gsIGNvbnN0
IElubGluZUZvcm1hdHRpbmdDb250ZXh0JiBpbmxpbmVGb3JtYXR0aW5nQ29udGV4dCkKK3sKKyAg
ICBBU1NFUlQocnVieUJhc2VMYXlvdXRCb3guaXNSdWJ5QmFzZSgpKTsKKworICAgIGlmIChhdXRv
KiBhbm5vdGF0aW9uQm94ID0gcnVieUJhc2VMYXlvdXRCb3guYXNzb2NpYXRlZFJ1YnlBbm5vdGF0
aW9uQm94KCkpCisgICAgICAgIHJldHVybiBJbmxpbmVMYXlvdXRVbml0IHsgaW5saW5lRm9ybWF0
dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3goKmFubm90YXRpb25Cb3gpLm1hcmdpbkJveFdpZHRo
KCkgfTsKKyAgICByZXR1cm4geyB9OworfQorCiBSdWJ5Rm9ybWF0dGluZ0NvbnRleHQ6OklubGlu
ZUxheW91dFJlc3VsdCBSdWJ5Rm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dElubGluZUF4aXMoY29u
c3QgSW5saW5lSXRlbVJhbmdlJiBydWJ5UmFuZ2UsIGNvbnN0IElubGluZUl0ZW1MaXN0JiBpbmxp
bmVJdGVtTGlzdCwgTGluZSYgbGluZSwgSW5saW5lTGF5b3V0VW5pdCBhdmFpbGFibGVXaWR0aCkK
IHsKICAgICBBU1NFUlQoIXJ1YnlSYW5nZS5pc0VtcHR5KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvcnVieS9SdWJ5Rm9ybWF0
dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL3J1YnkvUnVieUZvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggYWZlYjc2ODFiYzMxLi5h
OWY0M2ZkNjg2MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL3J1YnkvUnVieUZvcm1hdHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvcnVieS9SdWJ5Rm9ybWF0
dGluZ0NvbnRleHQuaApAQCAtNTYsNiArNTYsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxzaXplX3Q+IG5leHRXcmFwT3Bwb3J0dW5pdHkoc2l6ZV90IGlubGluZUl0ZW1J
bmRleCwgc3RkOjpvcHRpb25hbDxzaXplX3Q+IHByZXZpb3VzSW5saW5lSXRlbUluZGV4LCBjb25z
dCBJbmxpbmVJdGVtUmFuZ2UmLCBjb25zdCBJbmxpbmVJdGVtTGlzdCYpOwogCisgICAgc3RhdGlj
IGJvb2wgaXNBdFNvZnRXcmFwT3Bwb3J0dW5pdHkoY29uc3QgSW5saW5lSXRlbSYgcHJldmlvdXMs
IGNvbnN0IElubGluZUl0ZW0mIGN1cnJlbnQpOworICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPElu
bGluZUxheW91dFVuaXQ+IGFubm90YXRpb25Cb3hMb2dpY2FsV2lkdGgoY29uc3QgQm94JiBydWJ5
QmFzZUxheW91dEJveCwgY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQmKTsKKwogcHJpdmF0
ZToKICAgICBzdHJ1Y3QgQmFzZUxheW91dFJlc3VsdCB7CiAgICAgICAgIHNpemVfdCBjb21taXR0
ZWRDb3VudCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0
cmVlL0xheW91dEJveC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0
Qm94LmgKaW5kZXggYzg0MmJlMTUyNGIwLi40NDVjYTMwYmJhZDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oCkBAIC0xMjUsNiArMTI1LDcgQEAgcHVi
bGljOgogICAgIGJvb2wgaXNCb2R5Qm94KCkgY29uc3QgeyByZXR1cm4gbV9ub2RlVHlwZSA9PSBO
b2RlVHlwZTo6Qm9keTsgfQogICAgIGJvb2wgaXNSdWJ5KCkgY29uc3QgeyByZXR1cm4gc3R5bGUo
KS5kaXNwbGF5KCkgPT0gRGlzcGxheVR5cGU6OlJ1Ynk7IH0KICAgICBib29sIGlzUnVieUJhc2Uo
KSBjb25zdCB7IHJldHVybiBzdHlsZSgpLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6UnVieUJh
c2U7IH0KKyAgICBib29sIGlzUnVieUlubGluZUJveCgpIGNvbnN0IHsgcmV0dXJuIGlzUnVieSgp
IHx8IGlzUnVieUJhc2UoKTsgfQogICAgIGJvb2wgaXNUYWJsZVdyYXBwZXJCb3goKSBjb25zdCB7
IHJldHVybiBtX25vZGVUeXBlID09IE5vZGVUeXBlOjpUYWJsZVdyYXBwZXJCb3g7IH0KICAgICBi
b29sIGlzVGFibGVCb3goKSBjb25zdCB7IHJldHVybiBtX25vZGVUeXBlID09IE5vZGVUeXBlOjpU
YWJsZUJveDsgfQogICAgIGJvb2wgaXNUYWJsZUNhcHRpb24oKSBjb25zdCB7IHJldHVybiBzdHls
ZSgpLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6VGFibGVDYXB0aW9uOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>