<?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>154925</bug_id>
          
          <creation_ts>2016-03-02 11:13:22 -0800</creation_ts>
          <short_desc>Add unit tests for WTF::OptionSet</short_desc>
          <delta_ts>2016-03-03 15:49:16 -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>Tools / Tests</component>
          <version>WebKit Local Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>154941</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>andersca</cc>
    
    <cc>ggaren</cc>
    
    <cc>lforschler</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1169869</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-03-02 11:13:22 -0800</bug_when>
    <thetext>Although the implementation of WTF::OptionSet is straightforward we should add unit tests to ensure that we do not regress its functionality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169874</commentid>
    <comment_count>1</comment_count>
      <attachid>272666</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-03-02 11:20:07 -0800</bug_when>
    <thetext>Created attachment 272666
Unit tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169875</commentid>
    <comment_count>2</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-03-02 11:21:18 -0800</bug_when>
    <thetext>For completeness, WTF::OptionSet was added in the patch for bug #154733, &lt;http://trac.webkit.org/changeset/197191&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1169884</commentid>
    <comment_count>3</comment_count>
      <attachid>272671</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-03-02 12:08:50 -0800</bug_when>
    <thetext>Created attachment 272671
Unit tests

Add OptionSet to the CMake list of WTF headers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170024</commentid>
    <comment_count>4</comment_count>
      <attachid>272707</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-03-02 17:06:40 -0800</bug_when>
    <thetext>Created attachment 272707
Patch and Unit tests

Update patch to include a convenience constructor for OptionSet that takes a std::initializer_list. The code for this constructor was written by Anders Carlsson.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170243</commentid>
    <comment_count>5</comment_count>
      <attachid>272707</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-03-03 09:50:21 -0800</bug_when>
    <thetext>Comment on attachment 272707
Patch and Unit tests

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

&gt; Source/WTF/wtf/OptionSet.h:57
&gt; +        : m_storage(0)

Why not initialize m_storage where it’s defined rather than in the constructors?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170334</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-03-03 15:22:47 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=272707&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/OptionSet.h:57
&gt; &gt; +        : m_storage(0)
&gt; 
&gt; Why not initialize m_storage where it’s defined rather than in the
&gt; constructors?

Will initialize m_storage where it is defined before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170335</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-03-03 15:23:37 -0800</bug_when>
    <thetext>&lt;rdar://problem/24964211&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170350</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-03-03 15:49:16 -0800</bug_when>
    <thetext>Committed r197523: &lt;http://trac.webkit.org/changeset/197523&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272666</attachid>
            <date>2016-03-02 11:20:07 -0800</date>
            <delta_ts>2016-03-02 12:08:48 -0800</delta_ts>
            <desc>Unit tests</desc>
            <filename>bug-154925-20160302111952.patch</filename>
            <type>text/plain</type>
            <size>9621</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NDI0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWExZDcyMjY2YjI5ZGNhNjVlM2NjOTg2NzA3ZjA3ZGFi
