<?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>84568</bug_id>
          
          <creation_ts>2012-04-22 23:52:04 -0700</creation_ts>
          <short_desc>Move the content of LocalizedCalendarICU.cpp and LocalizedDateICU.cpp to ICULocale.cpp.</short_desc>
          <delta_ts>2012-04-23 17:47:48 -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>Platform</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>haraken</cc>
    
    <cc>morrita</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>607498</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-04-22 23:52:04 -0700</bug_when>
    <thetext>Move the content of LocalizedCalendarICU.cpp and LocalizedDateICU.cpp to ICULocale.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607501</commentid>
    <comment_count>1</comment_count>
      <attachid>138298</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-04-22 23:53:40 -0700</bug_when>
    <thetext>Created attachment 138298
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607567</commentid>
    <comment_count>2</comment_count>
      <attachid>138298</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-23 02:41:37 -0700</bug_when>
    <thetext>Comment on attachment 138298
Patch

Looks good to me. Waiting for morrita&apos;s review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607765</commentid>
    <comment_count>3</comment_count>
      <attachid>138298</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-04-23 09:53:09 -0700</bug_when>
    <thetext>Comment on attachment 138298
Patch

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608243</commentid>
    <comment_count>4</comment_count>
      <attachid>138298</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-23 17:47:41 -0700</bug_when>
    <thetext>Comment on attachment 138298
Patch

Clearing flags on attachment: 138298

Committed r114971: &lt;http://trac.webkit.org/changeset/114971&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608244</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-23 17:47:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138298</attachid>
            <date>2012-04-22 23:53:40 -0700</date>
            <delta_ts>2012-04-23 17:47:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84568-20120423155338.patch</filename>
            <type>text/plain</type>
            <size>18512</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE0ODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzBlNzE4MDFmN2EwNjA2
