<?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>197866</bug_id>
          
          <creation_ts>2019-05-13 19:12:39 -0700</creation_ts>
          <short_desc>[JSC] Compress JIT related data more by using Packed&lt;&gt;</short_desc>
          <delta_ts>2019-05-13 19:35:19 -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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1535920</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-05-13 19:12:39 -0700</bug_when>
    <thetext>[JSC] Compress JIT related data more by using Packed&lt;&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535921</commentid>
    <comment_count>1</comment_count>
      <attachid>369811</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-05-13 19:16:53 -0700</bug_when>
    <thetext>Created attachment 369811
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535922</commentid>
    <comment_count>2</comment_count>
      <attachid>369811</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-05-13 19:23:15 -0700</bug_when>
    <thetext>Comment on attachment 369811
Patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        This patch leverages Packed&lt;&gt; more to reduce JIT related data size. When we measure memory usage on Gmail, we found that much memory is

&quot;much memory&quot; =&gt; &quot;a lot of memory&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535930</commentid>
    <comment_count>3</comment_count>
      <attachid>369811</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-05-13 19:31:47 -0700</bug_when>
    <thetext>Comment on attachment 369811
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:8
&gt;&gt; +        This patch leverages Packed&lt;&gt; more to reduce JIT related data size. When we measure memory usage on Gmail, we found that much memory is
&gt; 
&gt; &quot;much memory&quot; =&gt; &quot;a lot of memory&quot;

Thanks, fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535932</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-05-13 19:34:34 -0700</bug_when>
    <thetext>Committed r245270: &lt;https://trac.webkit.org/changeset/245270&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1535933</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-13 19:35:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/50750308&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>369811</attachid>
            <date>2019-05-13 19:16:53 -0700</date>
            <delta_ts>2019-05-13 19:23:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197866-20190513191653.patch</filename>
            <type>text/plain</type>
            <size>19363</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1MjIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