YzYyZThkMC4uMTgxYjM5ZDI5MWEwNTAyZGNhNmZlMjZiNzkwM2E1OTdiOTA4MTc0ZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDE2LTAzLTAyICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgdW5pdCB0ZXN0cyBmb3IgV1RGOjpPcHRpb25TZXQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDkyNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyB0byBlbnN1cmUgdGhhdCB3
ZSBkbyBub3QgcmVncmVzcyB0aGUgYmVoYXZpb3Igb2YgV1RGOjpPcHRpb25TZXQuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0OiBBZGQgZmlsZSBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9PcHRpb25TZXQuY3BwLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9PcHRpb25TZXQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1QpOgorCiAyMDE2LTAyLTI5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgSGF2ZSBwYXJzZUhUTUxJbnRlZ2VyKCkgLyBwYXJzZUhUTUxOb25O
ZWdhdGl2ZUludGVnZXIoKSB1c2UgV1RGOjpPcHRpb25hbApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0
cy50eHQKaW5kZXggYTI1MzJiMDFkNDdjNDI4YWI3OGMyZWY5NDQwY2NlOWNlNDE5ZjQxOS4uYzUw
NWZhMjViNTVkZTcwODA4Y2YzYzgwZDEyOGEwYjgwNGY3YzM1ZSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NN
YWtlTGlzdHMudHh0CkBAIC01OCw2ICs1OCw3IEBAIHNldChUZXN0V1RGX1NPVVJDRVMKICAgICAk
e1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvTWVkaWFUaW1lLmNwcAogICAgICR7VEVTVFdF
QktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9NZXRhQWxsb2NhdG9yLmNwcAogICAgICR7VEVTVFdFQktJ
VEFQSV9ESVJ9L1Rlc3RzL1dURi9OYWtlZFB0ci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElS
fS9UZXN0cy9XVEYvT3B0aW9uU2V0LmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3Rz
L1dURi9QYXJraW5nTG90LmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9S
ZWRCbGFja1RyZWUuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL1JlZi5j
cHAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjM2ODk5Njc4Yzc0YjUwNzkzYWMwMjExMjZi
ODE1NTM2ODNhM2YxYy4uMjcwMWY5MmE5ZTk3ZWMzOTFkOGU1ZDUwNDYxYTEyN2ZhNTcwYTFjYiAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM0Miw2ICszNDIsNyBAQAogCQlDRTM1MjRGODFC
MTQzMUY2MDAyOEE3QzUgLyogVGV4dEZpZWxkRGlkQmVnaW5BbmRFbmRFZGl0aW5nX0J1bmRsZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTM1MjRG
MjFCMTQyQjhEMDAyOEE3QzUgLyogVGV4dEZpZWxkRGlkQmVnaW5BbmRFbmRFZGl0aW5nX0J1bmRs
ZS5jcHAgKi87IH07CiAJCUNFMzUyNEY5MUIxNDQxQzQwMDI4QTdDNSAvKiBUZXh0RmllbGREaWRC
ZWdpbkFuZEVuZEVkaXRpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0UzNTI0RjExQjE0MkI4RDAwMjhBN0M1IC8qIFRleHRGaWVsZERpZEJlZ2lu
QW5kRW5kRWRpdGluZy5jcHAgKi87IH07CiAJCUNFMzUyNEZBMUIxNDQzODkwMDI4QTdDNSAvKiBp
bnB1dC1mb2N1cy1ibHVyLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0UzNTI0RjUxQjE0MkJCQjAwMjhBN0M1IC8qIGlucHV0LWZvY3Vz
LWJsdXIuaHRtbCAqLzsgfTsKKwkJQ0U1MEQ4Q0ExQzg2NjVDRTAwNzJFQTVBIC8qIE9wdGlvblNl
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTUw
RDhDODFDODY2NUNFMDA3MkVBNUEgLyogT3B0aW9uU2V0LmNwcCAqLzsgfTsKIAkJQ0VBNkNGMjgx
OUNDRjY5RDAwNjRGNUE3IC8qIG9wZW4tYW5kLWNsb3NlLXdpbmRvdy5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFQTZDRjI3MTlDQ0Y2
OUQwMDY0RjVBNyAvKiBvcGVuLWFuZC1jbG9zZS13aW5kb3cuaHRtbCAqLzsgfTsKIAkJQ0VCQUJE
NDkxQjcxNjg3QzAwNTEyMTBBIC8qIHNob3VsZC1vcGVuLWV4dGVybmFsLXNjaGVtZXMuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRUJB
QkQ0ODFCNzE2ODdDMDA1MTIxMEEgLyogc2hvdWxkLW9wZW4tZXh0ZXJuYWwtc2NoZW1lcy5odG1s
ICovOyB9OwogCQlFMTIyMERDQTE1NUIyOEFBMDAxM0UyRkMgLyogTWVtb3J5Q2FjaGVEaXNhYmxl
V2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTIyMERDOTE1NUIyODdEMDAxM0UyRkMgLyog
TWVtb3J5Q2FjaGVEaXNhYmxlV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCAqLzsgfTsK
QEAgLTg0MSw2ICs4NDIsNyBAQAogCQlDRTM1MjRGMTFCMTQyQjhEMDAyOEE3QzUgLyogVGV4dEZp
ZWxkRGlkQmVnaW5BbmRFbmRFZGl0aW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFRleHRGaWVsZERpZEJlZ2luQW5kRW5kRWRpdGluZy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNFMzUyNEYyMUIxNDJCOEQwMDI4QTdDNSAvKiBUZXh0RmllbGRE
aWRCZWdpbkFuZEVuZEVkaXRpbmdfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFRleHRGaWVsZERpZEJlZ2luQW5kRW5kRWRpdGluZ19CdW5kbGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTM1MjRGNTFCMTQyQkJCMDAyOEE3QzUgLyog
aW5wdXQtZm9jdXMtYmx1ci5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImlucHV0
LWZvY3VzLWJsdXIuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNFNTBEOEM4
MUM4NjY1Q0UwMDcyRUE1QSAvKiBPcHRpb25TZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gT3B0aW9uU2V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0VBNkNGMjIxOUNDRjVCRDAwNjRGNUE3IC8qIE9wZW5BbmRDbG9zZVdpbmRvdy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE9wZW5BbmRDbG9zZVdpbmRvdy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0VBNkNGMjcxOUNDRjY5RDAwNjRGNUE3
IC8qIG9wZW4tYW5kLWNsb3NlLXdpbmRvdy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIm9wZW4tYW5kLWNsb3Nl
LXdpbmRvdy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0VCQUJENDgxQjcx
Njg3QzAwNTEyMTBBIC8qIHNob3VsZC1vcGVuLWV4dGVybmFsLXNjaGVtZXMuaHRtbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0
aCA9ICJzaG91bGQtb3Blbi1leHRlcm5hbC1zY2hlbWVzLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTI4Niw2ICsxMjg4LDcgQEAKIAkJCQkwRkM2QzRDRTE0MTAzNEFEMDA1
QjdGMEMgLyogTWV0YUFsbG9jYXRvci5jcHAgKi8sCiAJCQkJOTNBNDI3QUMxODBEQTYwRjAwQ0Qy
NEQ3IC8qIE1vdmVPbmx5LmggKi8sCiAJCQkJRkVCNkY3NEUxQjJCQTQ0RTAwOUU0OTIyIC8qIE5h
a2VkUHRyLmNwcCAqLywKKwkJCQlDRTUwRDhDODFDODY2NUNFMDA3MkVBNUEgLyogT3B0aW9uU2V0
LmNwcCAqLywKIAkJCQkxQUZERTY1NDE5NTNCMkMwMDBDNDhGRkEgLyogT3B0aW9uYWwuY3BwICov
LAogCQkJCTBGRTQ0Nzk3MUI3NkYxRTMwMDk0OThFQiAvKiBQYXJraW5nTG90LmNwcCAqLywKIAkJ
CQkwRkM2QzRDQjE0MTAyN0UwMDA1QjdGMEMgLyogUmVkQmxhY2tUcmVlLmNwcCAqLywKQEAgLTE4
OTgsNiArMTkwMSw3IEBACiAJCQkJMkQ5QTUzQUYxQjMxRkE4RDAwNzRENUFBIC8qIFNocmlua1Rv
Rml0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFCNDU0RUMxQjRFMjM2QjAwODVFQUE2IC8qIFdl
YlZpZXdDbG9zZUluc2lkZURpZEZpbmlzaExvYWRGb3JGcmFtZS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTdBQTAyMUJCMUFCMDlFQTcwMDUyOTUzRiAvKiBEYXRlTWF0aC5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlDRTUwRDhDQTFDODY2NUNFMDA3MkVBNUEgLyogT3B0aW9uU2V0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTJEMUZFMEIwMUFENDY1QzEwMDZDRDlFNiAvKiBGaXhlZExheW91dFNpemUu
bW0gaW4gU291cmNlcyAqLywKIAkJCQkxQ0I5QkMzODFBNjc0ODIzMDBGRTU2NzggLyogV2Vha1B0
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRTc3NjVDRDE2QzREODBBMDBCQTJCQjEgLyogbWFp
bklPUy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvT3B0aW9uU2V0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL09w
dGlvblNldC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzRhZDY4NzZlN2YwYTlmY2ZmMmM5MjVmMDIzMjg0ZmMz
YWViYjAzNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L09wdGlvblNldC5jcHAKQEAgLTAsMCArMSwxMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CisKK25hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJIHsKKworZW51bSBjbGFzcyBFeGFtcGxlRmxhZ3MgOiB1bnNpZ25lZCB7CisgICAg
QSA9IDEgPDwgMCwKKyAgICBCID0gMSA8PCAxLAorICAgIEMgPSAxIDw8IDIsCit9OworCitURVNU
KFdURl9PcHRpb25TZXQsIEVtcHR5U2V0KQoreworICAgIE9wdGlvblNldDxFeGFtcGxlRmxhZ3M+
IHNldDsKKworICAgIEVYUEVDVF9GQUxTRShzZXQuY29udGFpbnMoRXhhbXBsZUZsYWdzOjpBKSk7
CisgICAgRVhQRUNUX0ZBTFNFKHNldC5jb250YWlucyhFeGFtcGxlRmxhZ3M6OkIpKTsKKyAgICBF
WFBFQ1RfRkFMU0Uoc2V0LmNvbnRhaW5zKEV4YW1wbGVGbGFnczo6QykpOworfQorCitURVNUKFdU
Rl9PcHRpb25TZXQsIENvbnRhaW5zT25lRmxhZykKK3sKKyAgICBPcHRpb25TZXQ8RXhhbXBsZUZs
YWdzPiBzZXQgPSBFeGFtcGxlRmxhZ3M6OkE7CisgICAgRVhQRUNUX1RSVUUoc2V0LmNvbnRhaW5z
KEV4YW1wbGVGbGFnczo6QSkpOworICAgIEVYUEVDVF9GQUxTRShzZXQuY29udGFpbnMoRXhhbXBs
ZUZsYWdzOjpCKSk7CisgICAgRVhQRUNUX0ZBTFNFKHNldC5jb250YWlucyhFeGFtcGxlRmxhZ3M6
OkMpKTsKK30KKworVEVTVChXVEZfT3B0aW9uU2V0LCBDb250YWluc1R3b0ZsYWdzKQoreworICAg
IE9wdGlvblNldDxFeGFtcGxlRmxhZ3M+IHNldCA9IEV4YW1wbGVGbGFnczo6QTsKKyAgICBzZXQg
fD0gRXhhbXBsZUZsYWdzOjpCOworICAgIEVYUEVDVF9UUlVFKHNldC5jb250YWlucyhFeGFtcGxl
RmxhZ3M6OkEpKTsKKyAgICBFWFBFQ1RfVFJVRShzZXQuY29udGFpbnMoRXhhbXBsZUZsYWdzOjpC
KSk7CisgICAgRVhQRUNUX0ZBTFNFKHNldC5jb250YWlucyhFeGFtcGxlRmxhZ3M6OkMpKTsKK30K
KworVEVTVChXVEZfT3B0aW9uU2V0LCBFbXB0eU9wdGlvblNldFRvUmF3VmFsdWVUb09wdGlvblNl
dCkKK3sKKyAgICBPcHRpb25TZXQ8RXhhbXBsZUZsYWdzPiBzZXQ7CisgICAgRVhQRUNUX0ZBTFNF
KHNldC5jb250YWlucyhFeGFtcGxlRmxhZ3M6OkEpKTsKKyAgICBFWFBFQ1RfRkFMU0Uoc2V0LmNv
bnRhaW5zKEV4YW1wbGVGbGFnczo6QikpOworICAgIEVYUEVDVF9GQUxTRShzZXQuY29udGFpbnMo
RXhhbXBsZUZsYWdzOjpDKSk7CisKKyAgICBhdXRvIHNldDIgPSBPcHRpb25TZXQ8RXhhbXBsZUZs
YWdzPjo6ZnJvbVJhdyhzZXQudG9SYXcoKSk7CisgICAgRVhQRUNUX0ZBTFNFKHNldDIuY29udGFp
bnMoRXhhbXBsZUZsYWdzOjpBKSk7CisgICAgRVhQRUNUX0ZBTFNFKHNldDIuY29udGFpbnMoRXhh
bXBsZUZsYWdzOjpCKSk7CisgICAgRVhQRUNUX0ZBTFNFKHNldDIuY29udGFpbnMoRXhhbXBsZUZs
YWdzOjpDKSk7Cit9CisKK1RFU1QoV1RGX09wdGlvblNldCwgT3B0aW9uU2V0VGhhdENvbnRhaW5z
T25lRmxhZ1RvUmF3VmFsdWVUb09wdGlvblNldCkKK3sKKyAgICBPcHRpb25TZXQ8RXhhbXBsZUZs
YWdzPiBzZXQgPSBFeGFtcGxlRmxhZ3M6OkE7CisgICAgRVhQRUNUX1RSVUUoc2V0LmNvbnRhaW5z
KEV4YW1wbGVGbGFnczo6QSkpOworICAgIEVYUEVDVF9GQUxTRShzZXQuY29udGFpbnMoRXhhbXBs
ZUZsYWdzOjpCKSk7CisgICAgRVhQRUNUX0ZBTFNFKHNldC5jb250YWlucyhFeGFtcGxlRmxhZ3M6
OkMpKTsKKworICAgIGF1dG8gc2V0MiA9IE9wdGlvblNldDxFeGFtcGxlRmxhZ3M+Ojpmcm9tUmF3
KHNldC50b1JhdygpKTsKKyAgICBFWFBFQ1RfVFJVRShzZXQyLmNvbnRhaW5zKEV4YW1wbGVGbGFn
czo6QSkpOworICAgIEVYUEVDVF9GQUxTRShzZXQyLmNvbnRhaW5zKEV4YW1wbGVGbGFnczo6Qikp
OworICAgIEVYUEVDVF9GQUxTRShzZXQyLmNvbnRhaW5zKEV4YW1wbGVGbGFnczo6QykpOworfQor
CitURVNUKFdURl9PcHRpb25TZXQsIE9wdGlvblNldFRoYXRDb250YWluc1R3b0ZsYWdzVG9SYXdW
YWx1ZVRvT3B0aW9uU2V0KQoreworICAgIE9wdGlvblNldDxFeGFtcGxlRmxhZ3M+IHNldCA9IEV4
YW1wbGVGbGFnczo6QTsKKyAgICBzZXQgfD0gRXhhbXBsZUZsYWdzOjpDOworICAgIEVYUEVDVF9U
UlVFKHNldC5jb250YWlucyhFeGFtcGxlRmxhZ3M6OkEpKTsKKyAgICBFWFBFQ1RfVFJVRShzZXQu
Y29udGFpbnMoRXhhbXBsZUZsYWdzOjpDKSk7CisgICAgRVhQRUNUX0ZBTFNFKHNldC5jb250YWlu
cyhFeGFtcGxlRmxhZ3M6OkIpKTsKKworICAgIGF1dG8gc2V0MiA9IE9wdGlvblNldDxFeGFtcGxl
RmxhZ3M+Ojpmcm9tUmF3KHNldC50b1JhdygpKTsKKyAgICBFWFBFQ1RfVFJVRShzZXQyLmNvbnRh
aW5zKEV4YW1wbGVGbGFnczo6QSkpOworICAgIEVYUEVDVF9UUlVFKHNldDIuY29udGFpbnMoRXhh
bXBsZUZsYWdzOjpDKSk7CisgICAgRVhQRUNUX0ZBTFNFKHNldDIuY29udGFpbnMoRXhhbXBsZUZs
YWdzOjpCKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272671</attachid>
            <date>2016-03-02 12:08:50 -0800</date>
            <delta_ts>2016-03-02 17:06:38 -0800</delta_ts>
            <desc>Unit tests</desc>
            <filename>bug-154925-20160302120835.patch</filename>
            <type>text/plain</type>
            <size>10644</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGU1YWVhNTk3NmNmNDMxZjI3ZjJhNDBm
