<?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>104499</bug_id>
          
          <creation_ts>2012-12-09 16:58:08 -0800</creation_ts>
          <short_desc>Add convenience methods to use ListHashSet for a LRU cache</short_desc>
          <delta_ts>2012-12-10 11:27:22 -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>Web Template Framework</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="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>andersca</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rakuco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>786907</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-12-09 16:58:08 -0800</bug_when>
    <thetext>Add convenience methods to use ListHashSet for a LRU cache</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786909</commentid>
    <comment_count>1</comment_count>
      <attachid>178455</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-12-09 17:03:30 -0800</bug_when>
    <thetext>Created attachment 178455
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786913</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-12-09 17:07:28 -0800</bug_when>
    <thetext>Simon, if you want to use ListHashSet with OwnPtr or RefPtr, I&apos;ll make a follow up to add support for the PassTraits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787576</commentid>
    <comment_count>3</comment_count>
      <attachid>178455</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-12-10 11:27:19 -0800</bug_when>
    <thetext>Comment on attachment 178455
Patch

Clearing flags on attachment: 178455

Committed r137188: &lt;http://trac.webkit.org/changeset/137188&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787577</commentid>
    <comment_count>4</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-12-10 11:27:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178455</attachid>
            <date>2012-12-09 17:03:30 -0800</date>
            <delta_ts>2012-12-10 11:27:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104499-20121209170053.patch</filename>
            <type>text/plain</type>
            <size>19207</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDE1MGY0NTQ2OWNkNmM2YzBkNDRkMjUx