ZWI1YjVjNWFiYTZjMzI5YzdkODE0NzEzMWQwOTEwNTEyNTBlYWMxLi5iNjk5YWVmNjM4ZmM1ODU0
Mzk0ZjBiMGJkZDUwYWVhZDk3OTg3OWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MiBAQAorMjAxOS0wNS0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIENvbXByZXNzIEpJVCByZWxhdGVkIGRhdGEgbW9yZSBieSB1c2lu
ZyBQYWNrZWQ8PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk3ODY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBsZXZlcmFnZXMgUGFja2VkPD4gbW9yZSB0byByZWR1Y2UgSklUIHJlbGF0
ZWQgZGF0YSBzaXplLiBXaGVuIHdlIG1lYXN1cmUgbWVtb3J5IHVzYWdlIG9uIEdtYWlsLCB3ZSBm
b3VuZCB0aGF0IG11Y2ggbWVtb3J5IGlzCisgICAgICAgIGNvbnN1bWVkIGluIERGRyBkYXRhLiBU
aGlzIHBhdGNoIGF0dGVtcHRzIHRvIHJlZHVjZSB0aGF0IHNpemUgYnkgdXNpbmcgUGFja2VkPD4g
dG8gbWFrZSB2YXJpb3VzIGRhdGEgc3RydWN0dXJlJ3MgYWxpZ25tZW50IDEuCisKKyAgICAgICAg
KiBkZmcvREZHQ29tbW9uRGF0YS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Q29tbW9uRGF0YTo6
c2hyaW5rVG9GaXQpOiBBZGQgbW9yZSBzaHJpbmtUb0ZpdC4KKyAgICAgICAgKiBkZmcvREZHTWlu
aWZpZWRJRC5oOiBNYWtlIGFsaWdubWVudCA9IDEuCisgICAgICAgIChKU0M6OkRGRzo6TWluaWZp
ZWRJRDo6b3BlcmF0b3IhIGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpNaW5pZmllZElEOjpv
cGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpNaW5pZmllZElEOjpvcGVyYXRv
ciE9IGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpNaW5pZmllZElEOjpvcGVyYXRvcjwgY29u
c3QpOgorICAgICAgICAoSlNDOjpERkc6Ok1pbmlmaWVkSUQ6Om9wZXJhdG9yPiBjb25zdCk6Cisg
ICAgICAgIChKU0M6OkRGRzo6TWluaWZpZWRJRDo6b3BlcmF0b3I8PSBjb25zdCk6CisgICAgICAg
IChKU0M6OkRGRzo6TWluaWZpZWRJRDo6b3BlcmF0b3I+PSBjb25zdCk6CisgICAgICAgIChKU0M6
OkRGRzo6TWluaWZpZWRJRDo6aGFzaCBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6TWluaWZp
ZWRJRDo6ZHVtcCBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6TWluaWZpZWRJRDo6aXNIYXNo
VGFibGVEZWxldGVkVmFsdWUgY29uc3QpOgorICAgICAgICAoSlNDOjpERkc6Ok1pbmlmaWVkSUQ6
OmJpdHMgY29uc3QpOgorICAgICAgICAqIGRmZy9ERkdNaW5pZmllZElESW5saW5lcy5oOgorICAg
ICAgICAoSlNDOjpERkc6Ok1pbmlmaWVkSUQ6Ok1pbmlmaWVkSUQpOgorICAgICAgICAqIGRmZy9E
RkdNaW5pZmllZE5vZGUuY3BwOgorICAgICAgICAoSlNDOjpERkc6Ok1pbmlmaWVkTm9kZTo6ZnJv
bU5vZGUpOiBNYWtlIHNpemVvZihNaW5pZmllZE5vZGUpIGZyb20gMTYgdG8gMTMgd2l0aCBhbGln
bm1lbnQgPSAxLgorICAgICAgICAqIGRmZy9ERkdNaW5pZmllZE5vZGUuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpNaW5pZmllZE5vZGU6OmlkIGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpNaW5p
ZmllZE5vZGU6Omhhc0NvbnN0YW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpNaW5pZmll
ZE5vZGU6OmNvbnN0YW50IGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpNaW5pZmllZE5vZGU6
OmlzUGhhbnRvbURpcmVjdEFyZ3VtZW50cyBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6TWlu
aWZpZWROb2RlOjppc1BoYW50b21DbG9uZWRBcmd1bWVudHMgY29uc3QpOgorICAgICAgICAoSlND
OjpERkc6Ok1pbmlmaWVkTm9kZTo6aGFzSW5saW5lQ2FsbEZyYW1lIGNvbnN0KToKKyAgICAgICAg
KEpTQzo6REZHOjpNaW5pZmllZE5vZGU6OmlubGluZUNhbGxGcmFtZSBjb25zdCk6CisgICAgICAg
IChKU0M6OkRGRzo6TWluaWZpZWROb2RlOjpvcCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkRGRzo6TWluaWZpZWROb2RlOjpoYXNJbmxpbmVDYWxsRnJhbWUpOiBEZWxldGVkLgorICAg
ICAgICAqIGRmZy9ERkdWYXJpYWJsZUV2ZW50Lmg6IE1ha2Ugc2l6ZW9mKFZhcmlhYmxlRXZlbnQp
IGZyb20gMTIgdG8gMTAgd2l0aCBhbGlnbm1lbnQgPSAxLgorICAgICAgICAoSlNDOjpERkc6OlZh
cmlhYmxlRXZlbnQ6OmZpbGxHUFIpOgorICAgICAgICAoSlNDOjpERkc6OlZhcmlhYmxlRXZlbnQ6
OmZpbGxQYWlyKToKKyAgICAgICAgKEpTQzo6REZHOjpWYXJpYWJsZUV2ZW50OjpmaWxsRlBSKToK
KyAgICAgICAgKEpTQzo6REZHOjpWYXJpYWJsZUV2ZW50OjpiaXJ0aCk6CisgICAgICAgIChKU0M6
OkRGRzo6VmFyaWFibGVFdmVudDo6c3BpbGwpOgorICAgICAgICAoSlNDOjpERkc6OlZhcmlhYmxl
RXZlbnQ6OmRlYXRoKToKKyAgICAgICAgKEpTQzo6REZHOjpWYXJpYWJsZUV2ZW50OjpzZXRMb2Nh
bCk6CisgICAgICAgIChKU0M6OkRGRzo6VmFyaWFibGVFdmVudDo6bW92SGludCk6CisgICAgICAg
IChKU0M6OkRGRzo6VmFyaWFibGVFdmVudDo6aWQgY29uc3QpOgorICAgICAgICAoSlNDOjpERkc6
OlZhcmlhYmxlRXZlbnQ6OmdwciBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6VmFyaWFibGVF
dmVudDo6dGFnR1BSIGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpWYXJpYWJsZUV2ZW50Ojpw
YXlsb2FkR1BSIGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpWYXJpYWJsZUV2ZW50OjpmcHIg
Y29uc3QpOgorICAgICAgICAoSlNDOjpERkc6OlZhcmlhYmxlRXZlbnQ6OnNwaWxsUmVnaXN0ZXIg
Y29uc3QpOgorICAgICAgICAoSlNDOjpERkc6OlZhcmlhYmxlRXZlbnQ6OmJ5dGVjb2RlUmVnaXN0
ZXIgY29uc3QpOgorICAgICAgICAoSlNDOjpERkc6OlZhcmlhYmxlRXZlbnQ6Om1hY2hpbmVSZWdp
c3RlciBjb25zdCk6CisgICAgICAgIChKU0M6OkRGRzo6VmFyaWFibGVFdmVudDo6dmFyaWFibGVS
ZXByZXNlbnRhdGlvbiBjb25zdCk6CisgICAgICAgICogZGZnL0RGR1ZhcmlhYmxlRXZlbnRTdHJl
YW0uY3BwOgorICAgICAgICAoSlNDOjpERkc6OnRyeVRvU2V0Q29uc3RhbnRSZWNvdmVyeSk6CisK
IDIwMTktMDUtMTIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbSlNDXSBDb21wcmVzcyBXYXRjaHBvaW50IHNpemUgYnkgdXNpbmcgZW51bSB0eXBlIGFuZCBQ
YWNrZWQ8PiBkYXRhIHN0cnVjdHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDb21tb25EYXRhLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29t
bW9uRGF0YS5jcHAKaW5kZXggNzM1NTRiY2I4MGZlOTlkZWU1ZTVhMjMxODU0Mjk3NzljNjFlNGYy
MS4uNWI2Y2Y1Y2ZjZDc0NGUzZjg3NDU0YjcwOTk5MzJjY2VjODdkMTM2MSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb25EYXRhLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbkRhdGEuY3BwCkBAIC04NSw5ICs4NSwxMiBAQCB2
b2lkIENvbW1vbkRhdGE6OnJlbW92ZUNhbGxTaXRlSW5kZXgoQ2FsbFNpdGVJbmRleCBjYWxsU2l0
ZSkKIHZvaWQgQ29tbW9uRGF0YTo6c2hyaW5rVG9GaXQoKQogewogICAgIGNvZGVPcmlnaW5zLnNo
cmlua1RvRml0KCk7CisgICAgZGZnSWRlbnRpZmllcnMuc2hyaW5rVG9GaXQoKTsKICAgICB3ZWFr
UmVmZXJlbmNlcy5zaHJpbmtUb0ZpdCgpOworICAgIHdlYWtTdHJ1Y3R1cmVSZWZlcmVuY2VzLnNo
cmlua1RvRml0KCk7CiAgICAgdHJhbnNpdGlvbnMuc2hyaW5rVG9GaXQoKTsKICAgICBjYXRjaEVu
dHJ5cG9pbnRzLnNocmlua1RvRml0KCk7CisgICAganVtcFJlcGxhY2VtZW50cy5zaHJpbmtUb0Zp
dCgpOwogfQogCiBzdGF0aWMgTG9jayBwY0NvZGVCbG9ja01hcExvY2s7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR01pbmlmaWVkSUQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTWluaWZpZWRJRC5oCmluZGV4IGE2NDVjZmE3Yjc0MjkyZjljY2JmMGIx
OThiZWI3OWYzN2Y4NzQyNDYuLjhjZGNmYzc1OGNjZjA0OTIxMzQ0NGZmY2RjMmViMjgwMWY3OTAx
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTWluaWZpZWRJRC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTWluaWZpZWRJRC5oCkBAIC00Miwy
MCArNDIsMjAgQEAgY2xhc3MgTWluaWZpZWRJRCB7CiAgICAgTWluaWZpZWRJRChXVEY6Okhhc2hU
YWJsZURlbGV0ZWRWYWx1ZVR5cGUpIDogbV9pbmRleChvdGhlckludmFsaWRJbmRleCgpKSB7IH0K
ICAgICBleHBsaWNpdCBNaW5pZmllZElEKE5vZGUqIG5vZGUpOwogICAgIAotICAgIGJvb2wgb3Bl
cmF0b3IhKCkgY29uc3QgeyByZXR1cm4gbV9pbmRleCA9PSBpbnZhbGlkSW5kZXgoKTsgfQorICAg
IGJvb2wgb3BlcmF0b3IhKCkgY29uc3QgeyByZXR1cm4gbV9pbmRleC5nZXQoKSA9PSBpbnZhbGlk
SW5kZXgoKTsgfQogICAgIAotICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBNaW5pZmllZElEJiBv
dGhlcikgY29uc3QgeyByZXR1cm4gbV9pbmRleCA9PSBvdGhlci5tX2luZGV4OyB9Ci0gICAgYm9v
bCBvcGVyYXRvciE9KGNvbnN0IE1pbmlmaWVkSUQmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2lu
ZGV4ICE9IG90aGVyLm1faW5kZXg7IH0KLSAgICBib29sIG9wZXJhdG9yPChjb25zdCBNaW5pZmll
ZElEJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9pbmRleCA8IG90aGVyLm1faW5kZXg7IH0KLSAg
ICBib29sIG9wZXJhdG9yPihjb25zdCBNaW5pZmllZElEJiBvdGhlcikgY29uc3QgeyByZXR1cm4g
bV9pbmRleCA+IG90aGVyLm1faW5kZXg7IH0KLSAgICBib29sIG9wZXJhdG9yPD0oY29uc3QgTWlu
aWZpZWRJRCYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1faW5kZXggPD0gb3RoZXIubV9pbmRleDsg
fQotICAgIGJvb2wgb3BlcmF0b3I+PShjb25zdCBNaW5pZmllZElEJiBvdGhlcikgY29uc3QgeyBy
ZXR1cm4gbV9pbmRleCA+PSBvdGhlci5tX2luZGV4OyB9CisgICAgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IE1pbmlmaWVkSUQmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2luZGV4LmdldCgpID09IG90
aGVyLm1faW5kZXguZ2V0KCk7IH0KKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgTWluaWZpZWRJ
RCYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1faW5kZXguZ2V0KCkgIT0gb3RoZXIubV9pbmRleC5n
ZXQoKTsgfQorICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IE1pbmlmaWVkSUQmIG90aGVyKSBjb25z
dCB7IHJldHVybiBtX2luZGV4LmdldCgpIDwgb3RoZXIubV9pbmRleC5nZXQoKTsgfQorICAgIGJv
b2wgb3BlcmF0b3I+KGNvbnN0IE1pbmlmaWVkSUQmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2lu
ZGV4LmdldCgpID4gb3RoZXIubV9pbmRleC5nZXQoKTsgfQorICAgIGJvb2wgb3BlcmF0b3I8PShj
b25zdCBNaW5pZmllZElEJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9pbmRleC5nZXQoKSA8PSBv
dGhlci5tX2luZGV4LmdldCgpOyB9CisgICAgYm9vbCBvcGVyYXRvcj49KGNvbnN0IE1pbmlmaWVk
SUQmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2luZGV4LmdldCgpID49IG90aGVyLm1faW5kZXgu
Z2V0KCk7IH0KICAgICAKLSAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3QgeyByZXR1cm4gV1RGOjpJ
bnRIYXNoPHVuc2lnbmVkPjo6aGFzaChtX2luZGV4KTsgfQorICAgIHVuc2lnbmVkIGhhc2goKSBj
b25zdCB7IHJldHVybiBXVEY6OkludEhhc2g8dW5zaWduZWQ+OjpoYXNoKG1faW5kZXguZ2V0KCkp
OyB9CiAgICAgCi0gICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0IHsgb3V0LnBy
aW50KG1faW5kZXgpOyB9CisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0IHsg
b3V0LnByaW50KG1faW5kZXguZ2V0KCkpOyB9CiAgICAgCi0gICAgYm9vbCBpc0hhc2hUYWJsZURl
bGV0ZWRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5kZXggPT0gb3RoZXJJbnZhbGlkSW5kZXgo
KTsgfQorICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdCB7IHJldHVybiBt
X2luZGV4LmdldCgpID09IG90aGVySW52YWxpZEluZGV4KCk7IH0KICAgICAKICAgICBzdGF0aWMg
TWluaWZpZWRJRCBmcm9tQml0cyh1bnNpZ25lZCB2YWx1ZSkKICAgICB7CkBAIC02NCw3ICs2NCw3
IEBAIGNsYXNzIE1pbmlmaWVkSUQgewogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAg
ICAKLSAgICB1bnNpZ25lZCBiaXRzKCkgY29uc3QgeyByZXR1cm4gbV9pbmRleDsgfQorICAgIHVu
c2lnbmVkIGJpdHMoKSBjb25zdCB7IHJldHVybiBtX2luZGV4LmdldCgpOyB9CiAKIHByaXZhdGU6
CiAgICAgZnJpZW5kIGNsYXNzIE1pbmlmaWVkTm9kZTsKQEAgLTcyLDcgKzcyLDcgQEAgY2xhc3Mg
TWluaWZpZWRJRCB7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBpbnZhbGlkSW5kZXgo
KSB7IHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oLTEpOyB9CiAgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBvdGhlckludmFsaWRJbmRleCgpIHsgcmV0dXJuIHN0YXRpY19jYXN0PHVu
c2lnbmVkPigtMik7IH0KICAgICAKLSAgICB1bnNpZ25lZCBtX2luZGV4IHsgaW52YWxpZEluZGV4
KCkgfTsKKyAgICBQYWNrZWQ8dW5zaWduZWQ+IG1faW5kZXggeyBpbnZhbGlkSW5kZXgoKSB9Owog
fTsKIAogc3RydWN0IE1pbmlmaWVkSURIYXNoIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTWluaWZpZWRJRElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTWluaWZpZWRJRElubGluZXMuaAppbmRleCAzODY5Y2Y3MTJkZWU1MDYyMjE4NjU5
ZTZmZTZlYzc1ZDQyM2Y5ZTdhLi41ZWE4MTM3NTZmOTk4MjQ0OTQ1NTY1YjQxMGQ4OWVjMDY2YTlm
MmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR01pbmlmaWVkSURJ
bmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNaW5pZmllZElESW5s
aW5lcy5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBERkcgewogaW5saW5lIE1pbmlmaWVk
SUQ6Ok1pbmlmaWVkSUQoTm9kZSogbm9kZSkKICAgICA6IG1faW5kZXgobm9kZS0+aW5kZXgoKSkK
IHsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2luZGV4ICE9IGludmFsaWRJbmRleCgpICYmIG1faW5k
ZXggIT0gb3RoZXJJbnZhbGlkSW5kZXgoKSk7CisgICAgUkVMRUFTRV9BU1NFUlQobV9pbmRleC5n
ZXQoKSAhPSBpbnZhbGlkSW5kZXgoKSAmJiBtX2luZGV4LmdldCgpICE9IG90aGVySW52YWxpZElu
ZGV4KCkpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR01pbmlmaWVkTm9kZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR01pbmlmaWVkTm9kZS5jcHAKaW5kZXggOWEyZmY5OTFiMzNjYzA5MmE5
MjdkZGY2ODg5OTNmMzg1NWJkZDUyYi4uOTAzMjRjOTQ2YTIwMjUyYTAwNDIzODUzZGMwMDBkZDI4
YjU5YWE5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNaW5pZmll
ZE5vZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTWluaWZpZWROb2Rl
LmNwcApAQCAtMzksNyArMzksOSBAQCBNaW5pZmllZE5vZGUgTWluaWZpZWROb2RlOjpmcm9tTm9k
ZShOb2RlKiBub2RlKQogICAgIEFTU0VSVChiZWxvbmdzSW5NaW5pZmllZEdyYXBoKG5vZGUtPm9w
KCkpKTsKICAgICBNaW5pZmllZE5vZGUgcmVzdWx0OwogICAgIHJlc3VsdC5tX2lkID0gTWluaWZp
ZWRJRChub2RlKTsKLSAgICByZXN1bHQubV9vcCA9IG5vZGUtPm9wKCk7CisgICAgcmVzdWx0Lm1f
aGFzQ29uc3RhbnQgPSBoYXNDb25zdGFudChub2RlLT5vcCgpKTsKKyAgICByZXN1bHQubV9pc1Bo
YW50b21EaXJlY3RBcmd1bWVudHMgPSBub2RlLT5vcCgpID09IFBoYW50b21EaXJlY3RBcmd1bWVu
dHM7CisgICAgcmVzdWx0Lm1faXNQaGFudG9tQ2xvbmVkQXJndW1lbnRzID0gbm9kZS0+b3AoKSA9
PSBQaGFudG9tQ2xvbmVkQXJndW1lbnRzOwogICAgIGlmIChoYXNDb25zdGFudChub2RlLT5vcCgp
KSkKICAgICAgICAgcmVzdWx0Lm1faW5mbyA9IEpTVmFsdWU6OmVuY29kZShub2RlLT5hc0pTVmFs
dWUoKSk7CiAgICAgZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR01pbmlmaWVkTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNaW5pZmll
ZE5vZGUuaAppbmRleCBkZTZjZDRjN2E3MTI4ODljMDM3MzBkM2Q2MmY3OWUzYjM3NGE5OWJmLi5h
ZTVmOWQwMTdlNWVkMTc0MzkwZTJjODRlMzYxZjM4NTdlNzIxZTIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR01pbmlmaWVkTm9kZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHTWluaWZpZWROb2RlLmgKQEAgLTU3LDIwICs1NywyMSBAQCBjbGFz
cyBNaW5pZmllZE5vZGUgewogICAgIHN0YXRpYyBNaW5pZmllZE5vZGUgZnJvbU5vZGUoTm9kZSop
OwogICAgIAogICAgIE1pbmlmaWVkSUQgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9Ci0gICAg
Tm9kZVR5cGUgb3AoKSBjb25zdCB7IHJldHVybiBtX29wOyB9CiAgICAgCi0gICAgYm9vbCBoYXND
b25zdGFudCgpIGNvbnN0IHsgcmV0dXJuIGhhc0NvbnN0YW50KG1fb3ApOyB9CisgICAgYm9vbCBo
YXNDb25zdGFudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzQ29uc3RhbnQ7IH0KICAgICAKICAgICBK
U1ZhbHVlIGNvbnN0YW50KCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjpk
ZWNvZGUoYml0d2lzZV9jYXN0PEVuY29kZWRKU1ZhbHVlPihtX2luZm8pKTsKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmRlY29kZShiaXR3aXNlX2Nhc3Q8RW5jb2RlZEpTVmFsdWU+KG1faW5mby5n
ZXQoKSkpOwogICAgIH0KICAgICAKLSAgICBib29sIGhhc0lubGluZUNhbGxGcmFtZSgpIGNvbnN0
IHsgcmV0dXJuIGhhc0lubGluZUNhbGxGcmFtZShtX29wKTsgfQorICAgIGJvb2wgaXNQaGFudG9t
RGlyZWN0QXJndW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV9pc1BoYW50b21EaXJlY3RBcmd1bWVu
dHM7IH0KKyAgICBib29sIGlzUGhhbnRvbUNsb25lZEFyZ3VtZW50cygpIGNvbnN0IHsgcmV0dXJu
IG1faXNQaGFudG9tQ2xvbmVkQXJndW1lbnRzOyB9CisgICAgYm9vbCBoYXNJbmxpbmVDYWxsRnJh
bWUoKSBjb25zdCB7IHJldHVybiBtX2lzUGhhbnRvbURpcmVjdEFyZ3VtZW50cyB8fCBtX2lzUGhh
bnRvbUNsb25lZEFyZ3VtZW50czsgfQogICAgIAogICAgIElubGluZUNhbGxGcmFtZSogaW5saW5l
Q2FsbEZyYW1lKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8SW5s
aW5lQ2FsbEZyYW1lKj4oc3RhdGljX2Nhc3Q8dWludHB0cl90PihtX2luZm8pKTsKKyAgICAgICAg
cmV0dXJuIGJpdHdpc2VfY2FzdDxJbmxpbmVDYWxsRnJhbWUqPihzdGF0aWNfY2FzdDx1aW50cHRy
X3Q+KG1faW5mby5nZXQoKSkpOwogICAgIH0KICAgICAKICAgICBzdGF0aWMgTWluaWZpZWRJRCBn
ZXRJRChNaW5pZmllZE5vZGUqIG5vZGUpIHsgcmV0dXJuIG5vZGUtPmlkKCk7IH0KQEAgLTg1LDE0
ICs4NiwxMSBAQCBjbGFzcyBNaW5pZmllZE5vZGUgewogICAgICAgICByZXR1cm4gdHlwZSA9PSBK
U0NvbnN0YW50IHx8IHR5cGUgPT0gSW50NTJDb25zdGFudCB8fCB0eXBlID09IERvdWJsZUNvbnN0
YW50OwogICAgIH0KICAgICAKLSAgICBzdGF0aWMgYm9vbCBoYXNJbmxpbmVDYWxsRnJhbWUoTm9k
ZVR5cGUgdHlwZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0eXBlID09IFBoYW50b21EaXJlY3RB
cmd1bWVudHMgfHwgdHlwZSA9PSBQaGFudG9tQ2xvbmVkQXJndW1lbnRzOwotICAgIH0KLSAgICAK
LSAgICB1aW50NjRfdCBtX2luZm87CisgICAgUGFja2VkPHVpbnQ2NF90PiBtX2luZm87CiAgICAg
TWluaWZpZWRJRCBtX2lkOwotICAgIE5vZGVUeXBlIG1fb3A7CisgICAgYm9vbCBtX2hhc0NvbnN0
YW50IDogMTsKKyAgICBib29sIG1faXNQaGFudG9tRGlyZWN0QXJndW1lbnRzIDogMTsKKyAgICBi
b29sIG1faXNQaGFudG9tQ2xvbmVkQXJndW1lbnRzIDogMTsKIH07CiAKIH0gfSAvLyBuYW1lc3Bh
Y2UgSlNDOjpERkcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFy
aWFibGVFdmVudC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJpYWJsZUV2ZW50
LmgKaW5kZXggYWMyNTMyN2QxNGUxYzA4ZDdlNGIxNDU3MmE3YTEwNmIyMmMzNTM5Yi4uMjA2MGQ0
YTJmZDI3MjIzZGQ2ZjY5OWM2ZGJhZDZkMjI0NjdjOTgzNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJpYWJsZUV2ZW50LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdWYXJpYWJsZUV2ZW50LmgKQEAgLTM1LDcgKzM1LDcgQEAKIAogbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCi1lbnVtIFZhcmlhYmxlRXZlbnRLaW5kIHsKK2Vu
dW0gVmFyaWFibGVFdmVudEtpbmQgOiB1aW50OF90IHsKICAgICAvLyBNYXJrcyB0aGUgYmVnaW5u
aW5nIG9mIGEgY2hlY2twb2ludC4gSWYgeW91IGludGVycHJldCB0aGUgdmFyaWFibGUKICAgICAv
LyBldmVudHMgc3RhcnRpbmcgYXQgYSBSZXNldCBwb2ludCB0aGVuIHlvdSdsbCBnZXQgZXZlcnl0
aGluZyB5b3UgbmVlZC4KICAgICBSZXNldCwKQEAgLTEwMSwxMCArMTAxLDE0IEBAIGNsYXNzIFZh
cmlhYmxlRXZlbnQgewogICAgICAgICBBU1NFUlQoIShkYXRhRm9ybWF0ICYgRGF0YUZvcm1hdEpT
KSk7CiAjZW5kaWYKICAgICAgICAgVmFyaWFibGVFdmVudCBldmVudDsKLSAgICAgICAgZXZlbnQu
bV93aGljaC5pZCA9IGlkLmJpdHMoKTsKLSAgICAgICAgZXZlbnQubV9yZXByZXNlbnRhdGlvbi5n
cHIgPSBncHI7CisgICAgICAgIFdoaWNoVHlwZSB3aGljaDsKKyAgICAgICAgd2hpY2guaWQgPSBp
ZC5iaXRzKCk7CisgICAgICAgIFZhcmlhYmxlUmVwcmVzZW50YXRpb24gcmVwcmVzZW50YXRpb247
CisgICAgICAgIHJlcHJlc2VudGF0aW9uLmdwciA9IGdwcjsKICAgICAgICAgZXZlbnQubV9raW5k
ID0ga2luZDsKICAgICAgICAgZXZlbnQubV9kYXRhRm9ybWF0ID0gZGF0YUZvcm1hdDsKKyAgICAg
ICAgZXZlbnQubV93aGljaCA9IFdURk1vdmUod2hpY2gpOworICAgICAgICBldmVudC5tX3JlcHJl
c2VudGF0aW9uID0gV1RGTW92ZShyZXByZXNlbnRhdGlvbik7CiAgICAgICAgIHJldHVybiBldmVu
dDsKICAgICB9CiAgICAgCkBAIC0xMTMsMTEgKzExNywxNSBAQCBjbGFzcyBWYXJpYWJsZUV2ZW50
IHsKICAgICB7CiAgICAgICAgIEFTU0VSVChraW5kID09IEJpcnRoVG9GaWxsIHx8IGtpbmQgPT0g
RmlsbCk7CiAgICAgICAgIFZhcmlhYmxlRXZlbnQgZXZlbnQ7Ci0gICAgICAgIGV2ZW50Lm1fd2hp
Y2guaWQgPSBpZC5iaXRzKCk7Ci0gICAgICAgIGV2ZW50Lm1fcmVwcmVzZW50YXRpb24ucGFpci50
YWdHUFIgPSB0YWdHUFI7Ci0gICAgICAgIGV2ZW50Lm1fcmVwcmVzZW50YXRpb24ucGFpci5wYXls
b2FkR1BSID0gcGF5bG9hZEdQUjsKKyAgICAgICAgV2hpY2hUeXBlIHdoaWNoOworICAgICAgICB3
aGljaC5pZCA9IGlkLmJpdHMoKTsKKyAgICAgICAgVmFyaWFibGVSZXByZXNlbnRhdGlvbiByZXBy
ZXNlbnRhdGlvbjsKKyAgICAgICAgcmVwcmVzZW50YXRpb24ucGFpci50YWdHUFIgPSB0YWdHUFI7
CisgICAgICAgIHJlcHJlc2VudGF0aW9uLnBhaXIucGF5bG9hZEdQUiA9IHBheWxvYWRHUFI7CiAg
ICAgICAgIGV2ZW50Lm1fa2luZCA9IGtpbmQ7CiAgICAgICAgIGV2ZW50Lm1fZGF0YUZvcm1hdCA9
IERhdGFGb3JtYXRKUzsKKyAgICAgICAgZXZlbnQubV93aGljaCA9IFdURk1vdmUod2hpY2gpOwor
ICAgICAgICBldmVudC5tX3JlcHJlc2VudGF0aW9uID0gV1RGTW92ZShyZXByZXNlbnRhdGlvbik7
CiAgICAgICAgIHJldHVybiBldmVudDsKICAgICB9CiAjZW5kaWYgLy8gVVNFKEpTVkFMVUUzMl82
NCkKQEAgLTEyNiwxOCArMTM0LDI0IEBAIGNsYXNzIFZhcmlhYmxlRXZlbnQgewogICAgIHsKICAg
ICAgICAgQVNTRVJUKGtpbmQgPT0gQmlydGhUb0ZpbGwgfHwga2luZCA9PSBGaWxsKTsKICAgICAg
ICAgVmFyaWFibGVFdmVudCBldmVudDsKLSAgICAgICAgZXZlbnQubV93aGljaC5pZCA9IGlkLmJp
dHMoKTsKLSAgICAgICAgZXZlbnQubV9yZXByZXNlbnRhdGlvbi5mcHIgPSBmcHI7CisgICAgICAg
IFdoaWNoVHlwZSB3aGljaDsKKyAgICAgICAgd2hpY2guaWQgPSBpZC5iaXRzKCk7CisgICAgICAg
IFZhcmlhYmxlUmVwcmVzZW50YXRpb24gcmVwcmVzZW50YXRpb247CisgICAgICAgIHJlcHJlc2Vu
dGF0aW9uLmZwciA9IGZwcjsKICAgICAgICAgZXZlbnQubV9raW5kID0ga2luZDsKICAgICAgICAg
ZXZlbnQubV9kYXRhRm9ybWF0ID0gRGF0YUZvcm1hdERvdWJsZTsKKyAgICAgICAgZXZlbnQubV93
aGljaCA9IFdURk1vdmUod2hpY2gpOworICAgICAgICBldmVudC5tX3JlcHJlc2VudGF0aW9uID0g
V1RGTW92ZShyZXByZXNlbnRhdGlvbik7CiAgICAgICAgIHJldHVybiBldmVudDsKICAgICB9CiAg
ICAgCiAgICAgc3RhdGljIFZhcmlhYmxlRXZlbnQgYmlydGgoTWluaWZpZWRJRCBpZCkKICAgICB7
CiAgICAgICAgIFZhcmlhYmxlRXZlbnQgZXZlbnQ7Ci0gICAgICAgIGV2ZW50Lm1fd2hpY2guaWQg
PSBpZC5iaXRzKCk7CisgICAgICAgIFdoaWNoVHlwZSB3aGljaDsKKyAgICAgICAgd2hpY2guaWQg
PSBpZC5iaXRzKCk7CiAgICAgICAgIGV2ZW50Lm1fa2luZCA9IEJpcnRoOworICAgICAgICBldmVu
dC5tX3doaWNoID0gV1RGTW92ZSh3aGljaCk7CiAgICAgICAgIHJldHVybiBldmVudDsKICAgICB9
CiAgICAgCkBAIC0xNDUsMTggKzE1OSwyNCBAQCBjbGFzcyBWYXJpYWJsZUV2ZW50IHsKICAgICB7
CiAgICAgICAgIEFTU0VSVChraW5kID09IEJpcnRoVG9TcGlsbCB8fCBraW5kID09IFNwaWxsKTsK
ICAgICAgICAgVmFyaWFibGVFdmVudCBldmVudDsKLSAgICAgICAgZXZlbnQubV93aGljaC5pZCA9
IGlkLmJpdHMoKTsKLSAgICAgICAgZXZlbnQubV9yZXByZXNlbnRhdGlvbi52aXJ0dWFsUmVnID0g
dmlydHVhbFJlZ2lzdGVyLm9mZnNldCgpOworICAgICAgICBXaGljaFR5cGUgd2hpY2g7CisgICAg
ICAgIHdoaWNoLmlkID0gaWQuYml0cygpOworICAgICAgICBWYXJpYWJsZVJlcHJlc2VudGF0aW9u
IHJlcHJlc2VudGF0aW9uOworICAgICAgICByZXByZXNlbnRhdGlvbi52aXJ0dWFsUmVnID0gdmly
dHVhbFJlZ2lzdGVyLm9mZnNldCgpOwogICAgICAgICBldmVudC5tX2tpbmQgPSBraW5kOwogICAg
ICAgICBldmVudC5tX2RhdGFGb3JtYXQgPSBmb3JtYXQ7CisgICAgICAgIGV2ZW50Lm1fd2hpY2gg
PSBXVEZNb3ZlKHdoaWNoKTsKKyAgICAgICAgZXZlbnQubV9yZXByZXNlbnRhdGlvbiA9IFdURk1v
dmUocmVwcmVzZW50YXRpb24pOwogICAgICAgICByZXR1cm4gZXZlbnQ7CiAgICAgfQogICAgIAog
ICAgIHN0YXRpYyBWYXJpYWJsZUV2ZW50IGRlYXRoKE1pbmlmaWVkSUQgaWQpCiAgICAgewogICAg
ICAgICBWYXJpYWJsZUV2ZW50IGV2ZW50OwotICAgICAgICBldmVudC5tX3doaWNoLmlkID0gaWQu
Yml0cygpOworICAgICAgICBXaGljaFR5cGUgd2hpY2g7CisgICAgICAgIHdoaWNoLmlkID0gaWQu
Yml0cygpOwogICAgICAgICBldmVudC5tX2tpbmQgPSBEZWF0aDsKKyAgICAgICAgZXZlbnQubV93
aGljaCA9IFdURk1vdmUod2hpY2gpOwogICAgICAgICByZXR1cm4gZXZlbnQ7CiAgICAgfQogICAg
IApAQCAtMTY0LDE5ICsxODQsMjcgQEAgY2xhc3MgVmFyaWFibGVFdmVudCB7CiAgICAgICAgIFZp
cnR1YWxSZWdpc3RlciBieXRlY29kZVJlZywgVmlydHVhbFJlZ2lzdGVyIG1hY2hpbmVSZWcsIERh
dGFGb3JtYXQgZm9ybWF0KQogICAgIHsKICAgICAgICAgVmFyaWFibGVFdmVudCBldmVudDsKLSAg
ICAgICAgZXZlbnQubV93aGljaC52aXJ0dWFsUmVnID0gbWFjaGluZVJlZy5vZmZzZXQoKTsKLSAg
ICAgICAgZXZlbnQubV9yZXByZXNlbnRhdGlvbi52aXJ0dWFsUmVnID0gYnl0ZWNvZGVSZWcub2Zm
c2V0KCk7CisgICAgICAgIFdoaWNoVHlwZSB3aGljaDsKKyAgICAgICAgd2hpY2gudmlydHVhbFJl
ZyA9IG1hY2hpbmVSZWcub2Zmc2V0KCk7CisgICAgICAgIFZhcmlhYmxlUmVwcmVzZW50YXRpb24g
cmVwcmVzZW50YXRpb247CisgICAgICAgIHJlcHJlc2VudGF0aW9uLnZpcnR1YWxSZWcgPSBieXRl
Y29kZVJlZy5vZmZzZXQoKTsKICAgICAgICAgZXZlbnQubV9raW5kID0gU2V0TG9jYWxFdmVudDsK
ICAgICAgICAgZXZlbnQubV9kYXRhRm9ybWF0ID0gZm9ybWF0OworICAgICAgICBldmVudC5tX3do
aWNoID0gV1RGTW92ZSh3aGljaCk7CisgICAgICAgIGV2ZW50Lm1fcmVwcmVzZW50YXRpb24gPSBX
VEZNb3ZlKHJlcHJlc2VudGF0aW9uKTsKICAgICAgICAgcmV0dXJuIGV2ZW50OwogICAgIH0KICAg
ICAKICAgICBzdGF0aWMgVmFyaWFibGVFdmVudCBtb3ZIaW50KE1pbmlmaWVkSUQgaWQsIFZpcnR1
YWxSZWdpc3RlciBieXRlY29kZVJlZykKICAgICB7CiAgICAgICAgIFZhcmlhYmxlRXZlbnQgZXZl
bnQ7Ci0gICAgICAgIGV2ZW50Lm1fd2hpY2guaWQgPSBpZC5iaXRzKCk7Ci0gICAgICAgIGV2ZW50
Lm1fcmVwcmVzZW50YXRpb24udmlydHVhbFJlZyA9IGJ5dGVjb2RlUmVnLm9mZnNldCgpOworICAg
ICAgICBXaGljaFR5cGUgd2hpY2g7CisgICAgICAgIHdoaWNoLmlkID0gaWQuYml0cygpOworICAg
ICAgICBWYXJpYWJsZVJlcHJlc2VudGF0aW9uIHJlcHJlc2VudGF0aW9uOworICAgICAgICByZXBy
ZXNlbnRhdGlvbi52aXJ0dWFsUmVnID0gYnl0ZWNvZGVSZWcub2Zmc2V0KCk7CiAgICAgICAgIGV2
ZW50Lm1fa2luZCA9IE1vdkhpbnRFdmVudDsKKyAgICAgICAgZXZlbnQubV93aGljaCA9IFdURk1v
dmUod2hpY2gpOworICAgICAgICBldmVudC5tX3JlcHJlc2VudGF0aW9uID0gV1RGTW92ZShyZXBy
ZXNlbnRhdGlvbik7CiAgICAgICAgIHJldHVybiBldmVudDsKICAgICB9CiAgICAgCkBAIC0xOTAs
NyArMjE4LDcgQEAgY2xhc3MgVmFyaWFibGVFdmVudCB7CiAgICAgICAgIEFTU0VSVCgKICAgICAg
ICAgICAgIG1fa2luZCA9PSBCaXJ0aFRvRmlsbCB8fCBtX2tpbmQgPT0gRmlsbCB8fCBtX2tpbmQg
PT0gQmlydGhUb1NwaWxsIHx8IG1fa2luZCA9PSBTcGlsbAogICAgICAgICAgICAgfHwgbV9raW5k
ID09IERlYXRoIHx8IG1fa2luZCA9PSBNb3ZIaW50RXZlbnQgfHwgbV9raW5kID09IEJpcnRoKTsK
LSAgICAgICAgcmV0dXJuIE1pbmlmaWVkSUQ6OmZyb21CaXRzKG1fd2hpY2guaWQpOworICAgICAg
ICByZXR1cm4gTWluaWZpZWRJRDo6ZnJvbUJpdHMobV93aGljaC5nZXQoKS5pZCk7CiAgICAgfQog
ICAgIAogICAgIERhdGFGb3JtYXQgZGF0YUZvcm1hdCgpIGNvbnN0CkBAIC0yMDksNyArMjM3LDcg
QEAgY2xhc3MgVmFyaWFibGVFdmVudCB7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICAgICAg
QVNTRVJUKCEobV9kYXRhRm9ybWF0ICYgRGF0YUZvcm1hdEpTKSk7CiAjZW5kaWYKLSAgICAgICAg
cmV0dXJuIG1fcmVwcmVzZW50YXRpb24uZ3ByOworICAgICAgICByZXR1cm4gbV9yZXByZXNlbnRh
dGlvbi5nZXQoKS5ncHI7CiAgICAgfQogICAgIAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCkBAIC0y
MTcsMTMgKzI0NSwxMyBAQCBjbGFzcyBWYXJpYWJsZUV2ZW50IHsKICAgICB7CiAgICAgICAgIEFT
U0VSVChtX2tpbmQgPT0gQmlydGhUb0ZpbGwgfHwgbV9raW5kID09IEZpbGwpOwogICAgICAgICBB
U1NFUlQobV9kYXRhRm9ybWF0ICYgRGF0YUZvcm1hdEpTKTsKLSAgICAgICAgcmV0dXJuIG1fcmVw
cmVzZW50YXRpb24ucGFpci50YWdHUFI7CisgICAgICAgIHJldHVybiBtX3JlcHJlc2VudGF0aW9u
LmdldCgpLnBhaXIudGFnR1BSOwogICAgIH0KICAgICBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJ
RCBwYXlsb2FkR1BSKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX2tpbmQgPT0gQmly
dGhUb0ZpbGwgfHwgbV9raW5kID09IEZpbGwpOwogICAgICAgICBBU1NFUlQobV9kYXRhRm9ybWF0
ICYgRGF0YUZvcm1hdEpTKTsKLSAgICAgICAgcmV0dXJuIG1fcmVwcmVzZW50YXRpb24ucGFpci5w
YXlsb2FkR1BSOworICAgICAgICByZXR1cm4gbV9yZXByZXNlbnRhdGlvbi5nZXQoKS5wYWlyLnBh
eWxvYWRHUFI7CiAgICAgfQogI2VuZGlmIC8vIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgCkBAIC0y
MzEsMjggKzI1OSwyOCBAQCBjbGFzcyBWYXJpYWJsZUV2ZW50IHsKICAgICB7CiAgICAgICAgIEFT
U0VSVChtX2tpbmQgPT0gQmlydGhUb0ZpbGwgfHwgbV9raW5kID09IEZpbGwpOwogICAgICAgICBB
U1NFUlQobV9kYXRhRm9ybWF0ID09IERhdGFGb3JtYXREb3VibGUpOwotICAgICAgICByZXR1cm4g
bV9yZXByZXNlbnRhdGlvbi5mcHI7CisgICAgICAgIHJldHVybiBtX3JlcHJlc2VudGF0aW9uLmdl
dCgpLmZwcjsKICAgICB9CiAgICAgCiAgICAgVmlydHVhbFJlZ2lzdGVyIHNwaWxsUmVnaXN0ZXIo
KSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fa2luZCA9PSBCaXJ0aFRvU3BpbGwgfHwg
bV9raW5kID09IFNwaWxsKTsKLSAgICAgICAgcmV0dXJuIFZpcnR1YWxSZWdpc3RlcihtX3JlcHJl
c2VudGF0aW9uLnZpcnR1YWxSZWcpOworICAgICAgICByZXR1cm4gVmlydHVhbFJlZ2lzdGVyKG1f
cmVwcmVzZW50YXRpb24uZ2V0KCkudmlydHVhbFJlZyk7CiAgICAgfQogICAgIAogICAgIFZpcnR1
YWxSZWdpc3RlciBieXRlY29kZVJlZ2lzdGVyKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VS
VChtX2tpbmQgPT0gU2V0TG9jYWxFdmVudCB8fCBtX2tpbmQgPT0gTW92SGludEV2ZW50KTsKLSAg
ICAgICAgcmV0dXJuIFZpcnR1YWxSZWdpc3RlcihtX3JlcHJlc2VudGF0aW9uLnZpcnR1YWxSZWcp
OworICAgICAgICByZXR1cm4gVmlydHVhbFJlZ2lzdGVyKG1fcmVwcmVzZW50YXRpb24uZ2V0KCku
dmlydHVhbFJlZyk7CiAgICAgfQogICAgIAogICAgIFZpcnR1YWxSZWdpc3RlciBtYWNoaW5lUmVn
aXN0ZXIoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fa2luZCA9PSBTZXRMb2NhbEV2
ZW50KTsKLSAgICAgICAgcmV0dXJuIFZpcnR1YWxSZWdpc3RlcihtX3doaWNoLnZpcnR1YWxSZWcp
OworICAgICAgICByZXR1cm4gVmlydHVhbFJlZ2lzdGVyKG1fd2hpY2guZ2V0KCkudmlydHVhbFJl
Zyk7CiAgICAgfQogICAgIAotICAgIGNvbnN0IFZhcmlhYmxlUmVwcmVzZW50YXRpb24mIHZhcmlh
YmxlUmVwcmVzZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX3JlcHJlc2VudGF0aW9uOyB9Cisg
ICAgVmFyaWFibGVSZXByZXNlbnRhdGlvbiB2YXJpYWJsZVJlcHJlc2VudGF0aW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9yZXByZXNlbnRhdGlvbi5nZXQoKTsgfQogICAgIAogICAgIHZvaWQgZHVtcChQ
cmludFN0cmVhbSYpIGNvbnN0OwogICAgIApAQCAtMjYwLDEwICsyODgsMTEgQEAgY2xhc3MgVmFy
aWFibGVFdmVudCB7CiAgICAgdm9pZCBkdW1wRmlsbEluZm8oY29uc3QgY2hhciogbmFtZSwgUHJp
bnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGR1bXBTcGlsbEluZm8oY29uc3QgY2hhciogbmFt
ZSwgUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICAKLSAgICB1bmlvbiB7CisgICAgdW5pb24gV2hp
Y2hUeXBlIHsKICAgICAgICAgaW50IHZpcnR1YWxSZWc7CiAgICAgICAgIHVuc2lnbmVkIGlkOwot
ICAgIH0gbV93aGljaDsKKyAgICB9OworICAgIFBhY2tlZDxXaGljaFR5cGU+IG1fd2hpY2g7CiAg
ICAgCiAgICAgLy8gRm9yIEJpcnRoVG9GaWxsLCBGaWxsOgogICAgIC8vICAgLSBUaGUgR1BSIG9y
IEZQUiwgb3IgYSBHUFIgcGFpci4KQEAgLTI3Myw5ICszMDIsOSBAQCBjbGFzcyBWYXJpYWJsZUV2
ZW50IHsKICAgICAvLyAgIC0gVGhlIGJ5dGVjb2RlIG9wZXJhbmQuCiAgICAgLy8gRm9yIERlYXRo
OgogICAgIC8vICAgLSBVbnVzZWQuCi0gICAgVmFyaWFibGVSZXByZXNlbnRhdGlvbiBtX3JlcHJl
c2VudGF0aW9uOworICAgIFBhY2tlZDxWYXJpYWJsZVJlcHJlc2VudGF0aW9uPiBtX3JlcHJlc2Vu
dGF0aW9uOwogICAgIAotICAgIGludDhfdCBtX2tpbmQ7CisgICAgVmFyaWFibGVFdmVudEtpbmQg
bV9raW5kOwogICAgIERhdGFGb3JtYXQgbV9kYXRhRm9ybWF0IHsgRGF0YUZvcm1hdE5vbmUgfTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVF
dmVudFN0cmVhbS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlRXZl
bnRTdHJlYW0uY3BwCmluZGV4IDRkZTExYjQyNzRkZjEzNTNhM2E5YzViZTIyZWI5N2NjYTdlYzQx
ODQuLjZmOGFmNDJjZTE2NTk0ZjQxNDlmNTNjN2EwNzM4M2Y2ZjFmYWE4YmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJpYWJsZUV2ZW50U3RyZWFtLmNwcApA
QCAtMTAxLDEyICsxMDEsMTIgQEAgc3RhdGljIGJvb2wgdHJ5VG9TZXRDb25zdGFudFJlY292ZXJ5
KFZhbHVlUmVjb3ZlcnkmIHJlY292ZXJ5LCBNaW5pZmllZE5vZGUqIG5vZGUKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQogICAgIAotICAgIGlmIChub2RlLT5vcCgpID09IFBoYW50b21EaXJl
Y3RBcmd1bWVudHMpIHsKKyAgICBpZiAobm9kZS0+aXNQaGFudG9tRGlyZWN0QXJndW1lbnRzKCkp
IHsKICAgICAgICAgcmVjb3ZlcnkgPSBWYWx1ZVJlY292ZXJ5OjpkaXJlY3RBcmd1bWVudHNUaGF0
V2VyZU5vdENyZWF0ZWQobm9kZS0+aWQoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
ICAgICAKLSAgICBpZiAobm9kZS0+b3AoKSA9PSBQaGFudG9tQ2xvbmVkQXJndW1lbnRzKSB7Cisg
ICAgaWYgKG5vZGUtPmlzUGhhbnRvbUNsb25lZEFyZ3VtZW50cygpKSB7CiAgICAgICAgIHJlY292
ZXJ5ID0gVmFsdWVSZWNvdmVyeTo6Y2xvbmVkQXJndW1lbnRzVGhhdFdlcmVOb3RDcmVhdGVkKG5v
ZGUtPmlkKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Cg==
</data>
<flag name="review"
          id="385859"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>