N2UxZjdhNmJjNTk0N2JmYTYuLmQ0MDZiNmFjODQwM2Q0NWZjZDlhYmIxM2FmNGYwYzJiZDQyYWVi
MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDMtMDIgIERhbmllbCBCYXRlcyAgPGRhYmF0
ZXNAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB1bml0IHRlc3RzIGZvciBXVEY6Ok9wdGlvblNl
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0OTI1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGhl
YWRlciBPcHRpb25TZXQuaCB0byB0aGUgbGlzdCBvZiBXVEYgaGVhZGVycy4KKworICAgICAgICAq
IHd0Zi9DTWFrZUxpc3RzLnR4dDoKKwogMjAxNi0wMy0wMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlZHVjZSBzaXplIG9mIGludGVybmFs
IHdpbmRvd3MgYnVpbGQgb3V0cHV0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CmluZGV4IDI1ZGU3MTRmNmQx
ZTdiNjk4Y2EzNjIwMGUxOWJkMWU2NjNjZjEwZjguLmZjMDA5NmMxNWE4MmM5YjA0NzU4ZDRmYWY3
OGVhOTU5MDQ3YTFhYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CkBAIC02MCw2ICs2MCw3IEBAIHNl
dChXVEZfSEVBREVSUwogICAgIE51bWJlck9mQ29yZXMuaAogICAgIE9TQWxsb2NhdG9yLmgKICAg
ICBPU1JhbmRvbVNvdXJjZS5oCisgICAgT3B0aW9uU2V0LmgKICAgICBPcmRlck1ha2VyLmgKICAg
ICBQYWdlQWxsb2NhdGlvbi5oCiAgICAgUGFnZUJsb2NrLmgKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlYTFkNzIyNjZiMjlkY2E2NWUzY2M5ODY3
MDdmMDdkYWJjNjJlOGQwLi4xODFiMzlkMjkxYTA1MDJkY2E2ZmUyNmI3OTAzYTU5N2I5MDgxNzRk
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTYtMDMtMDIgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCB1bml0IHRlc3RzIGZvciBXVEY6Ok9wdGlvblNldAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0OTI1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3RzIHRvIGVuc3Vy
ZSB0aGF0IHdlIGRvIG5vdCByZWdyZXNzIHRoZSBiZWhhdmlvciBvZiBXVEY6Ok9wdGlvblNldC4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQ6IEFkZCBmaWxlIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL09wdGlvblNldC5jcHAuCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL09wdGlvblNldC5jcHA6IEFkZGVkLgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTYtMDItMjkgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBIYXZlIHBhcnNlSFRNTEludGVnZXIoKSAvIHBhcnNl
SFRNTE5vbk5lZ2F0aXZlSW50ZWdlcigpIHVzZSBXVEY6Ok9wdGlvbmFsCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9D
TWFrZUxpc3RzLnR4dAppbmRleCBhMjUzMmIwMWQ0N2M0MjhhYjc4YzJlZjk0NDBjY2U5Y2U0MTlm
NDE5Li5jNTA1ZmEyNWI1NWRlNzA4MDhjZjNjODBkMTI4YTBiODA0ZjdjMzVlIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvQ01ha2VMaXN0cy50eHQKQEAgLTU4LDYgKzU4LDcgQEAgc2V0KFRlc3RXVEZfU09VUkNF
UwogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9NZWRpYVRpbWUuY3BwCiAgICAg
JHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL01ldGFBbGxvY2F0b3IuY3BwCiAgICAgJHtU
RVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL05ha2VkUHRyLmNwcAorICAgICR7VEVTVFdFQktJ
VEFQSV9ESVJ9L1Rlc3RzL1dURi9PcHRpb25TZXQuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJ
Un0vVGVzdHMvV1RGL1BhcmtpbmdMb3QuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVz
dHMvV1RGL1JlZEJsYWNrVHJlZS5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9X
VEYvUmVmLmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmMzY4OTk2NzhjNzRiNTA3OTNh
YzAyMTEyNmI4MTU1MzY4M2EzZjFjLi4yNzAxZjkyYTllOTdlYzM5MWQ4ZTVkNTA0NjFhMTI3ZmE1
NzBhMWNiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzQyLDYgKzM0Miw3IEBACiAJCUNF
MzUyNEY4MUIxNDMxRjYwMDI4QTdDNSAvKiBUZXh0RmllbGREaWRCZWdpbkFuZEVuZEVkaXRpbmdf
QnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENFMzUyNEYyMUIxNDJCOEQwMDI4QTdDNSAvKiBUZXh0RmllbGREaWRCZWdpbkFuZEVuZEVkaXRp
bmdfQnVuZGxlLmNwcCAqLzsgfTsKIAkJQ0UzNTI0RjkxQjE0NDFDNDAwMjhBN0M1IC8qIFRleHRG
aWVsZERpZEJlZ2luQW5kRW5kRWRpdGluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRTM1MjRGMTFCMTQyQjhEMDAyOEE3QzUgLyogVGV4dEZpZWxk
RGlkQmVnaW5BbmRFbmRFZGl0aW5nLmNwcCAqLzsgfTsKIAkJQ0UzNTI0RkExQjE0NDM4OTAwMjhB
N0M1IC8qIGlucHV0LWZvY3VzLWJsdXIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTM1MjRGNTFCMTQyQkJCMDAyOEE3QzUgLyogaW5w
dXQtZm9jdXMtYmx1ci5odG1sICovOyB9OworCQlDRTUwRDhDQTFDODY2NUNFMDA3MkVBNUEgLyog
T3B0aW9uU2V0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENFNTBEOEM4MUM4NjY1Q0UwMDcyRUE1QSAvKiBPcHRpb25TZXQuY3BwICovOyB9OwogCQlD
RUE2Q0YyODE5Q0NGNjlEMDA2NEY1QTcgLyogb3Blbi1hbmQtY2xvc2Utd2luZG93Lmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0VBNkNG
MjcxOUNDRjY5RDAwNjRGNUE3IC8qIG9wZW4tYW5kLWNsb3NlLXdpbmRvdy5odG1sICovOyB9Owog
CQlDRUJBQkQ0OTFCNzE2ODdDMDA1MTIxMEEgLyogc2hvdWxkLW9wZW4tZXh0ZXJuYWwtc2NoZW1l
cy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENFQkFCRDQ4MUI3MTY4N0MwMDUxMjEwQSAvKiBzaG91bGQtb3Blbi1leHRlcm5hbC1zY2hl
bWVzLmh0bWwgKi87IH07CiAJCUUxMjIwRENBMTU1QjI4QUEwMDEzRTJGQyAvKiBNZW1vcnlDYWNo
ZURpc2FibGVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjIwREM5MTU1QjI4N0QwMDEz
RTJGQyAvKiBNZW1vcnlDYWNoZURpc2FibGVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1s
ICovOyB9OwpAQCAtODQxLDYgKzg0Miw3IEBACiAJCUNFMzUyNEYxMUIxNDJCOEQwMDI4QTdDNSAv
KiBUZXh0RmllbGREaWRCZWdpbkFuZEVuZEVkaXRpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gVGV4dEZpZWxkRGlkQmVnaW5BbmRFbmRFZGl0aW5nLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UzNTI0RjIxQjE0MkI4RDAwMjhBN0M1IC8qIFRl
eHRGaWVsZERpZEJlZ2luQW5kRW5kRWRpdGluZ19CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dEZpZWxkRGlkQmVnaW5BbmRFbmRFZGl0aW5nX0J1bmRs
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFMzUyNEY1MUIxNDJCQkIwMDI4
QTdDNSAvKiBpbnB1dC1mb2N1cy1ibHVyLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSAiaW5wdXQtZm9jdXMtYmx1ci5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
Q0U1MEQ4QzgxQzg2NjVDRTAwNzJFQTVBIC8qIE9wdGlvblNldC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPcHRpb25TZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDRUE2Q0YyMjE5Q0NGNUJEMDA2NEY1QTcgLyogT3BlbkFuZENsb3NlV2luZG93
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gT3BlbkFuZENsb3Nl
V2luZG93Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRUE2Q0YyNzE5Q0NGNjlE
MDA2NEY1QTcgLyogb3Blbi1hbmQtY2xvc2Utd2luZG93Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAib3Blbi1h
bmQtY2xvc2Utd2luZG93Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRUJB
QkQ0ODFCNzE2ODdDMDA1MTIxMEEgLyogc2hvdWxkLW9wZW4tZXh0ZXJuYWwtc2NoZW1lcy5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5o
dG1sOyBwYXRoID0gInNob3VsZC1vcGVuLWV4dGVybmFsLXNjaGVtZXMuaHRtbCI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjg2LDYgKzEyODgsNyBAQAogCQkJCTBGQzZDNENFMTQx
MDM0QUQwMDVCN0YwQyAvKiBNZXRhQWxsb2NhdG9yLmNwcCAqLywKIAkJCQk5M0E0MjdBQzE4MERB
NjBGMDBDRDI0RDcgLyogTW92ZU9ubHkuaCAqLywKIAkJCQlGRUI2Rjc0RTFCMkJBNDRFMDA5RTQ5
MjIgLyogTmFrZWRQdHIuY3BwICovLAorCQkJCUNFNTBEOEM4MUM4NjY1Q0UwMDcyRUE1QSAvKiBP
cHRpb25TZXQuY3BwICovLAogCQkJCTFBRkRFNjU0MTk1M0IyQzAwMEM0OEZGQSAvKiBPcHRpb25h
bC5jcHAgKi8sCiAJCQkJMEZFNDQ3OTcxQjc2RjFFMzAwOTQ5OEVCIC8qIFBhcmtpbmdMb3QuY3Bw
ICovLAogCQkJCTBGQzZDNENCMTQxMDI3RTAwMDVCN0YwQyAvKiBSZWRCbGFja1RyZWUuY3BwICov
LApAQCAtMTg5OCw2ICsxOTAxLDcgQEAKIAkJCQkyRDlBNTNBRjFCMzFGQThEMDA3NEQ1QUEgLyog
U2hyaW5rVG9GaXQubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUI0NTRFQzFCNEUyMzZCMDA4NUVB
QTYgLyogV2ViVmlld0Nsb3NlSW5zaWRlRGlkRmluaXNoTG9hZEZvckZyYW1lLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0FBMDIxQkIxQUIwOUVBNzAwNTI5NTNGIC8qIERhdGVNYXRoLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUNFNTBEOENBMUM4NjY1Q0UwMDcyRUE1QSAvKiBPcHRpb25TZXQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxRkUwQjAxQUQ0NjVDMTAwNkNEOUU2IC8qIEZpeGVkTGF5
b3V0U2l6ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFDQjlCQzM4MUE2NzQ4MjMwMEZFNTY3OCAv
KiBXZWFrUHRyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFNzc2NUNEMTZDNEQ4MEEwMEJBMkJC
MSAvKiBtYWluSU9TLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9PcHRpb25TZXQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvT3B0aW9uU2V0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OGE2ZGNlYjNkZjdiNDcyNTcxZjIwZWVh
M2Y0YWIwNTkxYzZmNGVmCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvT3B0aW9uU2V0LmNwcApAQCAtMCwwICsxLDEwNCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KKworbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkgeworCitlbnVtIGNsYXNzIEV4YW1wbGVGbGFncyB7CisgICAgQSA9
IDEgPDwgMCwKKyAgICBCID0gMSA8PCAxLAorICAgIEMgPSAxIDw8IDIsCit9OworCitURVNUKFdU
Rl9PcHRpb25TZXQsIEVtcHR5U2V0KQoreworICAgIE9wdGlvblNldDxFeGFtcGxlRmxhZ3M+IHNl
dDsKKworICAgIEVYUEVDVF9GQUxTRShzZXQuY29udGFpbnMoRXhhbXBsZUZsYWdzOjpBKSk7Cisg
ICAgRVhQRUNUX0ZBTFNFKHNldC5jb250YWlucyhFeGFtcGxlRmxhZ3M6OkIpKTsKKyAgICBFWFBF
Q1RfRkFMU0Uoc2V0LmNvbnRhaW5zKEV4YW1wbGVGbGFnczo6QykpOworfQorCitURVNUKFdURl9P
cHRpb25TZXQsIENvbnRhaW5zT25lRmxhZykKK3sKKyAgICBPcHRpb25TZXQ8RXhhbXBsZUZsYWdz
PiBzZXQgPSBFeGFtcGxlRmxhZ3M6OkE7CisgICAgRVhQRUNUX1RSVUUoc2V0LmNvbnRhaW5zKEV4
YW1wbGVGbGFnczo6QSkpOworICAgIEVYUEVDVF9GQUxTRShzZXQuY29udGFpbnMoRXhhbXBsZUZs
YWdzOjpCKSk7CisgICAgRVhQRUNUX0ZBTFNFKHNldC5jb250YWlucyhFeGFtcGxlRmxhZ3M6OkMp
KTsKK30KKworVEVTVChXVEZfT3B0aW9uU2V0LCBDb250YWluc1R3b0ZsYWdzKQoreworICAgIE9w
dGlvblNldDxFeGFtcGxlRmxhZ3M+IHNldCA9IEV4YW1wbGVGbGFnczo6QTsKKyAgICBzZXQgfD0g
RXhhbXBsZUZsYWdzOjpCOworICAgIEVYUEVDVF9UUlVFKHNldC5jb250YWlucyhFeGFtcGxlRmxh
Z3M6OkEpKTsKKyAgICBFWFBFQ1RfVFJVRShzZXQuY29udGFpbnMoRXhhbXBsZUZsYWdzOjpCKSk7
CisgICAgRVhQRUNUX0ZBTFNFKHNldC5jb250YWlucyhFeGFtcGxlRmxhZ3M6OkMpKTsKK30KKwor
VEVTVChXVEZfT3B0aW9uU2V0LCBFbXB0eU9wdGlvblNldFRvUmF3VmFsdWVUb09wdGlvblNldCkK
K3sKKyAgICBPcHRpb25TZXQ8RXhhbXBsZUZsYWdzPiBzZXQ7CisgICAgRVhQRUNUX0ZBTFNFKHNl
dC5jb250YWlucyhFeGFtcGxlRmxhZ3M6OkEpKTsKKyAgICBFWFBFQ1RfRkFMU0Uoc2V0LmNvbnRh
aW5zKEV4YW1wbGVGbGFnczo6QikpOworICAgIEVYUEVDVF9GQUxTRShzZXQuY29udGFpbnMoRXhh
bXBsZUZsYWdzOjpDKSk7CisKKyAgICBhdXRvIHNldDIgPSBPcHRpb25TZXQ8RXhhbXBsZUZsYWdz
Pjo6ZnJvbVJhdyhzZXQudG9SYXcoKSk7CisgICAgRVhQRUNUX0ZBTFNFKHNldDIuY29udGFpbnMo
RXhhbXBsZUZsYWdzOjpBKSk7CisgICAgRVhQRUNUX0ZBTFNFKHNldDIuY29udGFpbnMoRXhhbXBs
ZUZsYWdzOjpCKSk7CisgICAgRVhQRUNUX0ZBTFNFKHNldDIuY29udGFpbnMoRXhhbXBsZUZsYWdz
OjpDKSk7Cit9CisKK1RFU1QoV1RGX09wdGlvblNldCwgT3B0aW9uU2V0VGhhdENvbnRhaW5zT25l
RmxhZ1RvUmF3VmFsdWVUb09wdGlvblNldCkKK3sKKyAgICBPcHRpb25TZXQ8RXhhbXBsZUZsYWdz
PiBzZXQgPSBFeGFtcGxlRmxhZ3M6OkE7CisgICAgRVhQRUNUX1RSVUUoc2V0LmNvbnRhaW5zKEV4
YW1wbGVGbGFnczo6QSkpOworICAgIEVYUEVDVF9GQUxTRShzZXQuY29udGFpbnMoRXhhbXBsZUZs
YWdzOjpCKSk7CisgICAgRVhQRUNUX0ZBTFNFKHNldC5jb250YWlucyhFeGFtcGxlRmxhZ3M6OkMp
KTsKKworICAgIGF1dG8gc2V0MiA9IE9wdGlvblNldDxFeGFtcGxlRmxhZ3M+Ojpmcm9tUmF3KHNl
dC50b1JhdygpKTsKKyAgICBFWFBFQ1RfVFJVRShzZXQyLmNvbnRhaW5zKEV4YW1wbGVGbGFnczo6
QSkpOworICAgIEVYUEVDVF9GQUxTRShzZXQyLmNvbnRhaW5zKEV4YW1wbGVGbGFnczo6QikpOwor
ICAgIEVYUEVDVF9GQUxTRShzZXQyLmNvbnRhaW5zKEV4YW1wbGVGbGFnczo6QykpOworfQorCitU
RVNUKFdURl9PcHRpb25TZXQsIE9wdGlvblNldFRoYXRDb250YWluc1R3b0ZsYWdzVG9SYXdWYWx1
ZVRvT3B0aW9uU2V0KQoreworICAgIE9wdGlvblNldDxFeGFtcGxlRmxhZ3M+IHNldCA9IEV4YW1w
bGVGbGFnczo6QTsKKyAgICBzZXQgfD0gRXhhbXBsZUZsYWdzOjpDOworICAgIEVYUEVDVF9UUlVF
KHNldC5jb250YWlucyhFeGFtcGxlRmxhZ3M6OkEpKTsKKyAgICBFWFBFQ1RfVFJVRShzZXQuY29u
dGFpbnMoRXhhbXBsZUZsYWdzOjpDKSk7CisgICAgRVhQRUNUX0ZBTFNFKHNldC5jb250YWlucyhF
eGFtcGxlRmxhZ3M6OkIpKTsKKworICAgIGF1dG8gc2V0MiA9IE9wdGlvblNldDxFeGFtcGxlRmxh
Z3M+Ojpmcm9tUmF3KHNldC50b1JhdygpKTsKKyAgICBFWFBFQ1RfVFJVRShzZXQyLmNvbnRhaW5z
KEV4YW1wbGVGbGFnczo6QSkpOworICAgIEVYUEVDVF9UUlVFKHNldDIuY29udGFpbnMoRXhhbXBs
ZUZsYWdzOjpDKSk7CisgICAgRVhQRUNUX0ZBTFNFKHNldDIuY29udGFpbnMoRXhhbXBsZUZsYWdz
OjpCKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272707</attachid>
            <date>2016-03-02 17:06:40 -0800</date>
            <delta_ts>2016-03-03 09:50:21 -0800</delta_ts>
            <desc>Patch and Unit tests</desc>
            <filename>bug-154925-20160302170625.patch</filename>
            <type>text/plain</type>
            <size>11931</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGU1YWVhNTk3NmNmNDMxZjI3ZjJhNDBm