YjdhNzNlZTUyNjg0MzQyYmQuLjkyMTUzOTU5ZGI0ZTNjM2NhZTE1MzAwMmNkYmE3YjEyNTkwZDg0
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMTItMDkgIEJlbmphbWluIFBvdWxhaW4gIDxi
ZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBjb252ZW5pZW5jZSBtZXRob2RzIHRv
IHVzZSBMaXN0SGFzaFNldCBmb3IgYSBMUlUgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDQ5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIExpc3RIYXNoU2V0IGlzIGEgZ3JlYXQgYWJzdHJhY3Qg
ZGF0YSB0eXBlIHRvIGltcGxlbWVudCBjYWNoZXMuCisgICAgICAgIFVuZm9ydHVuYXRlbHksIHRo
ZSBjbGFzcyB3YXMgbWlzc2luZyBtZXRob2RzIHRvIGRvIHRoYXQgZWFzaWx5IGFuZAorICAgICAg
ICBlZmZpY2llbnRseS4gVGhpcyBwYXRjaCBmaXhlcyB0aGF0LgorCisgICAgICAgIFRoZSBuYW1l
cyBhcHBlbmRPck1vdmVUb0xhc3QoKSBhbmQgcHJlcGVuZE9yTW92ZVRvRmlyc3QoKSB3ZXJlIGNo
b3NlbgorICAgICAgICBpbiBmYXZvciBvZiBhcHBlbmQoKS9wcmVwZW5kKCkgdG8gZW5zdXJlIHRo
ZXkgYXJlIG5vdCB1c2VkIGluIHBsYWNlIG9mCisgICAgICAgIGFkZCgpIGJ5IGFjY2lkZW50Lgor
CisgICAgICAgICogd3RmL0xpc3RIYXNoU2V0Lmg6CisgICAgICAgIChMaXN0SGFzaFNldCk6Cisg
ICAgICAgIChXVEY6Ojo6cmVtb3ZlRmlyc3QpOgorICAgICAgICAoV1RGOjo6OmFwcGVuZE9yTW92
ZVRvTGFzdCk6CisgICAgICAgIChXVEY6Ojo6cHJlcGVuZE9yTW92ZVRvRmlyc3QpOgorICAgICAg
ICAoV1RGOjo6OnVubGluayk6CisgICAgICAgIChXVEY6Ojo6dW5saW5rQW5kRGVsZXRlKToKKyAg
ICAgICAgKFdURjo6OjpwcmVwZW5kTm9kZSk6CisKIDIwMTItMTItMDggIFBhdHJpY2sgR2Fuc3Rl
cmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ29tcGlsaW5nIFdURiBvdXRzaWRl
IG9mIFdlYktpdCBmYWlsZWQgb24gV2luZG93cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
TGlzdEhhc2hTZXQuaCBiL1NvdXJjZS9XVEYvd3RmL0xpc3RIYXNoU2V0LmgKaW5kZXggOGZlZWY3
MmIzMTFmYWI4NDcwMDEwOWUyYjZlM2I4ZWExMTI4OTMyOS4uNTU3Y2FkMWE0OTRjM2Q2NDg5YWNl
ZjYyMTI3NjA0OGVmZGY2MDllZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTGlzdEhhc2hT
ZXQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9MaXN0SGFzaFNldC5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICog
Q29weXJpZ2h0IChDKSAyMDExLCBCZW5qYW1pbiBQb3VsYWluIDxpa2lwb3VAZ21haWwuY29tPgog
ICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKQEAgLTM4LDEwICszOCw2IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIC8vIGd1
YXJhbnRlZWQgc2FmZSBhZ2FpbnN0IG11dGF0aW9uIG9mIHRoZSBMaXN0SGFzaFNldCwgZXhjZXB0
IGZvcgogICAgIC8vIHJlbW92YWwgb2YgdGhlIGl0ZW0gY3VycmVudGx5IHBvaW50ZWQgdG8gYnkg
YSBnaXZlbiBpdGVyYXRvci4KIAotICAgIC8vIEluIHRoZW9yeSBpdCB3b3VsZCBiZSBwb3NzaWJs
ZSB0byBhZGQgcHJlcGVuZCwgaW5zZXJ0QWZ0ZXIKLSAgICAvLyBhbmQgYW4gYXBwZW5kIHRoYXQg
bW92ZXMgdGhlIGVsZW1lbnQgdG8gdGhlIGVuZCBldmVuIGlmIGFscmVhZHkgcHJlc2VudCwKLSAg
ICAvLyBidXQgdW5jbGVhciB5ZXQgaWYgdGhlc2UgYXJlIG5lZWRlZC4KLQogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFZhbHVlLCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIEhhc2hGdW5j
dGlvbnM+IGNsYXNzIExpc3RIYXNoU2V0OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWUs
IHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucz4KQEAgLTExMiw2
ICsxMDgsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIAogICAgICAgICBWYWx1ZVR5cGUmIGZpcnN0KCk7
CiAgICAgICAgIGNvbnN0IFZhbHVlVHlwZSYgZmlyc3QoKSBjb25zdDsKKyAgICAgICAgdm9pZCBy
ZW1vdmVGaXJzdCgpOwogCiAgICAgICAgIFZhbHVlVHlwZSYgbGFzdCgpOwogICAgICAgICBjb25z
dCBWYWx1ZVR5cGUmIGxhc3QoKSBjb25zdDsKQEAgLTEzNCw2ICsxMzEsMTQgQEAgbmFtZXNwYWNl
IFdURiB7CiAgICAgICAgIC8vIGFuZCBhIGJvb2wgdGhhdCBpcyB0cnVlIGlmIGFuIG5ldyBlbnRy
eSB3YXMgYWRkZWQuCiAgICAgICAgIEFkZFJlc3VsdCBhZGQoY29uc3QgVmFsdWVUeXBlJik7CiAK
KyAgICAgICAgLy8gQWRkIHRoZSB2YWx1ZSB0byB0aGUgZW5kIG9mIHRoZSBjb2xsZWN0aW9uLiBJ
ZiB0aGUgdmFsdWUgd2FzIGFscmVhZHkgaW4KKyAgICAgICAgLy8gdGhlIGxpc3QsIGl0IGlzIG1v
dmVkIHRvIHRoZSBlbmQuCisgICAgICAgIEFkZFJlc3VsdCBhcHBlbmRPck1vdmVUb0xhc3QoY29u
c3QgVmFsdWVUeXBlJik7CisKKyAgICAgICAgLy8gQWRkIHRoZSB2YWx1ZSB0byB0aGUgYmVnaW5u
aW5nIG9mIHRoZSBjb2xsZWN0aW9uLiBJZiB0aGUgdmFsdWUgd2FzIGFscmVhZHkgaW4KKyAgICAg
ICAgLy8gdGhlIGxpc3QsIGl0IGlzIG1vdmVkIHRvIHRoZSBiZWdpbm5pbmcuCisgICAgICAgIEFk
ZFJlc3VsdCBwcmVwZW5kT3JNb3ZlVG9GaXJzdChjb25zdCBWYWx1ZVR5cGUmKTsKKwogICAgICAg
ICBBZGRSZXN1bHQgaW5zZXJ0QmVmb3JlKGNvbnN0IFZhbHVlVHlwZSYgYmVmb3JlVmFsdWUsIGNv
bnN0IFZhbHVlVHlwZSYgbmV3VmFsdWUpOwogICAgICAgICBBZGRSZXN1bHQgaW5zZXJ0QmVmb3Jl
KGl0ZXJhdG9yLCBjb25zdCBWYWx1ZVR5cGUmKTsKIApAQCAtMTQyLDggKzE0NywxMCBAQCBuYW1l
c3BhY2UgV1RGIHsKICAgICAgICAgdm9pZCBjbGVhcigpOwogCiAgICAgcHJpdmF0ZToKKyAgICAg
ICAgdm9pZCB1bmxpbmsoTm9kZSopOwogICAgICAgICB2b2lkIHVubGlua0FuZERlbGV0ZShOb2Rl
Kik7CiAgICAgICAgIHZvaWQgYXBwZW5kTm9kZShOb2RlKik7CisgICAgICAgIHZvaWQgcHJlcGVu
ZE5vZGUoTm9kZSopOwogICAgICAgICB2b2lkIGluc2VydE5vZGVCZWZvcmUoTm9kZSogYmVmb3Jl
Tm9kZSwgTm9kZSogbmV3Tm9kZSk7CiAgICAgICAgIHZvaWQgZGVsZXRlQWxsTm9kZXMoKTsKICAg
ICAgICAgCkBAIC02MjksNiArNjM2LDE0IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIH0KIAogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgVT4K
KyAgICBpbmxpbmUgdm9pZCBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwgVT46OnJlbW92
ZUZpcnN0KCkKKyAgICB7CisgICAgICAgIEFTU0VSVCghaXNFbXB0eSgpKTsKKyAgICAgICAgbV9p
bXBsLnJlbW92ZShtX2hlYWQpOworICAgICAgICB1bmxpbmtBbmREZWxldGUobV9oZWFkKTsKKyAg
ICB9CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5
cGVuYW1lIFU+CiAgICAgaW5saW5lIGNvbnN0IFQmIExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFj
aXR5LCBVPjo6Zmlyc3QoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKCFpc0VtcHR5KCkp
OwpAQCAtNzI0LDYgKzczOSwyOCBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB9CiAKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIFU+CisgICAg
dHlwZW5hbWUgTGlzdEhhc2hTZXQ8VCwgaW5saW5lQ2FwYWNpdHksIFU+OjpBZGRSZXN1bHQgTGlz
dEhhc2hTZXQ8VCwgaW5saW5lQ2FwYWNpdHksIFU+OjphcHBlbmRPck1vdmVUb0xhc3QoY29uc3Qg
VmFsdWVUeXBlICZ2YWx1ZSkKKyAgICB7CisgICAgICAgIHR5cGVuYW1lIEltcGxUeXBlOjpBZGRS
ZXN1bHQgcmVzdWx0ID0gbV9pbXBsLnRlbXBsYXRlIGFkZDxCYXNlVHJhbnNsYXRvcj4odmFsdWUs
IG1fYWxsb2NhdG9yLmdldCgpKTsKKyAgICAgICAgTm9kZSogbm9kZSA9ICpyZXN1bHQuaXRlcmF0
b3I7CisgICAgICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkpCisgICAgICAgICAgICB1bmxpbmso
bm9kZSk7CisgICAgICAgIGFwcGVuZE5vZGUobm9kZSk7CisgICAgICAgIHJldHVybiBBZGRSZXN1
bHQobWFrZUl0ZXJhdG9yKCpyZXN1bHQuaXRlcmF0b3IpLCByZXN1bHQuaXNOZXdFbnRyeSk7Cisg
ICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0
eXBlbmFtZSBVPgorICAgIHR5cGVuYW1lIExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBV
Pjo6QWRkUmVzdWx0IExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6cHJlcGVuZE9y
TW92ZVRvRmlyc3QoY29uc3QgVmFsdWVUeXBlICZ2YWx1ZSkKKyAgICB7CisgICAgICAgIHR5cGVu
YW1lIEltcGxUeXBlOjpBZGRSZXN1bHQgcmVzdWx0ID0gbV9pbXBsLnRlbXBsYXRlIGFkZDxCYXNl
VHJhbnNsYXRvcj4odmFsdWUsIG1fYWxsb2NhdG9yLmdldCgpKTsKKyAgICAgICAgTm9kZSogbm9k
ZSA9ICpyZXN1bHQuaXRlcmF0b3I7CisgICAgICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkpCisg
ICAgICAgICAgICB1bmxpbmsobm9kZSk7CisgICAgICAgIHByZXBlbmROb2RlKG5vZGUpOworICAg
ICAgICByZXR1cm4gQWRkUmVzdWx0KG1ha2VJdGVyYXRvcigqcmVzdWx0Lml0ZXJhdG9yKSwgcmVz
dWx0LmlzTmV3RW50cnkpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVf
dCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgVT4KICAgICB0eXBlbmFtZSBMaXN0SGFzaFNldDxU
LCBpbmxpbmVDYXBhY2l0eSwgVT46OkFkZFJlc3VsdCBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBh
Y2l0eSwgVT46Omluc2VydEJlZm9yZShpdGVyYXRvciBpdCwgY29uc3QgVmFsdWVUeXBlJiBuZXdW
YWx1ZSkKICAgICB7CiAgICAgICAgIHR5cGVuYW1lIEltcGxUeXBlOjpBZGRSZXN1bHQgcmVzdWx0
ID0gbV9pbXBsLnRlbXBsYXRlIGFkZDxCYXNlVHJhbnNsYXRvcj4obmV3VmFsdWUsIG1fYWxsb2Nh
dG9yLmdldCgpKTsKQEAgLTc2Myw3ICs4MDAsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB9CiAK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1l
IFU+Ci0gICAgdm9pZCBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwgVT46OnVubGlua0Fu
ZERlbGV0ZShOb2RlKiBub2RlKQorICAgIHZvaWQgTGlzdEhhc2hTZXQ8VCwgaW5saW5lQ2FwYWNp
dHksIFU+Ojp1bmxpbmsoTm9kZSogbm9kZSkKICAgICB7CiAgICAgICAgIGlmICghbm9kZS0+bV9w
cmV2KSB7CiAgICAgICAgICAgICBBU1NFUlQobm9kZSA9PSBtX2hlYWQpOwpAQCAtNzgwLDcgKzgx
NywxMiBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgICAgIEFTU0VSVChub2RlICE9IG1fdGFp
bCk7CiAgICAgICAgICAgICBub2RlLT5tX25leHQtPm1fcHJldiA9IG5vZGUtPm1fcHJldjsKICAg
ICAgICAgfQorICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVD
YXBhY2l0eSwgdHlwZW5hbWUgVT4KKyAgICB2b2lkIExpc3RIYXNoU2V0PFQsIGlubGluZUNhcGFj
aXR5LCBVPjo6dW5saW5rQW5kRGVsZXRlKE5vZGUqIG5vZGUpCisgICAgeworICAgICAgICB1bmxp
bmsobm9kZSk7CiAgICAgICAgIG5vZGUtPmRlc3Ryb3kobV9hbGxvY2F0b3IuZ2V0KCkpOwogICAg
IH0KIApAQCAtODAyLDYgKzg0NCwyMCBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB9CiAKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIFU+Cisg
ICAgdm9pZCBMaXN0SGFzaFNldDxULCBpbmxpbmVDYXBhY2l0eSwgVT46OnByZXBlbmROb2RlKE5v
ZGUqIG5vZGUpCisgICAgeworICAgICAgICBub2RlLT5tX3ByZXYgPSAwOworICAgICAgICBub2Rl
LT5tX25leHQgPSBtX2hlYWQ7CisKKyAgICAgICAgaWYgKG1faGVhZCkKKyAgICAgICAgICAgIG1f
aGVhZC0+bV9wcmV2ID0gbm9kZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV90YWlsID0g
bm9kZTsKKworICAgICAgICBtX2hlYWQgPSBub2RlOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgVT4KICAgICB2b2lkIExp
c3RIYXNoU2V0PFQsIGlubGluZUNhcGFjaXR5LCBVPjo6aW5zZXJ0Tm9kZUJlZm9yZShOb2RlKiBi
ZWZvcmVOb2RlLCBOb2RlKiBuZXdOb2RlKQogICAgIHsKICAgICAgICAgaWYgKCFiZWZvcmVOb2Rl
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDlj
YzExZGViZTQ2ZjAyMWVlMWZhODc5MWU2MDYwODAxYzNlY2QzYTkuLjVjNGZkZTJlZWEyY2QwODg4
MjM4YzRlMTM3MjYwYzQ5OWIwODczYTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0xMi0wOSAgQmVuamFtaW4g
UG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGNvbnZlbmllbmNl
IG1ldGhvZHMgdG8gdXNlIExpc3RIYXNoU2V0IGZvciBhIExSVSBjYWNoZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0NDk5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCB0aGUgbmV3IG1ldGhvZHMg
YWRkZWQgdG8gTGlzdEhhc2hTZXQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvR05VbWFrZWZpbGUuYW06CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLmd5cGk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTGlzdEhhc2hTZXQuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFRlc3RXZWJLaXRBUEkpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTIt
MTItMDkgIERhbiBXaW5zaGlwICA8ZGFud0Bnbm9tZS5vcmc+CiAKICAgICAgICAgW0dUS10gQnVt
cCBsaWJ4bWwyIHJlcXVpcmVtZW50IGluIGpoYnVpbGQubW9kdWxlcwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01h
a2VMaXN0cy50eHQKaW5kZXggOTYyODJiYTc5ODQ5NmU3YWRiMmM5YmRkOGJkNjRjMWUxMTMyZjA2
OS4uMTFhYjEyNzM0OWMwZmFmM2RhYTViYzRkMDJkNGM4ZTA3OGJjNWQ2OCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL0NNYWtlTGlzdHMudHh0CkBAIC03Myw2ICs3Myw3IEBAIGFkZF9leGVjdXRhYmxlKHRlc3Rf
d3RmCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL0Z1bmN0aW9uYWwuY3BwCiAg
ICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL0hhc2hNYXAuY3BwCiAgICAgJHtURVNU
V0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL0ludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uY3BwCisg
ICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL0xpc3RIYXNoU2V0LmNwcAogICAgICR7
VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9NYXRoRXh0cmFzLmNwcAogICAgICR7VEVTVFdF
QktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9NZXRhQWxsb2NhdG9yLmNwcAogICAgICR7VEVTVFdFQktJ
VEFQSV9ESVJ9L1Rlc3RzL1dURi9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9HTlVtYWtlZmlsZS5hbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvR05VbWFrZWZpbGUuYW0KaW5kZXggMDFiMTE1ODc4MzlmZDQxYzUwZjNlMjRjMmUxYTlj
YmYwOWFjN2I5Yi4uY2ZjYzliNjJjNzNjODc1ZGU3NjlhMzI4MGMyYjkyMmNlOTBmOGFjZiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9HTlVtYWtlZmlsZS5hbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL0dOVW1ha2VmaWxlLmFtCkBAIC01Miw2ICs1Miw3IEBAIFByb2dyYW1zX1Rl
c3RXZWJLaXRBUElfVGVzdFdURl9TT1VSQ0VTID0gXAogCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0Z1bmN0aW9uYWwuY3BwIFwKIAlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9I
YXNoTWFwLmNwcCBcCiAJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSW50ZWdlclRvU3Ry
aW5nQ29udmVyc2lvbi5jcHAgXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xpc3RI
YXNoU2V0LmNwcCBcCiAJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTWF0aEV4dHJhcy5j
cHAgXAogCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01lZGlhVGltZS5jcHAgXAogCVRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JlZEJsYWNrVHJlZS5jcHAgXApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLmd5cGkgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkuZ3lwaQppbmRleCAyYzA3OTQwYzgyNzZjMzlmNjY0YTNhNTA1
NWM3Yzk0ODkxZjVhNWY1Li4zZjU5NThiNThlOWIwZTI3MGZhNmIyYThhMjEwMWYyMTdlMjQ5NDE5
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkuZ3lwaQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkuZ3lwaQpAQCAtMzYsNiArMzYsOCBA
QAogICAgICAgICAgICAgJ1Rlc3RzL1dURi9DU3RyaW5nLmNwcCcsCiAgICAgICAgICAgICAnVGVz
dHMvV1RGL0Z1bmN0aW9uYWwuY3BwJywKICAgICAgICAgICAgICdUZXN0cy9XVEYvSGFzaE1hcC5j
cHAnLAorICAgICAgICAgICAgJ1Rlc3RzL1dURi9IYXNoU2V0LmNwcCcsCisgICAgICAgICAgICAn
VGVzdHMvV1RGL0xpc3RIYXNoU2V0LmNwcCcsCiAgICAgICAgICAgICAnVGVzdHMvV1RGL01hdGhF
eHRyYXMuY3BwJywKICAgICAgICAgICAgICdUZXN0cy9XVEYvTWVkaWFUaW1lLmNwcCcsCiAgICAg
ICAgICAgICAnVGVzdHMvV1RGL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwJywKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggMjQ5ZmM0YWE2NWQ5NjJhZmYxYTQzN2Q4YjM0ZTI3OGU3ODk3
YTg2ZC4uMDExZjZmZmI0ZGE5MmU1NjJhOWYzZDQxNTNjZDlkYTQyNGRiMjA4MyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTIzLDYgKzIzLDcgQEAKIAkJMUFEQkVGRTMxMzBDNkFBMTAwRDYx
RDE5IC8qIHNpbXBsZS1hY2NlbGVyYXRlZC1jb21wb3NpdGluZy5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBREJFRkJDMTMwQzZBMDEw
MEQ2MUQxOSAvKiBzaW1wbGUtYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcuaHRtbCAqLzsgfTsKIAkJ
MUFFREUyMjYxM0U1RTdFNzAwRTYyRkU4IC8qIEluamVjdGVkQnVuZGxlQ29udHJvbGxlck1hYy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRURFMjI0
MTNFNUU3QTAwMEU2MkZFOCAvKiBJbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXJNYWMubW0gKi87IH07
CiAJCTI2MTUxNkQ2MTVCMEU2MDUwMEEyQzIwMSAvKiBTZXRBbmRVcGRhdGVDYWNoZU1vZGVsLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjYxNTE2RDUx
NUIwRTYwNTAwQTJDMjAxIC8qIFNldEFuZFVwZGF0ZUNhY2hlTW9kZWwubW0gKi87IH07CisJCTI2
MzAwQjE4MTY3NTVDRDkwMDY2ODg2RCAvKiBMaXN0SGFzaFNldC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjMwMEIxNzE2NzU1Q0Q5MDA2Njg4NkQg
LyogTGlzdEhhc2hTZXQuY3BwICovOyB9OwogCQkyNjVBRjU1MDE1RDFFNDhBMDBCMENCNEEgLyog
V1RGU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI2NUFGNTRGMTVEMUU0OEEwMEIwQ0I0QSAvKiBXVEZTdHJpbmcuY3BwICovOyB9OwogCQky
NjZGQUZEMzE1RTU3NzUyMDBGNjFENUIgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjZGQUZEMjE1
RTU3NzUyMDBGNjFENUIgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5jcHAgKi87IH07CiAJ
CTI2QTJDNzJGMTVFMkU3M0MwMDVCMUExNCAvKiBDU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2QTJDNzJFMTVFMkU3M0MwMDVCMUExNCAv
KiBDU3RyaW5nLmNwcCAqLzsgfTsKQEAgLTI2Nyw2ICsyNjgsNyBAQAogCQkxQURCRUZCQzEzMEM2
QTAxMDBENjFEMTkgLyogc2ltcGxlLWFjY2VsZXJhdGVkLWNvbXBvc2l0aW5nLmh0bWwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAic2ltcGxlLWFjY2VsZXJhdGVkLWNvbXBvc2l0aW5nLmh0
bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUVERTIyNDEzRTVFN0EwMDBFNjJG
RTggLyogSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyTWFjLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjE1MTZENTE1QjBFNjA1MDBBMkMyMDEgLyogU2V0
QW5kVXBkYXRlQ2FjaGVNb2RlbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFNldEFuZFVwZGF0ZUNhY2hlTW9kZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTI2MzAwQjE3MTY3NTVDRDkwMDY2ODg2RCAvKiBMaXN0SGFzaFNldC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaXN0SGFzaFNldC5jcHA7IHBhdGggPSBX
VEYvTGlzdEhhc2hTZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjVBRjU0
RjE1RDFFNDhBMDBCMENCNEEgLyogV1RGU3RyaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFdURlN0cmluZy5jcHA7IHBhdGggPSBXVEYvV1RGU3RyaW5nLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjY2RkFGRDIxNUU1Nzc1MjAwRjYxRDVCIC8q
IEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5jcHA7IHBhdGggPSBXVEYvSW50
ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTI2QTJDNzJFMTVFMkU3M0MwMDVCMUExNCAvKiBDU3RyaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENTdHJpbmcuY3BwOyBwYXRoID0gV1RGL0NTdHJpbmcuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjY2LDYgKzY2OCw3IEBACiAJCQkJMUFB
OUU1NTcxNDk4MEE5OTAwMDAxQThBIC8qIEZ1bmN0aW9uYWwuY3BwICovLAogCQkJCTBCQ0Q4MzM0
MTQ4NTdDRTQwMEVBMjAwMyAvKiBIYXNoTWFwLmNwcCAqLywKIAkJCQkyNkIyREZGODE1QkRFNTk5
MDA0RjY5MUQgLyogSGFzaFNldC5jcHAgKi8sCisJCQkJMjYzMDBCMTcxNjc1NUNEOTAwNjY4ODZE
IC8qIExpc3RIYXNoU2V0LmNwcCAqLywKIAkJCQlCNDAzOUY5QzE1RTZEOEIzMDA3MjU1RDYgLyog
TWF0aEV4dHJhcy5jcHAgKi8sCiAJCQkJMTRGM0IxMTIxNUU0NUVBQjAwMjEwMDY5IC8qIFNhdHVy
YXRlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcCAqLywKIAkJCQkyNjZGQUZEMjE1RTU3NzUyMDBG
NjFENUIgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5jcHAgKi8sCkBAIC05NTksNiArOTYy
LDcgQEAKIAkJCQlDMEFEQkU3QzEyRkNBNEQwMDBEMkMxMjkgLyogSmF2YVNjcmlwdFRlc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQzA4MTIyNDIxM0ZDMTcyNDAwREMzOUFFIC8qIEphdmFTY3Jp
cHRUZXN0TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDQwQTFEMzkxNEEwMTAzQTAwOEE2NkYy
IC8qIEtVUkwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjYzMDBCMTgxNjc1NUNEOTAwNjY4ODZE
IC8qIExpc3RIYXNoU2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUyQ0I0NzQxMTQ0OEZCOTMw
MDg3Mzk5NSAvKiBMb2FkQWx0ZXJuYXRlSFRNTFN0cmluZ1dpdGhOb25EaXJlY3RvcnlVUkwuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzNEQzg5MTExNDE5NTNBMzAwNzQ3RUY3IC8qIExvYWRDYW5j
ZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzEz
MUE5QjExNzEzMTY5MDBCNjk3MjcgLyogbWFpbi5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTGlzdEhhc2hTZXQuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTGlzdEhhc2hTZXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1Nzlj
NDI5OTA1NzNmYzFhNjFjNGE0ZGNhZTMxNGQ2MjVkYzE0MzkKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9MaXN0SGFzaFNldC5jcHAKQEAgLTAsMCArMSwx
NzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlIDx3dGYv
TGlzdEhhc2hTZXQuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFdURiwg
TGlzdEhhc2hTZXRSZW1vdmVGaXJzdCkKK3sKKyAgICBMaXN0SGFzaFNldDxpbnQ+IGxpc3Q7Cisg
ICAgbGlzdC5hZGQoMSk7CisgICAgbGlzdC5hZGQoMik7CisgICAgbGlzdC5hZGQoMyk7CisKKyAg
ICBBU1NFUlRfRVEoMSwgbGlzdC5maXJzdCgpKTsKKworICAgIGxpc3QucmVtb3ZlRmlyc3QoKTsK
KyAgICBBU1NFUlRfRVEoMiwgbGlzdC5maXJzdCgpKTsKKworICAgIGxpc3QucmVtb3ZlRmlyc3Qo
KTsKKyAgICBBU1NFUlRfRVEoMywgbGlzdC5maXJzdCgpKTsKKworICAgIGxpc3QucmVtb3ZlRmly
c3QoKTsKKyAgICBBU1NFUlRfVFJVRShsaXN0LmlzRW1wdHkoKSk7Cit9CisKK1RFU1QoV1RGLCBM
aXN0SGFzaFNldEFwcGVuZE9yTW92ZVRvTGFzdE5ld0l0ZW1zKQoreworICAgIExpc3RIYXNoU2V0
PGludD4gbGlzdDsKKyAgICBMaXN0SGFzaFNldDxpbnQ+OjpBZGRSZXN1bHQgcmVzdWx0ID0gbGlz
dC5hcHBlbmRPck1vdmVUb0xhc3QoMSk7CisgICAgQVNTRVJUX1RSVUUocmVzdWx0LmlzTmV3RW50
cnkpOworICAgIHJlc3VsdCA9IGxpc3QuYWRkKDIpOworICAgIEFTU0VSVF9UUlVFKHJlc3VsdC5p
c05ld0VudHJ5KTsKKyAgICByZXN1bHQgPSBsaXN0LmFwcGVuZE9yTW92ZVRvTGFzdCgzKTsKKyAg
ICBBU1NFUlRfVFJVRShyZXN1bHQuaXNOZXdFbnRyeSk7CisKKyAgICBBU1NFUlRfRVEobGlzdC5z
aXplKCksIDMpOworCisgICAgLy8gVGhlIGxpc3Qgc2hvdWxkIGJlIGluIG9yZGVyIDEsIDIsIDMu
CisgICAgTGlzdEhhc2hTZXQ8aW50Pjo6aXRlcmF0b3IgaXRlcmF0b3IgPSBsaXN0LmJlZ2luKCk7
CisgICAgQVNTRVJUX0VRKDEsICppdGVyYXRvcik7CisgICAgKytpdGVyYXRvcjsKKyAgICBBU1NF
UlRfRVEoMiwgKml0ZXJhdG9yKTsKKyAgICArK2l0ZXJhdG9yOworICAgIEFTU0VSVF9FUSgzLCAq
aXRlcmF0b3IpOworICAgICsraXRlcmF0b3I7Cit9CisKK1RFU1QoV1RGLCBMaXN0SGFzaFNldEFw
cGVuZE9yTW92ZVRvTGFzdFdpdGhEdXBsaWNhdGVzKQoreworICAgIExpc3RIYXNoU2V0PGludD4g
bGlzdDsKKworICAgIC8vIEFkZCBhIHNpbmdsZSBlbGVtZW50IHR3aWNlLgorICAgIExpc3RIYXNo
U2V0PGludD46OkFkZFJlc3VsdCByZXN1bHQgPSBsaXN0LmFkZCgxKTsKKyAgICBBU1NFUlRfVFJV
RShyZXN1bHQuaXNOZXdFbnRyeSk7CisgICAgcmVzdWx0ID0gbGlzdC5hcHBlbmRPck1vdmVUb0xh
c3QoMSk7CisgICAgQVNTRVJUX0ZBTFNFKHJlc3VsdC5pc05ld0VudHJ5KTsKKyAgICBBU1NFUlRf
RVEoMSwgbGlzdC5zaXplKCkpOworCisgICAgbGlzdC5hZGQoMik7CisgICAgbGlzdC5hZGQoMyk7
CisgICAgQVNTRVJUX0VRKDMsIGxpc3Quc2l6ZSgpKTsKKworICAgIC8vIEFwcGVuZGluZyAyIG1v
dmUgaXQgdG8gdGhlIGVuZC4KKyAgICBBU1NFUlRfRVEoMywgbGlzdC5sYXN0KCkpOworICAgIHJl
c3VsdCA9IGxpc3QuYXBwZW5kT3JNb3ZlVG9MYXN0KDIpOworICAgIEFTU0VSVF9GQUxTRShyZXN1
bHQuaXNOZXdFbnRyeSk7CisgICAgQVNTRVJUX0VRKDIsIGxpc3QubGFzdCgpKTsKKworICAgIC8v
IEludmVyc2UgdGhlIGxpc3QgYnkgbW92aW5nIGVhY2ggZWxlbWVudCB0byBlbmQgZW5kLgorICAg
IHJlc3VsdCA9IGxpc3QuYXBwZW5kT3JNb3ZlVG9MYXN0KDMpOworICAgIEFTU0VSVF9GQUxTRShy
ZXN1bHQuaXNOZXdFbnRyeSk7CisgICAgcmVzdWx0ID0gbGlzdC5hcHBlbmRPck1vdmVUb0xhc3Qo
Mik7CisgICAgQVNTRVJUX0ZBTFNFKHJlc3VsdC5pc05ld0VudHJ5KTsKKyAgICByZXN1bHQgPSBs
aXN0LmFwcGVuZE9yTW92ZVRvTGFzdCgxKTsKKyAgICBBU1NFUlRfRkFMU0UocmVzdWx0LmlzTmV3
RW50cnkpOworICAgIEFTU0VSVF9FUSgzLCBsaXN0LnNpemUoKSk7CisKKyAgICBMaXN0SGFzaFNl
dDxpbnQ+OjppdGVyYXRvciBpdGVyYXRvciA9IGxpc3QuYmVnaW4oKTsKKyAgICBBU1NFUlRfRVEo
MywgKml0ZXJhdG9yKTsKKyAgICArK2l0ZXJhdG9yOworICAgIEFTU0VSVF9FUSgyLCAqaXRlcmF0
b3IpOworICAgICsraXRlcmF0b3I7CisgICAgQVNTRVJUX0VRKDEsICppdGVyYXRvcik7CisgICAg
KytpdGVyYXRvcjsKK30KKworVEVTVChXVEYsIExpc3RIYXNoU2V0UHJlcGVuZE9yTW92ZVRvTGFz
dE5ld0l0ZW1zKQoreworICAgIExpc3RIYXNoU2V0PGludD4gbGlzdDsKKyAgICBMaXN0SGFzaFNl
dDxpbnQ+OjpBZGRSZXN1bHQgcmVzdWx0ID0gbGlzdC5wcmVwZW5kT3JNb3ZlVG9GaXJzdCgxKTsK
KyAgICBBU1NFUlRfVFJVRShyZXN1bHQuaXNOZXdFbnRyeSk7CisgICAgcmVzdWx0ID0gbGlzdC5h
ZGQoMik7CisgICAgQVNTRVJUX1RSVUUocmVzdWx0LmlzTmV3RW50cnkpOworICAgIHJlc3VsdCA9
IGxpc3QucHJlcGVuZE9yTW92ZVRvRmlyc3QoMyk7CisgICAgQVNTRVJUX1RSVUUocmVzdWx0Lmlz
TmV3RW50cnkpOworCisgICAgQVNTRVJUX0VRKGxpc3Quc2l6ZSgpLCAzKTsKKworICAgIC8vIFRo
ZSBsaXN0IHNob3VsZCBiZSBpbiBvcmRlciAzLCAxLCAyLgorICAgIExpc3RIYXNoU2V0PGludD46
Oml0ZXJhdG9yIGl0ZXJhdG9yID0gbGlzdC5iZWdpbigpOworICAgIEFTU0VSVF9FUSgzLCAqaXRl
cmF0b3IpOworICAgICsraXRlcmF0b3I7CisgICAgQVNTRVJUX0VRKDEsICppdGVyYXRvcik7Cisg
ICAgKytpdGVyYXRvcjsKKyAgICBBU1NFUlRfRVEoMiwgKml0ZXJhdG9yKTsKKyAgICArK2l0ZXJh
dG9yOworfQorCitURVNUKFdURiwgTGlzdEhhc2hTZXRQcmVwZW5kT3JNb3ZlVG9MYXN0V2l0aER1
cGxpY2F0ZXMpCit7CisgICAgTGlzdEhhc2hTZXQ8aW50PiBsaXN0OworCisgICAgLy8gQWRkIGEg
c2luZ2xlIGVsZW1lbnQgdHdpY2UuCisgICAgTGlzdEhhc2hTZXQ8aW50Pjo6QWRkUmVzdWx0IHJl
c3VsdCA9IGxpc3QuYWRkKDEpOworICAgIEFTU0VSVF9UUlVFKHJlc3VsdC5pc05ld0VudHJ5KTsK
KyAgICByZXN1bHQgPSBsaXN0LnByZXBlbmRPck1vdmVUb0ZpcnN0KDEpOworICAgIEFTU0VSVF9G
QUxTRShyZXN1bHQuaXNOZXdFbnRyeSk7CisgICAgQVNTRVJUX0VRKDEsIGxpc3Quc2l6ZSgpKTsK
KworICAgIGxpc3QuYWRkKDIpOworICAgIGxpc3QuYWRkKDMpOworICAgIEFTU0VSVF9FUSgzLCBs
aXN0LnNpemUoKSk7CisKKyAgICAvLyBQcmVwZW5kaW5nIDIgbW92ZSBpdCB0byB0aGUgYmVnaW5u
aW5nLgorICAgIEFTU0VSVF9FUSgxLCBsaXN0LmZpcnN0KCkpOworICAgIHJlc3VsdCA9IGxpc3Qu
cHJlcGVuZE9yTW92ZVRvRmlyc3QoMik7CisgICAgQVNTRVJUX0ZBTFNFKHJlc3VsdC5pc05ld0Vu
dHJ5KTsKKyAgICBBU1NFUlRfRVEoMiwgbGlzdC5maXJzdCgpKTsKKworICAgIC8vIEludmVyc2Ug
dGhlIGxpc3QgYnkgbW92aW5nIGVhY2ggZWxlbWVudCB0byB0aGUgZmlyc3QgcG9zaXRpb24uCisg
ICAgcmVzdWx0ID0gbGlzdC5wcmVwZW5kT3JNb3ZlVG9GaXJzdCgxKTsKKyAgICBBU1NFUlRfRkFM
U0UocmVzdWx0LmlzTmV3RW50cnkpOworICAgIHJlc3VsdCA9IGxpc3QucHJlcGVuZE9yTW92ZVRv
Rmlyc3QoMik7CisgICAgQVNTRVJUX0ZBTFNFKHJlc3VsdC5pc05ld0VudHJ5KTsKKyAgICByZXN1
bHQgPSBsaXN0LnByZXBlbmRPck1vdmVUb0ZpcnN0KDMpOworICAgIEFTU0VSVF9GQUxTRShyZXN1
bHQuaXNOZXdFbnRyeSk7CisgICAgQVNTRVJUX0VRKDMsIGxpc3Quc2l6ZSgpKTsKKworICAgIExp
c3RIYXNoU2V0PGludD46Oml0ZXJhdG9yIGl0ZXJhdG9yID0gbGlzdC5iZWdpbigpOworICAgIEFT
U0VSVF9FUSgzLCAqaXRlcmF0b3IpOworICAgICsraXRlcmF0b3I7CisgICAgQVNTRVJUX0VRKDIs
ICppdGVyYXRvcik7CisgICAgKytpdGVyYXRvcjsKKyAgICBBU1NFUlRfRVEoMSwgKml0ZXJhdG9y
KTsKKyAgICArK2l0ZXJhdG9yOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>