ZGM2OWNlMGFjZDYzZDE1MzIwN2RkMmRiNi4uZjQyYTA5ZmJlODE1ZDY5Y2I2YTNiOTkxYmM1NTRi
OTBmYWFiMTJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA0LTIyICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIHRoZSBjb250ZW50
IG9mIExvY2FsaXplZENhbGVuZGFySUNVLmNwcCBhbmQgTG9jYWxpemVkRGF0ZUlDVS5jcHAgdG8g
SUNVTG9jYWxlLmNwcC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg0NTY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW92ZSBpdCB0byBJQ1VMb2NhbC5jcHAgYmVjYXVzZSB3ZSB3YW50IHRvIHNoYXJlIFVE
YXRlRm9ybWF0CisgICAgICAgIG9iamVjdCBpbiBMb2NhbGl6ZWREYXRlIGZ1bmN0aW9ucyBhbmQg
TG9jYWxpemVkQ2FsZW5kYXIgZnVuY3Rpb25zLAorICAgICAgICBhbmQgaXQgYmVjb21lcyBlYXNp
ZXIgdG8gY2FjaGUgdGhlIFVEYXRlRm9ybWF0IG9iamVjdCwgYW5kIG1ha2luZworICAgICAgICB1
bml0IHRlc3RzIGZvciB0aGVzZSBmdW5jdGlvbnMgZWFzaWVyLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cyBiZWNhdXNlIG9mIG5vIGJhaGV2aW9yIGNoYW5nZXMuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L0lDVUxvY2FsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJQ1VMb2NhbGU6OklDVUxv
Y2FsZSk6IEluaXRpYWxpemUgbmV3IG1lbWJlcnMuCisgICAgICAgIChXZWJDb3JlOjpJQ1VMb2Nh
bGU6On5JQ1VMb2NhbGUpOiBEZWxldGUgbV9zaG9ydERhdGVGb3JtYXQuCisgICAgICAgIChXZWJD
b3JlOjpJQ1VMb2NhbGU6OmluaXRpYWxpemVTaG9ydERhdGVGb3JtYXQpOgorICAgICAgICBNb3Zl
ZCBmcm9tIGNyZXRlU2hvcnREYXRlRm9ybWF0dGVyIG9mIExvY2FsaXplZERhdGVJQ1UuY3BwLgor
ICAgICAgICAoV2ViQ29yZTo6SUNVTG9jYWxlOjpwYXJzZUxvY2FsaXplZERhdGUpOgorICAgICAg
ICBNb3ZlZCBmcm9tIExvY2FsaXplZERhdGUuY3BwLCB1c2UgbV9zaG9ydERhdGVGb3JtYXQuCisg
ICAgICAgIChXZWJDb3JlOjpJQ1VMb2NhbGU6OmZvcm1hdExvY2FsaXplZERhdGUpOiBkaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OklDVUxvY2FsZTo6Y3JlYXRlTGFiZWxWZWN0b3IpOgorICAgICAg
ICBNb3ZlZCBmcm9tIExvY2FsaXplZENhbGVuZGFySUNVLmNwcCwgdXNlIG1fc2hvcnREYXRlRm9y
bWF0LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRmFsbGJhY2tNb250aExhYmVscyk6IE1vdmVk
IGZyb20gTG9jYWxpemVkQ2FsZW5kYXJJQ1UuY3BwLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
RmFsbGJhY2tXZWVrRGF5U2hvcnRMYWJlbHMpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OklD
VUxvY2FsZTo6aW5pdGlhbGl6ZUNhbGVuZGFyKToKKyAgICAgICAgbGF6eSBpbml0aWFsaXphdGlv
biBvZiBtX21vbnRoTGFiZWxzLCBtX3dlZWtEYXlTaG9ydExhYmVscywgYW5kIG1fZmlyc3REYXlP
ZldlZWsuCisgICAgICAgIChXZWJDb3JlOjpJQ1VMb2NhbGU6Om1vbnRoTGFiZWxzKToKKyAgICAg
ICAgKFdlYkNvcmU6OklDVUxvY2FsZTo6d2Vla0RheVNob3J0TGFiZWxzKToKKyAgICAgICAgKFdl
YkNvcmU6OklDVUxvY2FsZTo6Zmlyc3REYXlPZldlZWspOgorICAgICAgICAqIHBsYXRmb3JtL3Rl
eHQvSUNVTG9jYWxlLmg6CisgICAgICAgIChJQ1VMb2NhbGUpOiBBZGQgZGVjbGFyYXRpb25zLgor
ICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxpemVkQ2FsZW5kYXJJQ1UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6bW9udGhMYWJlbHMpOiBVc2UgSUNVTG9jYWxlOjpjdXJyZW50TG9jYWxlKCku
CisgICAgICAgIChXZWJDb3JlOjp3ZWVrRGF5U2hvcnRMYWJlbHMpOiBkaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OmZpcnN0RGF5T2ZXZWVrKTogZGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vdGV4
dC9Mb2NhbGl6ZWREYXRlSUNVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlTG9jYWxpemVk
RGF0ZSk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Zm9ybWF0TG9jYWxpemVkRGF0ZSk6IGRp
dHRvLgorCiAyMDEyLTA0LTIyICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdmUgbm90aWZpY2F0aW9ucyBzdXBwb3J0IG9uIE1hYyBMaW9uLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9JQ1VMb2NhbGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9JQ1VMb2NhbGUuY3BwCmluZGV4IDhjMWUyYTY0NjIwZDI4M2Q2NWVj
YmNiMTMzNWY3NGU0NjEyMTI5YWQuLjY4ZmM1YjgyM2I2NThkZjliODk2YjhjYTE0N2VlOThhOWNh
ZTMyZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvSUNVTG9jYWxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0lDVUxvY2FsZS5jcHAKQEAg
LTMxLDIzICszMSwzMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIklDVUxvY2Fs
ZS5oIgogCisjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiB1c2luZyBuYW1lc3BhY2UgaWN1
OwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBJQ1VMb2Nh
bGU6OklDVUxvY2FsZShjb25zdCBjaGFyKiBsb2NhbGUpCiAgICAgOiBtX2xvY2FsZShsb2NhbGUp
CiAgICAgLCBtX251bWJlckZvcm1hdCgwKQorICAgICwgbV9zaG9ydERhdGVGb3JtYXQoMCkKICAg
ICAsIG1fZGlkQ3JlYXRlRGVjaW1hbEZvcm1hdChmYWxzZSkKKyAgICAsIG1fZGlkQ3JlYXRlU2hv
cnREYXRlRm9ybWF0KGZhbHNlKQorI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCisgICAgLCBt
X2ZpcnN0RGF5T2ZXZWVrKDApCisjZW5kaWYKIHsKIH0KIAogSUNVTG9jYWxlOjp+SUNVTG9jYWxl
KCkKIHsKICAgICB1bnVtX2Nsb3NlKG1fbnVtYmVyRm9ybWF0KTsKKyAgICB1ZGF0X2Nsb3NlKG1f
c2hvcnREYXRlRm9ybWF0KTsKIH0KIAogUGFzc093blB0cjxJQ1VMb2NhbGU+IElDVUxvY2FsZTo6
Y3JlYXRlKGNvbnN0IGNoYXIqIGxvY2FsZVN0cmluZykKQEAgLTI1OCw1ICsyNjYsMTQ4IEBAIFN0
cmluZyBJQ1VMb2NhbGU6OmNvbnZlcnRGcm9tTG9jYWxpemVkTnVtYmVyKGNvbnN0IFN0cmluZyYg
bG9jYWxpemVkKQogICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CiB9CiAKK2Jvb2wgSUNV
TG9jYWxlOjppbml0aWFsaXplU2hvcnREYXRlRm9ybWF0KCkKK3sKKyAgICBpZiAobV9kaWRDcmVh
dGVTaG9ydERhdGVGb3JtYXQpCisgICAgICAgIHJldHVybiBtX3Nob3J0RGF0ZUZvcm1hdDsKKyAg
ICBjb25zdCBVQ2hhciBnbXRUaW1lem9uZVszXSA9IHsnRycsICdNJywgJ1QnfTsKKyAgICBVRXJy
b3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBtX3Nob3J0RGF0ZUZvcm1hdCA9IHVk
YXRfb3BlbihVREFUX05PTkUsIFVEQVRfU0hPUlQsIG1fbG9jYWxlLmRhdGEoKSwgZ210VGltZXpv
bmUsIFdURl9BUlJBWV9MRU5HVEgoZ210VGltZXpvbmUpLCAwLCAtMSwgJnN0YXR1cyk7CisgICAg
bV9kaWRDcmVhdGVTaG9ydERhdGVGb3JtYXQgPSB0cnVlOworICAgIHJldHVybiBtX3Nob3J0RGF0
ZUZvcm1hdDsKK30KKworZG91YmxlIElDVUxvY2FsZTo6cGFyc2VMb2NhbGl6ZWREYXRlKGNvbnN0
IFN0cmluZyYgaW5wdXQpCit7CisgICAgaWYgKCFpbml0aWFsaXplU2hvcnREYXRlRm9ybWF0KCkp
CisgICAgICAgIHJldHVybiBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAg
ICBpZiAoaW5wdXQubGVuZ3RoKCkgPiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obnVtZXJpY19saW1p
dHM8aW50MzJfdD46Om1heCgpKSkKKyAgICAgICAgcmV0dXJuIG51bWVyaWNfbGltaXRzPGRvdWJs
ZT46OnF1aWV0X05hTigpOworICAgIGludDMyX3QgaW5wdXRMZW5ndGggPSBzdGF0aWNfY2FzdDxp
bnQzMl90PihpbnB1dC5sZW5ndGgoKSk7CisgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9f
RVJST1I7CisgICAgaW50MzJfdCBwYXJzZVBvc2l0aW9uID0gMDsKKyAgICBVRGF0ZSBkYXRlID0g
dWRhdF9wYXJzZShtX3Nob3J0RGF0ZUZvcm1hdCwgaW5wdXQuY2hhcmFjdGVycygpLCBpbnB1dExl
bmd0aCwgJnBhcnNlUG9zaXRpb24sICZzdGF0dXMpOworICAgIGlmIChwYXJzZVBvc2l0aW9uICE9
IGlucHV0TGVuZ3RoIHx8IFVfRkFJTFVSRShzdGF0dXMpKQorICAgICAgICByZXR1cm4gbnVtZXJp
Y19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CisgICAgLy8gVURhdGUsIHdoaWNoIGlzIGFu
IGFsaWFzIG9mIGRvdWJsZSwgaXMgY29tcGF0aWJsZSB3aXRoIG91ciBleHBlY3RhdGlvbi4KKyAg
ICByZXR1cm4gZGF0ZTsKK30KKworU3RyaW5nIElDVUxvY2FsZTo6Zm9ybWF0TG9jYWxpemVkRGF0
ZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUNvbXBvbmVudHMpCit7CisgICAgaWYgKCFpbml0
aWFsaXplU2hvcnREYXRlRm9ybWF0KCkpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBk
b3VibGUgaW5wdXQgPSBkYXRlQ29tcG9uZW50cy5taWxsaXNlY29uZHNTaW5jZUVwb2NoKCk7Cisg
ICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgaW50MzJfdCBsZW5ndGgg
PSB1ZGF0X2Zvcm1hdChtX3Nob3J0RGF0ZUZvcm1hdCwgaW5wdXQsIDAsIDAsIDAsICZzdGF0dXMp
OworICAgIGlmIChzdGF0dXMgIT0gVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IpCisgICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKKyAgICBWZWN0b3I8VUNoYXI+IGJ1ZmZlcihsZW5ndGgpOworICAgIHN0
YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICB1ZGF0X2Zvcm1hdChtX3Nob3J0RGF0ZUZvcm1hdCwg
aW5wdXQsIGJ1ZmZlci5kYXRhKCksIGxlbmd0aCwgMCwgJnN0YXR1cyk7CisgICAgaWYgKFVfRkFJ
TFVSRShzdGF0dXMpKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgcmV0dXJuIFN0cmlu
Zzo6YWRvcHQoYnVmZmVyKTsKK30KKworI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCitQYXNz
T3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gSUNVTG9jYWxlOjpjcmVhdGVMYWJlbFZlY3RvcihVRGF0
ZUZvcm1hdFN5bWJvbFR5cGUgdHlwZSwgaW50MzJfdCBzdGFydEluZGV4LCBpbnQzMl90IHNpemUp
Cit7CisgICAgaWYgKCFtX3Nob3J0RGF0ZUZvcm1hdCkKKyAgICAgICAgcmV0dXJuIFBhc3NPd25Q
dHI8VmVjdG9yPFN0cmluZz4gPigpOworICAgIGlmICh1ZGF0X2NvdW50U3ltYm9scyhtX3Nob3J0
RGF0ZUZvcm1hdCwgdHlwZSkgIT0gc3RhcnRJbmRleCArIHNpemUpCisgICAgICAgIHJldHVybiBQ
YXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4oKTsKKworICAgIE93blB0cjxWZWN0b3I8U3RyaW5n
PiA+IGxhYmVscyA9IGFkb3B0UHRyKG5ldyBWZWN0b3I8U3RyaW5nPigpKTsKKyAgICBsYWJlbHMt
PnJlc2VydmVDYXBhY2l0eShzaXplKTsKKyAgICBmb3IgKGludDMyX3QgaSA9IDA7IGkgPCBzaXpl
OyArK2kpIHsKKyAgICAgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAg
ICAgIGludDMyX3QgbGVuZ3RoID0gdWRhdF9nZXRTeW1ib2xzKG1fc2hvcnREYXRlRm9ybWF0LCB0
eXBlLCBzdGFydEluZGV4ICsgaSwgMCwgMCwgJnN0YXR1cyk7CisgICAgICAgIGlmIChzdGF0dXMg
IT0gVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IpCisgICAgICAgICAgICByZXR1cm4gUGFzc093blB0
cjxWZWN0b3I8U3RyaW5nPiA+KCk7CisgICAgICAgIFZlY3RvcjxVQ2hhcj4gYnVmZmVyKGxlbmd0
aCk7CisgICAgICAgIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICAgICAgdWRhdF9nZXRTeW1i
b2xzKG1fc2hvcnREYXRlRm9ybWF0LCB0eXBlLCBzdGFydEluZGV4ICsgaSwgYnVmZmVyLmRhdGEo
KSwgbGVuZ3RoLCAmc3RhdHVzKTsKKyAgICAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKQorICAg
ICAgICAgICAgcmV0dXJuIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPigpOworICAgICAgICBs
YWJlbHMtPmFwcGVuZChTdHJpbmc6OmFkb3B0KGJ1ZmZlcikpOworICAgIH0KKyAgICByZXR1cm4g
bGFiZWxzLnJlbGVhc2UoKTsKK30KKworc3RhdGljIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4g
PiBjcmVhdGVGYWxsYmFja01vbnRoTGFiZWxzKCkKK3sKKyAgICBPd25QdHI8VmVjdG9yPFN0cmlu
Zz4gPiBsYWJlbHMgPSBhZG9wdFB0cihuZXcgVmVjdG9yPFN0cmluZz4oKSk7CisgICAgbGFiZWxz
LT5yZXNlcnZlQ2FwYWNpdHkoMTIpOworICAgIGxhYmVscy0+YXBwZW5kKCJKYW51YXJ5Iik7Cisg
ICAgbGFiZWxzLT5hcHBlbmQoIkZlYnJ1YXJ5Iik7CisgICAgbGFiZWxzLT5hcHBlbmQoIk1hcmNo
Iik7CisgICAgbGFiZWxzLT5hcHBlbmQoIkFwcmlsIik7CisgICAgbGFiZWxzLT5hcHBlbmQoIk1h
eSIpOworICAgIGxhYmVscy0+YXBwZW5kKCJKdW5lIik7CisgICAgbGFiZWxzLT5hcHBlbmQoIkp1
bHkiKTsKKyAgICBsYWJlbHMtPmFwcGVuZCgiQXVndXN0Iik7CisgICAgbGFiZWxzLT5hcHBlbmQo
IlNlcHRlbWJlciIpOworICAgIGxhYmVscy0+YXBwZW5kKCJPY3RvYmVyIik7CisgICAgbGFiZWxz
LT5hcHBlbmQoIk5vdmVtYmVyIik7CisgICAgbGFiZWxzLT5hcHBlbmQoIkRlY2VtYmVyIik7Cisg
ICAgcmV0dXJuIGxhYmVscy5yZWxlYXNlKCk7Cit9CisKK3N0YXRpYyBQYXNzT3duUHRyPFZlY3Rv
cjxTdHJpbmc+ID4gY3JlYXRlRmFsbGJhY2tXZWVrRGF5U2hvcnRMYWJlbHMoKQoreworICAgIE93
blB0cjxWZWN0b3I8U3RyaW5nPiA+IGxhYmVscyA9IGFkb3B0UHRyKG5ldyBWZWN0b3I8U3RyaW5n
PigpKTsKKyAgICBsYWJlbHMtPnJlc2VydmVDYXBhY2l0eSg3KTsKKyAgICBsYWJlbHMtPmFwcGVu
ZCgiU3VuIik7CisgICAgbGFiZWxzLT5hcHBlbmQoIk1vbiIpOworICAgIGxhYmVscy0+YXBwZW5k
KCJUdWUiKTsKKyAgICBsYWJlbHMtPmFwcGVuZCgiV2VkIik7CisgICAgbGFiZWxzLT5hcHBlbmQo
IlRodSIpOworICAgIGxhYmVscy0+YXBwZW5kKCJGcmkiKTsKKyAgICBsYWJlbHMtPmFwcGVuZCgi
U2F0Iik7CisgICAgcmV0dXJuIGxhYmVscy5yZWxlYXNlKCk7Cit9CisKK3ZvaWQgSUNVTG9jYWxl
Ojppbml0aWFsaXplQ2FsZW5kYXIoKQoreworICAgIGlmIChtX21vbnRoTGFiZWxzICYmIG1fd2Vl
a0RheVNob3J0TGFiZWxzKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIWluaXRpYWxpemVT
aG9ydERhdGVGb3JtYXQoKSkgeworICAgICAgICBtX2ZpcnN0RGF5T2ZXZWVrID0gMDsKKyAgICAg
ICAgbV9tb250aExhYmVscyA9IGNyZWF0ZUZhbGxiYWNrTW9udGhMYWJlbHMoKTsKKyAgICAgICAg
bV93ZWVrRGF5U2hvcnRMYWJlbHMgPSBjcmVhdGVGYWxsYmFja1dlZWtEYXlTaG9ydExhYmVscygp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1fZmlyc3REYXlPZldlZWsgPSB1Y2FsX2dl
dEF0dHJpYnV0ZSh1ZGF0X2dldENhbGVuZGFyKG1fc2hvcnREYXRlRm9ybWF0KSwgVUNBTF9GSVJT
VF9EQVlfT0ZfV0VFSykgLSBVQ0FMX1NVTkRBWTsKKworICAgIG1fbW9udGhMYWJlbHMgPSBjcmVh
dGVMYWJlbFZlY3RvcihVREFUX01PTlRIUywgVUNBTF9KQU5VQVJZLCAxMik7CisgICAgaWYgKCFt
X21vbnRoTGFiZWxzKQorICAgICAgICBtX21vbnRoTGFiZWxzID0gY3JlYXRlRmFsbGJhY2tNb250
aExhYmVscygpOworCisgICAgbV93ZWVrRGF5U2hvcnRMYWJlbHMgPSBjcmVhdGVMYWJlbFZlY3Rv
cihVREFUX1NIT1JUX1dFRUtEQVlTLCBVQ0FMX1NVTkRBWSwgNyk7CisgICAgaWYgKCFtX3dlZWtE
YXlTaG9ydExhYmVscykKKyAgICAgICAgbV93ZWVrRGF5U2hvcnRMYWJlbHMgPSBjcmVhdGVGYWxs
YmFja1dlZWtEYXlTaG9ydExhYmVscygpOworfQorCitjb25zdCBWZWN0b3I8U3RyaW5nPiYgSUNV
TG9jYWxlOjptb250aExhYmVscygpCit7CisgICAgaW5pdGlhbGl6ZUNhbGVuZGFyKCk7CisgICAg
cmV0dXJuICptX21vbnRoTGFiZWxzOworfQorCitjb25zdCBWZWN0b3I8U3RyaW5nPiYgSUNVTG9j
YWxlOjp3ZWVrRGF5U2hvcnRMYWJlbHMoKQoreworICAgIGluaXRpYWxpemVDYWxlbmRhcigpOwor
ICAgIHJldHVybiAqbV93ZWVrRGF5U2hvcnRMYWJlbHM7Cit9CisKK3Vuc2lnbmVkIElDVUxvY2Fs
ZTo6Zmlyc3REYXlPZldlZWsoKQoreworICAgIGluaXRpYWxpemVDYWxlbmRhcigpOworICAgIHJl
dHVybiBtX2ZpcnN0RGF5T2ZXZWVrOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9JQ1VMb2NhbGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvSUNVTG9jYWxlLmgKaW5kZXggMGEyNDI4
MDI2MzE1ODNlOTIyYTRhMWMyMWYyMDcyNzU0NzIwM2Q5Yi4uZWMyY2E1ZTZiY2ViMGZmNzlhYjU1
MDMxYmFiMmY3YjQwYjU2ZGQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9JQ1VMb2NhbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0lDVUxv
Y2FsZS5oCkBAIC0zMSw2ICszMSw4IEBACiAjaWZuZGVmIElDVUxvY2FsZV9oCiAjZGVmaW5lIElD
VUxvY2FsZV9oCiAKKyNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgorI2luY2x1ZGUgPHVuaWNv
ZGUvdWRhdC5oPgogI2luY2x1ZGUgPHVuaWNvZGUvdW51bS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtMzksMTUgKzQxLDI5IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gV2Ugc2hvdWxkIHVzZSB0aGlzIGNsYXNzIG9ubHkgZm9y
IExvY2FsaXplZE51bWJlcklDVS5jcHAgYW5kIExvY2FsaXplZE51bWJlcklDVVRlc3QuY3BwLgor
Ly8gV2Ugc2hvdWxkIHVzZSB0aGlzIGNsYXNzIG9ubHkgZm9yIExvY2FsaXplZE51bWJlcklDVS5j
cHAsIExvY2FsaXplZERhdGVJQ1UuY3BwLAorLy8gTG9jYWxpemVkQ2FsZW5kYXJJQ1UuY3BwLCBh
bmQgTG9jYWxpemVkTnVtYmVySUNVVGVzdC5jcHAuCiBjbGFzcyBJQ1VMb2NhbGUgewogcHVibGlj
OgogICAgIHN0YXRpYyBQYXNzT3duUHRyPElDVUxvY2FsZT4gY3JlYXRlKGNvbnN0IGNoYXIqIGxv
Y2FsZVN0cmluZyk7CiAgICAgc3RhdGljIElDVUxvY2FsZSogY3VycmVudExvY2FsZSgpOwogICAg
IH5JQ1VMb2NhbGUoKTsKKworICAgIC8vIEZvciBMb2NhbGl6ZWROdW1iZXIKICAgICBTdHJpbmcg
Y29udmVydFRvTG9jYWxpemVkTnVtYmVyKGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmluZyBjb252
ZXJ0RnJvbUxvY2FsaXplZE51bWJlcihjb25zdCBTdHJpbmcmKTsKIAorICAgIC8vIEZvciBMb2Nh
bGl6ZWREYXRlCisgICAgZG91YmxlIHBhcnNlTG9jYWxpemVkRGF0ZShjb25zdCBTdHJpbmcmKTsK
KyAgICBTdHJpbmcgZm9ybWF0TG9jYWxpemVkRGF0ZShjb25zdCBEYXRlQ29tcG9uZW50cyYpOwor
CisjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKKyAgICAvLyBGb3IgTG9jYWxpemVkQ2FsZW5k
YXIKKyAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbW9udGhMYWJlbHMoKTsKKyAgICBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgd2Vla0RheVNob3J0TGFiZWxzKCk7CisgICAgdW5zaWduZWQgZmlyc3RE
YXlPZldlZWsoKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPElD
VUxvY2FsZT4gY3JlYXRlRm9yQ3VycmVudExvY2FsZSgpOwogICAgIGV4cGxpY2l0IElDVUxvY2Fs
ZShjb25zdCBjaGFyKik7CkBAIC01OCw4ICs3NCwxNiBAQCBwcml2YXRlOgogICAgIGJvb2wgZGV0
ZWN0U2lnbkFuZEdldERpZ2l0UmFuZ2UoY29uc3QgU3RyaW5nJiBpbnB1dCwgYm9vbCYgaXNOZWdh
dGl2ZSwgdW5zaWduZWQmIHN0YXJ0SW5kZXgsIHVuc2lnbmVkJiBlbmRJbmRleCk7CiAgICAgdW5z
aWduZWQgbWF0Y2hlZERlY2ltYWxTeW1ib2xJbmRleChjb25zdCBTdHJpbmcmIGlucHV0LCB1bnNp
Z25lZCYgcG9zaXRpb24pOwogCisgICAgYm9vbCBpbml0aWFsaXplU2hvcnREYXRlRm9ybWF0KCk7
CisKKyNpZiBFTkFCTEUoQ0FMRU5EQVJfUElDS0VSKQorICAgIFBhc3NPd25QdHI8VmVjdG9yPFN0
cmluZz4gPiBjcmVhdGVMYWJlbFZlY3RvcihVRGF0ZUZvcm1hdFN5bWJvbFR5cGUsIGludDMyX3Qg
c3RhcnRJbmRleCwgaW50MzJfdCBzaXplKTsKKyAgICB2b2lkIGluaXRpYWxpemVDYWxlbmRhcigp
OworI2VuZGlmCisKICAgICBDU3RyaW5nIG1fbG9jYWxlOwogICAgIFVOdW1iZXJGb3JtYXQqIG1f
bnVtYmVyRm9ybWF0OworICAgIFVEYXRlRm9ybWF0KiBtX3Nob3J0RGF0ZUZvcm1hdDsKICAgICBl
bnVtIHsKICAgICAgICAgLy8gMC05IGZvciBkaWdpdHMuCiAgICAgICAgIERlY2ltYWxTZXBhcmF0
b3JJbmRleCA9IDEwLApAQCAtNzIsNiArOTYsMTMgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9u
ZWdhdGl2ZVByZWZpeDsKICAgICBTdHJpbmcgbV9uZWdhdGl2ZVN1ZmZpeDsKICAgICBib29sIG1f
ZGlkQ3JlYXRlRGVjaW1hbEZvcm1hdDsKKyAgICBib29sIG1fZGlkQ3JlYXRlU2hvcnREYXRlRm9y
bWF0OworCisjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKKyAgICBPd25QdHI8VmVjdG9yPFN0
cmluZz4gPiBtX21vbnRoTGFiZWxzOworICAgIE93blB0cjxWZWN0b3I8U3RyaW5nPiA+IG1fd2Vl
a0RheVNob3J0TGFiZWxzOworICAgIHVuc2lnbmVkIG1fZmlyc3REYXlPZldlZWs7CisjZW5kaWYK
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxp
emVkQ2FsZW5kYXJJQ1UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6
ZWRDYWxlbmRhcklDVS5jcHAKaW5kZXggYzNjYmEzMGZkN2NhNTgzMmVmOWNiYmYyYWFiYzUwMjRj
MjkwNmMwNC4uZjc4MTg0OTJmMDk1YWVlMWJiNWY0ZDU1NjUyOWI2ZDU3MGUxMzIzZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWRDYWxlbmRhcklDVS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWRDYWxlbmRhcklD
VS5jcHAKQEAgLTMyLDEyOSArMzIsMjMgQEAKICNpbmNsdWRlICJMb2NhbGl6ZWRDYWxlbmRhci5o
IgogCiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKLSNpbmNsdWRlICJMYW5ndWFnZS5oIgot
I2luY2x1ZGUgPHVuaWNvZGUvdWNhbC5oPgotI2luY2x1ZGUgPHVuaWNvZGUvdWRhdC5oPgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgor
I2luY2x1ZGUgIklDVUxvY2FsZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNj
b3BlZERhdGVGb3JtYXQgewotcHVibGljOgotICAgIFNjb3BlZERhdGVGb3JtYXQoKQotICAgIHsK
LSAgICAgICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7Ci0gICAgICAgIG1fZGF0
ZUZvcm1hdCA9IHVkYXRfb3BlbihVREFUX0RFRkFVTFQsIFVEQVRfREVGQVVMVCwgZGVmYXVsdExh
bmd1YWdlKCkudXRmOCgpLmRhdGEoKSwgMCwgLTEsIDAsIC0xLCAmc3RhdHVzKTsKLSAgICB9Ci0K
LSAgICB+U2NvcGVkRGF0ZUZvcm1hdCgpCi0gICAgewotICAgICAgICBpZiAobV9kYXRlRm9ybWF0
KQotICAgICAgICAgICAgdWRhdF9jbG9zZShtX2RhdGVGb3JtYXQpOwotICAgIH0KLQotICAgIFVE
YXRlRm9ybWF0KiBnZXQoKSBjb25zdCB7IHJldHVybiBtX2RhdGVGb3JtYXQ7IH0KLQotcHJpdmF0
ZToKLSAgICBVRGF0ZUZvcm1hdCogbV9kYXRlRm9ybWF0OwotfTsKLQotc3RhdGljIFBhc3NPd25Q
dHI8VmVjdG9yPFN0cmluZz4gPiBjcmVhdGVGYWxsYmFja01vbnRoTGFiZWxzKCkKLXsKLSAgICBP
d25QdHI8VmVjdG9yPFN0cmluZz4gPiBsYWJlbHMgPSBhZG9wdFB0cihuZXcgVmVjdG9yPFN0cmlu
Zz4oKSk7Ci0gICAgbGFiZWxzLT5yZXNlcnZlQ2FwYWNpdHkoMTIpOwotICAgIGxhYmVscy0+YXBw
ZW5kKCJKYW51YXJ5Iik7Ci0gICAgbGFiZWxzLT5hcHBlbmQoIkZlYnJ1YXJ5Iik7Ci0gICAgbGFi
ZWxzLT5hcHBlbmQoIk1hcmNoIik7Ci0gICAgbGFiZWxzLT5hcHBlbmQoIkFwcmlsIik7Ci0gICAg
bGFiZWxzLT5hcHBlbmQoIk1heSIpOwotICAgIGxhYmVscy0+YXBwZW5kKCJKdW5lIik7Ci0gICAg
bGFiZWxzLT5hcHBlbmQoIkp1bHkiKTsKLSAgICBsYWJlbHMtPmFwcGVuZCgiQXVndXN0Iik7Ci0g
ICAgbGFiZWxzLT5hcHBlbmQoIlNlcHRlbWJlciIpOwotICAgIGxhYmVscy0+YXBwZW5kKCJPY3Rv
YmVyIik7Ci0gICAgbGFiZWxzLT5hcHBlbmQoIk5vdmVtYmVyIik7Ci0gICAgbGFiZWxzLT5hcHBl
bmQoIkRlY2VtYmVyIik7Ci0gICAgcmV0dXJuIGxhYmVscy5yZWxlYXNlKCk7Ci19Ci0KLXN0YXRp
YyBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gY3JlYXRlTGFiZWxWZWN0b3IoVURhdGVGb3Jt
YXRTeW1ib2xUeXBlIHR5cGUsIGludDMyX3Qgc3RhcnRJbmRleCwgaW50MzJfdCBzaXplKQotewot
ICAgIFNjb3BlZERhdGVGb3JtYXQgZGF0ZUZvcm1hdDsKLSAgICBpZiAoIWRhdGVGb3JtYXQuZ2V0
KCkpCi0gICAgICAgIHJldHVybiBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4oKTsKLSAgICBp
ZiAodWRhdF9jb3VudFN5bWJvbHMoZGF0ZUZvcm1hdC5nZXQoKSwgdHlwZSkgIT0gc3RhcnRJbmRl
eCArIHNpemUpCi0gICAgICAgIHJldHVybiBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4oKTsK
LQotICAgIE93blB0cjxWZWN0b3I8U3RyaW5nPiA+IGxhYmVscyA9IGFkb3B0UHRyKG5ldyBWZWN0
b3I8U3RyaW5nPigpKTsKLSAgICBsYWJlbHMtPnJlc2VydmVDYXBhY2l0eShzaXplKTsKLSAgICBm
b3IgKGludDMyX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgVUVycm9yQ29kZSBz
dGF0dXMgPSBVX1pFUk9fRVJST1I7Ci0gICAgICAgIGludDMyX3QgbGVuZ3RoID0gdWRhdF9nZXRT
eW1ib2xzKGRhdGVGb3JtYXQuZ2V0KCksIHR5cGUsIHN0YXJ0SW5kZXggKyBpLCAwLCAwLCAmc3Rh
dHVzKTsKLSAgICAgICAgaWYgKHN0YXR1cyAhPSBVX0JVRkZFUl9PVkVSRkxPV19FUlJPUikKLSAg
ICAgICAgICAgIHJldHVybiBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4oKTsKLSAgICAgICAg
VmVjdG9yPFVDaGFyPiBidWZmZXIobGVuZ3RoKTsKLSAgICAgICAgc3RhdHVzID0gVV9aRVJPX0VS
Uk9SOwotICAgICAgICB1ZGF0X2dldFN5bWJvbHMoZGF0ZUZvcm1hdC5nZXQoKSwgdHlwZSwgc3Rh
cnRJbmRleCArIGksIGJ1ZmZlci5kYXRhKCksIGxlbmd0aCwgJnN0YXR1cyk7Ci0gICAgICAgIGlm
IChVX0ZBSUxVUkUoc3RhdHVzKSkKLSAgICAgICAgICAgIHJldHVybiBQYXNzT3duUHRyPFZlY3Rv
cjxTdHJpbmc+ID4oKTsKLSAgICAgICAgbGFiZWxzLT5hcHBlbmQoU3RyaW5nOjphZG9wdChidWZm
ZXIpKTsKLSAgICB9Ci0gICAgcmV0dXJuIGxhYmVscy5yZWxlYXNlKCk7Ci19Ci0KLXN0YXRpYyBQ
YXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gY3JlYXRlTW9udGhMYWJlbHMoKQotewotICAgIE93
blB0cjxWZWN0b3I8U3RyaW5nPiA+IGxhYmVscyA9IGNyZWF0ZUxhYmVsVmVjdG9yKFVEQVRfTU9O
VEhTLCBVQ0FMX0pBTlVBUlksIDEyKTsKLSAgICByZXR1cm4gbGFiZWxzID8gbGFiZWxzLnJlbGVh
c2UoKSA6IGNyZWF0ZUZhbGxiYWNrTW9udGhMYWJlbHMoKTsKLX0KLQogY29uc3QgVmVjdG9yPFN0
cmluZz4mIG1vbnRoTGFiZWxzKCkKIHsKLSAgICBzdGF0aWMgY29uc3QgVmVjdG9yPFN0cmluZz4q
IGxhYmVscyA9IGNyZWF0ZU1vbnRoTGFiZWxzKCkubGVha1B0cigpOwotICAgIHJldHVybiAqbGFi
ZWxzOwotfQotCi1zdGF0aWMgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IGNyZWF0ZUZhbGxi
YWNrV2Vla0RheVNob3J0TGFiZWxzKCkKLXsKLSAgICBPd25QdHI8VmVjdG9yPFN0cmluZz4gPiBs
YWJlbHMgPSBhZG9wdFB0cihuZXcgVmVjdG9yPFN0cmluZz4oKSk7Ci0gICAgbGFiZWxzLT5yZXNl
cnZlQ2FwYWNpdHkoNyk7Ci0gICAgbGFiZWxzLT5hcHBlbmQoIlN1biIpOwotICAgIGxhYmVscy0+
YXBwZW5kKCJNb24iKTsKLSAgICBsYWJlbHMtPmFwcGVuZCgiVHVlIik7Ci0gICAgbGFiZWxzLT5h
cHBlbmQoIldlZCIpOwotICAgIGxhYmVscy0+YXBwZW5kKCJUaHUiKTsKLSAgICBsYWJlbHMtPmFw
cGVuZCgiRnJpIik7Ci0gICAgbGFiZWxzLT5hcHBlbmQoIlNhdCIpOwotICAgIHJldHVybiBsYWJl
bHMucmVsZWFzZSgpOwotfQotCi1zdGF0aWMgUGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IGNy
ZWF0ZVdlZWtEYXlTaG9ydExhYmVscygpCi17Ci0gICAgT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4g
bGFiZWxzID0gY3JlYXRlTGFiZWxWZWN0b3IoVURBVF9TSE9SVF9XRUVLREFZUywgVUNBTF9TVU5E
QVksIDcpOwotICAgIHJldHVybiBsYWJlbHMgPyBsYWJlbHMucmVsZWFzZSgpIDogY3JlYXRlRmFs
bGJhY2tXZWVrRGF5U2hvcnRMYWJlbHMoKTsKKyAgICByZXR1cm4gSUNVTG9jYWxlOjpjdXJyZW50
TG9jYWxlKCktPm1vbnRoTGFiZWxzKCk7CiB9CiAKIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB3ZWVr
RGF5U2hvcnRMYWJlbHMoKQogewotICAgIHN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiogbGFi
ZWxzID0gY3JlYXRlV2Vla0RheVNob3J0TGFiZWxzKCkubGVha1B0cigpOwotICAgIHJldHVybiAq
bGFiZWxzOwotfQotCi1zdGF0aWMgdW5zaWduZWQgZ2V0Rmlyc3REYXlPZldlZWsoKQotewotICAg
IFNjb3BlZERhdGVGb3JtYXQgZGF0ZUZvcm1hdDsKLSAgICBpZiAoIWRhdGVGb3JtYXQuZ2V0KCkp
Ci0gICAgICAgIHJldHVybiAwOwotICAgIHVuc2lnbmVkIGZpcnN0RGF5ID0gdWNhbF9nZXRBdHRy
aWJ1dGUodWRhdF9nZXRDYWxlbmRhcihkYXRlRm9ybWF0LmdldCgpKSwgVUNBTF9GSVJTVF9EQVlf
T0ZfV0VFSykgLSBVQ0FMX1NVTkRBWTsKLSAgICByZXR1cm4gZmlyc3REYXk7CisgICAgcmV0dXJu
IElDVUxvY2FsZTo6Y3VycmVudExvY2FsZSgpLT53ZWVrRGF5U2hvcnRMYWJlbHMoKTsKIH0KIAog
dW5zaWduZWQgZmlyc3REYXlPZldlZWsoKQogewotICAgIHN0YXRpYyB1bnNpZ25lZCBmaXJzdERh
eSA9IGdldEZpcnN0RGF5T2ZXZWVrKCk7Ci0gICAgcmV0dXJuIGZpcnN0RGF5OworICAgIHJldHVy
biBJQ1VMb2NhbGU6OmN1cnJlbnRMb2NhbGUoKS0+Zmlyc3REYXlPZldlZWsoKTsKIH0KIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWREYXRlSUNV
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkRGF0ZUlDVS5jcHAK
aW5kZXggNTY5OTllNGNhMDhhYmVjNmE1NWRjODU1N2Q3ZWMyNDYxNDAxOGRkZS4uZTMxMmQ1Y2E5
N2FkMDk1MWUyMzJhMGY1ZTMyMDFhMjhmOGRlZmRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWREYXRlSUNVLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZERhdGVJQ1UuY3BwCkBAIC0zMSw0NCArMzEsMTggQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWREYXRlLmgiCiAKLSNpbmNs
dWRlICJMYW5ndWFnZS5oIgorI2luY2x1ZGUgIklDVUxvY2FsZS5oIgogI2luY2x1ZGUgPGxpbWl0
cz4KLSNpbmNsdWRlIDx1bmljb2RlL3VkYXQuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0j
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAKLXVzaW5nIG5hbWVzcGFjZSBpY3U7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBpbmxpbmUgVURhdGVGb3JtYXQqIGNyZWF0ZVNob3J0RGF0
ZUZvcm1hdHRlcigpCi17Ci0gICAgY29uc3QgVUNoYXIgZ210VGltZXpvbmVbM10gPSB7J0cnLCAn
TScsICdUJ307Ci0gICAgVUVycm9yQ29kZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7Ci0gICAgcmV0
dXJuIHVkYXRfb3BlbihVREFUX05PTkUsIFVEQVRfU0hPUlQsIGRlZmF1bHRMYW5ndWFnZSgpLnV0
ZjgoKS5kYXRhKCksIGdtdFRpbWV6b25lLCBXVEZfQVJSQVlfTEVOR1RIKGdtdFRpbWV6b25lKSwg
MCwgLTEsICZzdGF0dXMpOwotfQotCiBkb3VibGUgcGFyc2VMb2NhbGl6ZWREYXRlKGNvbnN0IFN0
cmluZyYgaW5wdXQsIERhdGVDb21wb25lbnRzOjpUeXBlIHR5cGUpCiB7CiAgICAgc3dpdGNoICh0
eXBlKSB7Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50czo6RGF0ZTogewotICAgICAgICBpZiAoaW5w
dXQubGVuZ3RoKCkgPiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obnVtZXJpY19saW1pdHM8aW50MzJf
dD46Om1heCgpKSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBpbnQzMl90IGlucHV0TGVu
Z3RoID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4oaW5wdXQubGVuZ3RoKCkpOwotICAgICAgICBVRGF0
ZUZvcm1hdCogZGF0ZUZvcm1hdCA9IGNyZWF0ZVNob3J0RGF0ZUZvcm1hdHRlcigpOwotICAgICAg
ICBpZiAoIWRhdGVGb3JtYXQpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgVUVycm9yQ29k
ZSBzdGF0dXMgPSBVX1pFUk9fRVJST1I7Ci0gICAgICAgIGludDMyX3QgcGFyc2VQb3NpdGlvbiA9
IDA7Ci0gICAgICAgIFVEYXRlIGRhdGUgPSB1ZGF0X3BhcnNlKGRhdGVGb3JtYXQsIGlucHV0LmNo
YXJhY3RlcnMoKSwgaW5wdXRMZW5ndGgsICZwYXJzZVBvc2l0aW9uLCAmc3RhdHVzKTsKLSAgICAg
ICAgdWRhdF9jbG9zZShkYXRlRm9ybWF0KTsKLSAgICAgICAgaWYgKHBhcnNlUG9zaXRpb24gIT0g
aW5wdXRMZW5ndGggfHwgVV9GQUlMVVJFKHN0YXR1cykpCi0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgLy8gVURhdGUsIHdoaWNoIGlzIGFuIGFsaWFzIG9mIGRvdWJsZSwgaXMgY29tcGF0aWJs
ZSB3aXRoIG91ciBleHBlY3RhdGlvbi4KLSAgICAgICAgcmV0dXJuIGRhdGU7Ci0gICAgfQorICAg
IGNhc2UgRGF0ZUNvbXBvbmVudHM6OkRhdGU6CisgICAgICAgIHJldHVybiBJQ1VMb2NhbGU6OmN1
cnJlbnRMb2NhbGUoKS0+cGFyc2VMb2NhbGl6ZWREYXRlKGlucHV0KTsKICAgICBjYXNlIERhdGVD
b21wb25lbnRzOjpEYXRlVGltZToKICAgICBjYXNlIERhdGVDb21wb25lbnRzOjpEYXRlVGltZUxv
Y2FsOgogICAgIGNhc2UgRGF0ZUNvbXBvbmVudHM6Ok1vbnRoOgpAQCAtODMsMjUgKzU3LDggQEAg
ZG91YmxlIHBhcnNlTG9jYWxpemVkRGF0ZShjb25zdCBTdHJpbmcmIGlucHV0LCBEYXRlQ29tcG9u
ZW50czo6VHlwZSB0eXBlKQogU3RyaW5nIGZvcm1hdExvY2FsaXplZERhdGUoY29uc3QgRGF0ZUNv
bXBvbmVudHMmIGRhdGVDb21wb25lbnRzKQogewogICAgIHN3aXRjaCAoZGF0ZUNvbXBvbmVudHMu
dHlwZSgpKSB7Ci0gICAgY2FzZSBEYXRlQ29tcG9uZW50czo6RGF0ZTogewotICAgICAgICBVRGF0
ZUZvcm1hdCogZGF0ZUZvcm1hdCA9IGNyZWF0ZVNob3J0RGF0ZUZvcm1hdHRlcigpOwotICAgICAg
ICBpZiAoIWRhdGVGb3JtYXQpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZG91YmxlIGlu
cHV0ID0gZGF0ZUNvbXBvbmVudHMubWlsbGlzZWNvbmRzU2luY2VFcG9jaCgpOwotICAgICAgICBV
RXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKLSAgICAgICAgaW50MzJfdCBsZW5ndGgg
PSB1ZGF0X2Zvcm1hdChkYXRlRm9ybWF0LCBpbnB1dCwgMCwgMCwgMCwgJnN0YXR1cyk7Ci0gICAg
ICAgIGlmIChzdGF0dXMgIT0gVV9CVUZGRVJfT1ZFUkZMT1dfRVJST1IpIHsKLSAgICAgICAgICAg
IHVkYXRfY2xvc2UoZGF0ZUZvcm1hdCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQot
ICAgICAgICBWZWN0b3I8VUNoYXI+IGJ1ZmZlcihsZW5ndGgpOwotICAgICAgICBzdGF0dXMgPSBV
X1pFUk9fRVJST1I7Ci0gICAgICAgIHVkYXRfZm9ybWF0KGRhdGVGb3JtYXQsIGlucHV0LCBidWZm
ZXIuZGF0YSgpLCBsZW5ndGgsIDAsICZzdGF0dXMpOwotICAgICAgICB1ZGF0X2Nsb3NlKGRhdGVG
b3JtYXQpOwotICAgICAgICBpZiAoVV9GQUlMVVJFKHN0YXR1cykpCi0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6YWRvcHQoYnVmZmVyKTsKLSAgICB9CisgICAgY2Fz
ZSBEYXRlQ29tcG9uZW50czo6RGF0ZToKKyAgICAgICAgcmV0dXJuIElDVUxvY2FsZTo6Y3VycmVu
dExvY2FsZSgpLT5mb3JtYXRMb2NhbGl6ZWREYXRlKGRhdGVDb21wb25lbnRzKTsKICAgICBjYXNl
IERhdGVDb21wb25lbnRzOjpEYXRlVGltZToKICAgICBjYXNlIERhdGVDb21wb25lbnRzOjpEYXRl
VGltZUxvY2FsOgogICAgIGNhc2UgRGF0ZUNvbXBvbmVudHM6Ok1vbnRoOgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>