N2UxZjdhNmJjNTk0N2JmYTYuLmI4ZWJlOWY4MGY5M2E5ZmY5OGFjYjc2MDllYWIxNzU1OTk5MjY1
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMDMtMDIgIERhbmllbCBCYXRlcyAgPGRhYmF0
ZXNAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB1bml0IHRlc3RzIGZvciBXVEY6Ok9wdGlvblNl
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0OTI1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYv
Q01ha2VMaXN0cy50eHQ6IEFkZCBoZWFkZXIgT3B0aW9uU2V0LmggdG8gdGhlIGxpc3Qgb2YgV1RG
IGhlYWRlcnMuCisgICAgICAgICogd3RmL09wdGlvblNldC5oOgorICAgICAgICAoV1RGOjpPcHRp
b25TZXQ6Ok9wdGlvblNldCk6IEZvciBjb252ZW5pZW5jZSBhZGQgYSBjb25zdHJ1Y3RvciB0aGF0
IHRha2VzIGEgc3RkOjppbml0aWFsaXplcl9saXN0LgorICAgICAgICBUaGlzIGNvZGUgd2FzIHdy
aXR0ZW4gYnkgQW5kZXJzIENhcmxzc29uLgorCiAyMDE2LTAzLTAxICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVkdWNlIHNpemUgb2YgaW50
ZXJuYWwgd2luZG93cyBidWlsZCBvdXRwdXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggMjVkZTcx
NGY2ZDFlN2I2OThjYTM2MjAwZTE5YmQxZTY2M2NmMTBmOC4uZmMwMDk2YzE1YTgyYzliMDQ3NThk
NGZhZjc4ZWE5NTkwNDdhMWFhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTYwLDYgKzYwLDcg
QEAgc2V0KFdURl9IRUFERVJTCiAgICAgTnVtYmVyT2ZDb3Jlcy5oCiAgICAgT1NBbGxvY2F0b3Iu
aAogICAgIE9TUmFuZG9tU291cmNlLmgKKyAgICBPcHRpb25TZXQuaAogICAgIE9yZGVyTWFrZXIu
aAogICAgIFBhZ2VBbGxvY2F0aW9uLmgKICAgICBQYWdlQmxvY2suaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvT3B0aW9uU2V0LmggYi9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25TZXQuaAppbmRl
eCA2YmRiYzY4MDRiMDEwZmIwMjhmYmY4NjkxMjllZTk1Y2IxY2U2M2NjLi5lOTllOTc2YjI5MDEz
ZWI2OTBiZTBkOGQwZjRmNTE2ZThiN2U4ODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9P
cHRpb25TZXQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9PcHRpb25TZXQuaApAQCAtMjYsNiArMjYs
NyBAQAogI2lmbmRlZiBPcHRpb25TZXRfaAogI2RlZmluZSBPcHRpb25TZXRfaAogCisjaW5jbHVk
ZSA8aW5pdGlhbGl6ZXJfbGlzdD4KICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KIAogbmFtZXNwYWNl
IFdURiB7CkBAIC01MCw2ICs1MSwxNSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAorICAgIC8v
IEZJWE1FOiBNYWtlIHRoaXMgY29uc3RleHByIG9uY2Ugd2UgYWRvcHQgQysrMTQgYXMgQysrMTEg
ZG9lcyBub3Qgc3VwcG9ydCBmb3ItbG9vcHMKKyAgICAvLyBpbiBhIGNvbnN0ZXhwciBmdW5jdGlv
bi4KKyAgICBPcHRpb25TZXQoc3RkOjppbml0aWFsaXplcl9saXN0PFQ+IGluaXRpYWxpemVyTGlz
dCkKKyAgICAgICAgOiBtX3N0b3JhZ2UoMCkKKyAgICB7CisgICAgICAgIGZvciAoYXV0byYgb3B0
aW9uIDogaW5pdGlhbGl6ZXJMaXN0KQorICAgICAgICAgICAgbV9zdG9yYWdlIHw9IHN0YXRpY19j
YXN0PFN0b3JhZ2VUeXBlPihvcHRpb24pOworICAgIH0KKwogICAgIGNvbnN0ZXhwciBTdG9yYWdl
VHlwZSB0b1JhdygpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcmFnZTsgfQogCiAgICAgY29uc3RleHBy
IGJvb2wgY29udGFpbnMoT3B0aW9uU2V0IG9wdGlvblNldCkgY29uc3QKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlYTFkNzIyNjZiMjlkY2E2NWUz
Y2M5ODY3MDdmMDdkYWJjNjJlOGQwLi4xODFiMzlkMjkxYTA1MDJkY2E2ZmUyNmI3OTAzYTU5N2I5
MDgxNzRkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTYtMDMtMDIgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBw
bGUuY29tPgorCisgICAgICAgIEFkZCB1bml0IHRlc3RzIGZvciBXVEY6Ok9wdGlvblNldAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0OTI1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3RzIHRv
IGVuc3VyZSB0aGF0IHdlIGRvIG5vdCByZWdyZXNzIHRoZSBiZWhhdmlvciBvZiBXVEY6Ok9wdGlv
blNldC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQ6IEFkZCBmaWxl
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL09wdGlvblNldC5jcHAuCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL09wdGlvblNldC5jcHA6IEFkZGVkLgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTYtMDItMjkgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBIYXZlIHBhcnNlSFRNTEludGVnZXIoKSAv
IHBhcnNlSFRNTE5vbk5lZ2F0aXZlSW50ZWdlcigpIHVzZSBXVEY6Ok9wdGlvbmFsCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9DTWFrZUxpc3RzLnR4dAppbmRleCBhMjUzMmIwMWQ0N2M0MjhhYjc4YzJlZjk0NDBjY2U5
Y2U0MTlmNDE5Li5jNTA1ZmEyNWI1NWRlNzA4MDhjZjNjODBkMTI4YTBiODA0ZjdjMzVlIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKQEAgLTU4LDYgKzU4LDcgQEAgc2V0KFRlc3RXVEZf
U09VUkNFUwogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9NZWRpYVRpbWUuY3Bw
CiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL01ldGFBbGxvY2F0b3IuY3BwCiAg
ICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL05ha2VkUHRyLmNwcAorICAgICR7VEVT
VFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9PcHRpb25TZXQuY3BwCiAgICAgJHtURVNUV0VCS0lU
QVBJX0RJUn0vVGVzdHMvV1RGL1BhcmtpbmdMb3QuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJ
Un0vVGVzdHMvV1RGL1JlZEJsYWNrVHJlZS5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9U
ZXN0cy9XVEYvUmVmLmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmMzY4OTk2NzhjNzRi
NTA3OTNhYzAyMTEyNmI4MTU1MzY4M2EzZjFjLi4yNzAxZjkyYTllOTdlYzM5MWQ4ZTVkNTA0NjFh
MTI3ZmE1NzBhMWNiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzQyLDYgKzM0Miw3IEBA
CiAJCUNFMzUyNEY4MUIxNDMxRjYwMDI4QTdDNSAvKiBUZXh0RmllbGREaWRCZWdpbkFuZEVuZEVk
aXRpbmdfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENFMzUyNEYyMUIxNDJCOEQwMDI4QTdDNSAvKiBUZXh0RmllbGREaWRCZWdpbkFuZEVu
ZEVkaXRpbmdfQnVuZGxlLmNwcCAqLzsgfTsKIAkJQ0UzNTI0RjkxQjE0NDFDNDAwMjhBN0M1IC8q
IFRleHRGaWVsZERpZEJlZ2luQW5kRW5kRWRpdGluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTM1MjRGMTFCMTQyQjhEMDAyOEE3QzUgLyogVGV4
dEZpZWxkRGlkQmVnaW5BbmRFbmRFZGl0aW5nLmNwcCAqLzsgfTsKIAkJQ0UzNTI0RkExQjE0NDM4
OTAwMjhBN0M1IC8qIGlucHV0LWZvY3VzLWJsdXIuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTM1MjRGNTFCMTQyQkJCMDAyOEE3QzUg
LyogaW5wdXQtZm9jdXMtYmx1ci5odG1sICovOyB9OworCQlDRTUwRDhDQTFDODY2NUNFMDA3MkVB
NUEgLyogT3B0aW9uU2V0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENFNTBEOEM4MUM4NjY1Q0UwMDcyRUE1QSAvKiBPcHRpb25TZXQuY3BwICovOyB9
OwogCQlDRUE2Q0YyODE5Q0NGNjlEMDA2NEY1QTcgLyogb3Blbi1hbmQtY2xvc2Utd2luZG93Lmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0VBNkNGMjcxOUNDRjY5RDAwNjRGNUE3IC8qIG9wZW4tYW5kLWNsb3NlLXdpbmRvdy5odG1sICov
OyB9OwogCQlDRUJBQkQ0OTFCNzE2ODdDMDA1MTIxMEEgLyogc2hvdWxkLW9wZW4tZXh0ZXJuYWwt
c2NoZW1lcy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENFQkFCRDQ4MUI3MTY4N0MwMDUxMjEwQSAvKiBzaG91bGQtb3Blbi1leHRlcm5h
bC1zY2hlbWVzLmh0bWwgKi87IH07CiAJCUUxMjIwRENBMTU1QjI4QUEwMDEzRTJGQyAvKiBNZW1v
cnlDYWNoZURpc2FibGVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0ZS5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjIwREM5MTU1QjI4
N0QwMDEzRTJGQyAvKiBNZW1vcnlDYWNoZURpc2FibGVXaXRoaW5SZXNvdXJjZUxvYWREZWxlZ2F0
ZS5odG1sICovOyB9OwpAQCAtODQxLDYgKzg0Miw3IEBACiAJCUNFMzUyNEYxMUIxNDJCOEQwMDI4
QTdDNSAvKiBUZXh0RmllbGREaWRCZWdpbkFuZEVuZEVkaXRpbmcuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dEZpZWxkRGlkQmVnaW5BbmRFbmRFZGl0aW5nLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UzNTI0RjIxQjE0MkI4RDAwMjhBN0M1
IC8qIFRleHRGaWVsZERpZEJlZ2luQW5kRW5kRWRpdGluZ19CdW5kbGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dEZpZWxkRGlkQmVnaW5BbmRFbmRFZGl0aW5n
X0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFMzUyNEY1MUIxNDJC
QkIwMDI4QTdDNSAvKiBpbnB1dC1mb2N1cy1ibHVyLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IHBhdGggPSAiaW5wdXQtZm9jdXMtYmx1ci5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQ0U1MEQ4QzgxQzg2NjVDRTAwNzJFQTVBIC8qIE9wdGlvblNldC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPcHRpb25TZXQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRUE2Q0YyMjE5Q0NGNUJEMDA2NEY1QTcgLyogT3BlbkFuZENsb3Nl
V2luZG93Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gT3BlbkFu
ZENsb3NlV2luZG93Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRUE2Q0YyNzE5
Q0NGNjlEMDA2NEY1QTcgLyogb3Blbi1hbmQtY2xvc2Utd2luZG93Lmh0bWwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAi
b3Blbi1hbmQtY2xvc2Utd2luZG93Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRUJBQkQ0ODFCNzE2ODdDMDA1MTIxMEEgLyogc2hvdWxkLW9wZW4tZXh0ZXJuYWwtc2NoZW1l
cy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC5odG1sOyBwYXRoID0gInNob3VsZC1vcGVuLWV4dGVybmFsLXNjaGVtZXMuaHRtbCI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjg2LDYgKzEyODgsNyBAQAogCQkJCTBGQzZD
NENFMTQxMDM0QUQwMDVCN0YwQyAvKiBNZXRhQWxsb2NhdG9yLmNwcCAqLywKIAkJCQk5M0E0MjdB
QzE4MERBNjBGMDBDRDI0RDcgLyogTW92ZU9ubHkuaCAqLywKIAkJCQlGRUI2Rjc0RTFCMkJBNDRF
MDA5RTQ5MjIgLyogTmFrZWRQdHIuY3BwICovLAorCQkJCUNFNTBEOEM4MUM4NjY1Q0UwMDcyRUE1
QSAvKiBPcHRpb25TZXQuY3BwICovLAogCQkJCTFBRkRFNjU0MTk1M0IyQzAwMEM0OEZGQSAvKiBP
cHRpb25hbC5jcHAgKi8sCiAJCQkJMEZFNDQ3OTcxQjc2RjFFMzAwOTQ5OEVCIC8qIFBhcmtpbmdM
b3QuY3BwICovLAogCQkJCTBGQzZDNENCMTQxMDI3RTAwMDVCN0YwQyAvKiBSZWRCbGFja1RyZWUu
Y3BwICovLApAQCAtMTg5OCw2ICsxOTAxLDcgQEAKIAkJCQkyRDlBNTNBRjFCMzFGQThEMDA3NEQ1
QUEgLyogU2hyaW5rVG9GaXQubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUI0NTRFQzFCNEUyMzZC
MDA4NUVBQTYgLyogV2ViVmlld0Nsb3NlSW5zaWRlRGlkRmluaXNoTG9hZEZvckZyYW1lLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0FBMDIxQkIxQUIwOUVBNzAwNTI5NTNGIC8qIERhdGVNYXRoLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUNFNTBEOENBMUM4NjY1Q0UwMDcyRUE1QSAvKiBPcHRpb25T
ZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxRkUwQjAxQUQ0NjVDMTAwNkNEOUU2IC8qIEZp
eGVkTGF5b3V0U2l6ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFDQjlCQzM4MUE2NzQ4MjMwMEZF
NTY3OCAvKiBXZWFrUHRyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFNzc2NUNEMTZDNEQ4MEEw
MEJBMkJCMSAvKiBtYWluSU9TLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9PcHRpb25TZXQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvT3B0aW9uU2V0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMDk2MTljODU0ODJiNzJmNmFi
YTU2NmNiODVmY2EwMzFhYjM5ZGYxCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvT3B0aW9uU2V0LmNwcApAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KKwor
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitlbnVtIGNsYXNzIEV4YW1wbGVGbGFncyB7Cisg
ICAgQSA9IDEgPDwgMCwKKyAgICBCID0gMSA8PCAxLAorICAgIEMgPSAxIDw8IDIsCit9OworCitU
RVNUKFdURl9PcHRpb25TZXQsIEVtcHR5U2V0KQoreworICAgIE9wdGlvblNldDxFeGFtcGxlRmxh
Z3M+IHNldDsKKyAgICBFWFBFQ1RfRkFMU0Uoc2V0LmNvbnRhaW5zKEV4YW1wbGVGbGFnczo6QSkp
OworICAgIEVYUEVDVF9GQUxTRShzZXQuY29udGFpbnMoRXhhbXBsZUZsYWdzOjpCKSk7CisgICAg
RVhQRUNUX0ZBTFNFKHNldC5jb250YWlucyhFeGFtcGxlRmxhZ3M6OkMpKTsKK30KKworVEVTVChX
VEZfT3B0aW9uU2V0LCBDb250YWluc09uZUZsYWcpCit7CisgICAgT3B0aW9uU2V0PEV4YW1wbGVG
bGFncz4gc2V0ID0gRXhhbXBsZUZsYWdzOjpBOworICAgIEVYUEVDVF9UUlVFKHNldC5jb250YWlu
cyhFeGFtcGxlRmxhZ3M6OkEpKTsKKyAgICBFWFBFQ1RfRkFMU0Uoc2V0LmNvbnRhaW5zKEV4YW1w
bGVGbGFnczo6QikpOworICAgIEVYUEVDVF9GQUxTRShzZXQuY29udGFpbnMoRXhhbXBsZUZsYWdz
OjpDKSk7Cit9CisKK1RFU1QoV1RGX09wdGlvblNldCwgQ29udGFpbnNUd29GbGFncykKK3sKKyAg
ICBPcHRpb25TZXQ8RXhhbXBsZUZsYWdzPiBzZXQgeyBFeGFtcGxlRmxhZ3M6OkEsIEV4YW1wbGVG
bGFnczo6QiB9OworICAgIEVYUEVDVF9UUlVFKHNldC5jb250YWlucyhFeGFtcGxlRmxhZ3M6OkEp
KTsKKyAgICBFWFBFQ1RfVFJVRShzZXQuY29udGFpbnMoRXhhbXBsZUZsYWdzOjpCKSk7CisgICAg
RVhQRUNUX0ZBTFNFKHNldC5jb250YWlucyhFeGFtcGxlRmxhZ3M6OkMpKTsKK30KKworVEVTVChX
VEZfT3B0aW9uU2V0LCBPcGVyYXRvckJpdHdpc2VPcikKK3sKKyAgICBPcHRpb25TZXQ8RXhhbXBs
ZUZsYWdzPiBzZXQgPSBFeGFtcGxlRmxhZ3M6OkE7CisgICAgc2V0IHw9IEV4YW1wbGVGbGFnczo6
QzsKKyAgICBFWFBFQ1RfVFJVRShzZXQuY29udGFpbnMoRXhhbXBsZUZsYWdzOjpBKSk7CisgICAg
RVhQRUNUX0ZBTFNFKHNldC5jb250YWlucyhFeGFtcGxlRmxhZ3M6OkIpKTsKKyAgICBFWFBFQ1Rf
VFJVRShzZXQuY29udGFpbnMoRXhhbXBsZUZsYWdzOjpDKSk7Cit9CisKK1RFU1QoV1RGX09wdGlv
blNldCwgRW1wdHlPcHRpb25TZXRUb1Jhd1ZhbHVlVG9PcHRpb25TZXQpCit7CisgICAgT3B0aW9u
U2V0PEV4YW1wbGVGbGFncz4gc2V0OworICAgIEVYUEVDVF9GQUxTRShzZXQuY29udGFpbnMoRXhh
bXBsZUZsYWdzOjpBKSk7CisgICAgRVhQRUNUX0ZBTFNFKHNldC5jb250YWlucyhFeGFtcGxlRmxh
Z3M6OkIpKTsKKyAgICBFWFBFQ1RfRkFMU0Uoc2V0LmNvbnRhaW5zKEV4YW1wbGVGbGFnczo6Qykp
OworCisgICAgYXV0byBzZXQyID0gT3B0aW9uU2V0PEV4YW1wbGVGbGFncz46OmZyb21SYXcoc2V0
LnRvUmF3KCkpOworICAgIEVYUEVDVF9GQUxTRShzZXQyLmNvbnRhaW5zKEV4YW1wbGVGbGFnczo6
QSkpOworICAgIEVYUEVDVF9GQUxTRShzZXQyLmNvbnRhaW5zKEV4YW1wbGVGbGFnczo6QikpOwor
ICAgIEVYUEVDVF9GQUxTRShzZXQyLmNvbnRhaW5zKEV4YW1wbGVGbGFnczo6QykpOworfQorCitU
RVNUKFdURl9PcHRpb25TZXQsIE9wdGlvblNldFRoYXRDb250YWluc09uZUZsYWdUb1Jhd1ZhbHVl
VG9PcHRpb25TZXQpCit7CisgICAgT3B0aW9uU2V0PEV4YW1wbGVGbGFncz4gc2V0ID0gRXhhbXBs
ZUZsYWdzOjpBOworICAgIEVYUEVDVF9UUlVFKHNldC5jb250YWlucyhFeGFtcGxlRmxhZ3M6OkEp
KTsKKyAgICBFWFBFQ1RfRkFMU0Uoc2V0LmNvbnRhaW5zKEV4YW1wbGVGbGFnczo6QikpOworICAg
IEVYUEVDVF9GQUxTRShzZXQuY29udGFpbnMoRXhhbXBsZUZsYWdzOjpDKSk7CisKKyAgICBhdXRv
IHNldDIgPSBPcHRpb25TZXQ8RXhhbXBsZUZsYWdzPjo6ZnJvbVJhdyhzZXQudG9SYXcoKSk7Cisg
ICAgRVhQRUNUX1RSVUUoc2V0Mi5jb250YWlucyhFeGFtcGxlRmxhZ3M6OkEpKTsKKyAgICBFWFBF
Q1RfRkFMU0Uoc2V0Mi5jb250YWlucyhFeGFtcGxlRmxhZ3M6OkIpKTsKKyAgICBFWFBFQ1RfRkFM
U0Uoc2V0Mi5jb250YWlucyhFeGFtcGxlRmxhZ3M6OkMpKTsKK30KKworVEVTVChXVEZfT3B0aW9u
U2V0LCBPcHRpb25TZXRUaGF0Q29udGFpbnNUd29GbGFnc1RvUmF3VmFsdWVUb09wdGlvblNldCkK
K3sKKyAgICBPcHRpb25TZXQ8RXhhbXBsZUZsYWdzPiBzZXQgeyBFeGFtcGxlRmxhZ3M6OkEsIEV4
YW1wbGVGbGFnczo6QyB9OworICAgIEVYUEVDVF9UUlVFKHNldC5jb250YWlucyhFeGFtcGxlRmxh
Z3M6OkEpKTsKKyAgICBFWFBFQ1RfVFJVRShzZXQuY29udGFpbnMoRXhhbXBsZUZsYWdzOjpDKSk7
CisgICAgRVhQRUNUX0ZBTFNFKHNldC5jb250YWlucyhFeGFtcGxlRmxhZ3M6OkIpKTsKKworICAg
IGF1dG8gc2V0MiA9IE9wdGlvblNldDxFeGFtcGxlRmxhZ3M+Ojpmcm9tUmF3KHNldC50b1Jhdygp
KTsKKyAgICBFWFBFQ1RfVFJVRShzZXQyLmNvbnRhaW5zKEV4YW1wbGVGbGFnczo6QSkpOworICAg
IEVYUEVDVF9UUlVFKHNldDIuY29udGFpbnMoRXhhbXBsZUZsYWdzOjpDKSk7CisgICAgRVhQRUNU
X0ZBTFNFKHNldDIuY29udGFpbnMoRXhhbXBsZUZsYWdzOjpCKSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkK
</data>
<flag name="review"
          id="297469"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>