<?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>188820</bug_id>
          
          <creation_ts>2018-08-21 15:07:55 -0700</creation_ts>
          <short_desc>Remove extern variable and simplify state initialization in TextCheckerMac.mm</short_desc>
          <delta_ts>2018-08-27 10:10:17 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>macOS 10.13</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="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1452324</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-08-21 15:07:55 -0700</bug_when>
    <thetext>Currently TextCheckerMac.mm stores the TextCheckerState object in a file-local variables that has external linkage. This is unnecessary. Moreover we need to do a dance with other static variables to initialize this external variable exactly once per process. We should use a static file-local, non-member function and NeverDestroyed to simplify this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452331</commentid>
    <comment_count>1</comment_count>
      <attachid>347707</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-08-21 15:12:02 -0700</bug_when>
    <thetext>Created attachment 347707
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453947</commentid>
    <comment_count>2</comment_count>
      <attachid>347707</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-08-27 10:09:25 -0700</bug_when>
    <thetext>Comment on attachment 347707
Patch

Clearing flags on attachment: 347707

Committed r235379: &lt;https://trac.webkit.org/changeset/235379&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453948</commentid>
    <comment_count>3</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-08-27 10:09:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453949</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-27 10:10:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/43758177&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347707</attachid>
            <date>2018-08-21 15:12:02 -0700</date>
            <delta_ts>2018-08-27 10:09:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188820-20180821151202.patch</filename>
            <type>text/plain</type>
            <size>13990</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0ODQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE4YzUyNWMwNGNmZGFlOTUz
ZDFmZmNlNmRhNjU4N2EyMWNjY2FiZTYuLjU0MTgzNDU3ZjFkMjcyMDAwM2E4YjljNmNlNmNkYTM2
ZjA2OTY4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTgtMDgtMjEgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBleHRlcm4gdmFyaWFi
bGUgYW5kIHNpbXBsaWZ5IHN0YXRlIGluaXRpYWxpemF0aW9uIGluIFRleHRDaGVja2VyTWFjLm1t
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg4MjAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgdGhl
IHNhbWUgYXBwcm9hY2ggdG8gaW5pdGlhbGl6aW5nIHRoZSBUZXh0Q2hlY2tlclN0YXRlIGluIFRl
eHRDaGVja2VyTWFjLm1tIGFzIHdlIGRpZCBpbgorICAgICAgICBUZXh0Q2hlY2tlcklPUy5tbS4g
TWFrZSB1c2Ugb2YgYSBzdGF0aWMsIG5vbi1tZW1iZXIsIGZpbGUtbG9jYWwgZnVuY3Rpb24gYW5k
IE5ldmVyRGVzdHJveWVkCisgICAgICAgIHRvIGluaXRpYWxpemUgYSBUZXh0Q2hlY2tlclN0YXRl
IG9iamVjdCBvbmNlIGFuZCBwcm92aWRlIGFjY2VzcyB0byBpdCBmcm9tIG90aGVyIGltcGxlbWVu
dGF0aW9uCisgICAgICAgIGZ1bmN0aW9ucy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVGV4
dENoZWNrZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6Om11dGFibGVTdGF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OlRleHRDaGVja2VyOjpzdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVj
a2VyOjpzZXRUZXN0aW5nTW9kZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjpzZXRD
b250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hl
Y2tlcjo6c2V0R3JhbW1hckNoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OlRleHRD
aGVja2VyOjpzZXRBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkKToKKyAgICAgICAg
KFdlYktpdDo6VGV4dENoZWNrZXI6OnNldEF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxl
ZCk6CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjpzZXRBdXRvbWF0aWNEYXNoU3Vic3Rp
dHV0aW9uRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjpzZXRBdXRvbWF0
aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjpz
ZXRBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6VGV4
dENoZWNrZXI6OmRpZENoYW5nZUF1dG9tYXRpY1RleHRSZXBsYWNlbWVudEVuYWJsZWQpOgorICAg
ICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlcjo6ZGlkQ2hhbmdlQXV0b21hdGljU3BlbGxpbmdDb3Jy
ZWN0aW9uRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjpkaWRDaGFuZ2VB
dXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpUZXh0
Q2hlY2tlcjo6ZGlkQ2hhbmdlQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJsZWQpOgorICAg
ICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlcjo6Y29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
U3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXI6OmdyYW1tYXJDaGVj
a2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0Ojppbml0aWFsaXplU3Rh
dGUpOiBEZWxldGVkLgorCiAyMDE4LTA4LTIxICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxl
LmNvbT4KIAogICAgICAgICBDbGVhbnVwOiBSZW1vdmUgdW51c2VkIGZpbGUtbG9jYWwgc3RhdGlj
IHZhcmlhYmxlIGZyb20gVGV4dENoZWNrZXJJT1MubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9UZXh0Q2hlY2tlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9UZXh0Q2hlY2tlck1hYy5tbQppbmRleCAyZjdiNDc3NGNlODAxM2UxYTgyODkyYzI5
ZTg2N2VlMWFjMGZhM2RjLi40YzBhNGQ0NThmNjAwMGQyZDlkNzEwNjhlMmU3Y2IyNmZkMDllMWFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGV4dENoZWNrZXJNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RleHRDaGVja2VyTWFjLm1tCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIlRleHRDaGVja2VyU3RhdGUuaCIKICNpbXBvcnQg
PFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL05TU3BlbGxD
aGVja2VyU1BJLmg+CisjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KIApAQCAtNTYs
OCArNTcsNiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKLVRleHRDaGVja2VyU3RhdGUgdGV4dENoZWNrZXJTdGF0ZTsKLQogc3RhdGljIGJvb2wgc2hv
dWxkQXV0b21hdGljVGV4dFJlcGxhY2VtZW50QmVFbmFibGVkKCkKIHsKICAgICBOU1VzZXJEZWZh
dWx0cyAqZGVmYXVsdHMgPSBbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdOwpA
QCAtOTIsMjggKzkxLDI1IEBAIHN0YXRpYyBib29sIHNob3VsZEF1dG9tYXRpY0Rhc2hTdWJzdGl0
dXRpb25CZUVuYWJsZWQoKQogICAgIHJldHVybiBbZGVmYXVsdHMgYm9vbEZvcktleTpXZWJBdXRv
bWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZF07CiB9CiAKLXN0YXRpYyB2b2lkIGluaXRpYWxp
emVTdGF0ZSgpCitzdGF0aWMgVGV4dENoZWNrZXJTdGF0ZSYgbXV0YWJsZVN0YXRlKCkKIHsKLSAg
ICBzdGF0aWMgYm9vbCBkaWRJbml0aWFsaXplU3RhdGUgPSBmYWxzZTsKLQotICAgIGlmIChkaWRJ
bml0aWFsaXplU3RhdGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIHRleHRDaGVja2VyU3RhdGUu
aXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5k
YXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OldlYkNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5h
YmxlZF0gJiYgVGV4dENoZWNrZXI6OmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdBbGxvd2VkKCk7
Ci0gICAgdGV4dENoZWNrZXJTdGF0ZS5pc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQgPSBbW05TVXNl
ckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OldlYkdyYW1tYXJDaGVj
a2luZ0VuYWJsZWRdOwotICAgIHRleHRDaGVja2VyU3RhdGUuaXNBdXRvbWF0aWNUZXh0UmVwbGFj
ZW1lbnRFbmFibGVkID0gc2hvdWxkQXV0b21hdGljVGV4dFJlcGxhY2VtZW50QmVFbmFibGVkKCk7
Ci0gICAgdGV4dENoZWNrZXJTdGF0ZS5pc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJs
ZWQgPSBzaG91bGRBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25CZUVuYWJsZWQoKTsKLSAgICB0
ZXh0Q2hlY2tlclN0YXRlLmlzQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkID0gc2hv
dWxkQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25CZUVuYWJsZWQoKTsKLSAgICB0ZXh0Q2hlY2tl
clN0YXRlLmlzQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJsZWQgPSBzaG91bGRBdXRvbWF0
aWNEYXNoU3Vic3RpdHV0aW9uQmVFbmFibGVkKCk7Ci0gICAgdGV4dENoZWNrZXJTdGF0ZS5pc0F1
dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVz
ZXJEZWZhdWx0c10gYm9vbEZvcktleTpXZWJBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZF07
Ci0KLSAgICBkaWRJbml0aWFsaXplU3RhdGUgPSB0cnVlOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxUZXh0Q2hlY2tlclN0YXRlPiBzdGF0ZSA9IG1ha2VOZXZlckRlc3Ryb3llZChbXSB7Cisg
ICAgICAgIFRleHRDaGVja2VyU3RhdGUgaW5pdGlhbFN0YXRlOworICAgICAgICBpbml0aWFsU3Rh
dGUuaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQgPSBbW05TVXNlckRlZmF1bHRzIHN0
YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OldlYkNvbnRpbnVvdXNTcGVsbENoZWNraW5n
RW5hYmxlZF0gJiYgVGV4dENoZWNrZXI6OmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdBbGxvd2Vk
KCk7CisgICAgICAgIGluaXRpYWxTdGF0ZS5pc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQgPSBbW05T
VXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OldlYkdyYW1tYXJD
aGVja2luZ0VuYWJsZWRdOworICAgICAgICBpbml0aWFsU3RhdGUuaXNBdXRvbWF0aWNUZXh0UmVw
bGFjZW1lbnRFbmFibGVkID0gc2hvdWxkQXV0b21hdGljVGV4dFJlcGxhY2VtZW50QmVFbmFibGVk
KCk7CisgICAgICAgIGluaXRpYWxTdGF0ZS5pc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVu
YWJsZWQgPSBzaG91bGRBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25CZUVuYWJsZWQoKTsKKyAg
ICAgICAgaW5pdGlhbFN0YXRlLmlzQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkID0g
c2hvdWxkQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25CZUVuYWJsZWQoKTsKKyAgICAgICAgaW5p
dGlhbFN0YXRlLmlzQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJsZWQgPSBzaG91bGRBdXRv
bWF0aWNEYXNoU3Vic3RpdHV0aW9uQmVFbmFibGVkKCk7CisgICAgICAgIGluaXRpYWxTdGF0ZS5p
c0F1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFy
ZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpXZWJBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxl
ZF07CisgICAgICAgIHJldHVybiBpbml0aWFsU3RhdGU7CisgICAgfSgpKTsKKyAgICByZXR1cm4g
c3RhdGU7CiB9CiAKIGNvbnN0IFRleHRDaGVja2VyU3RhdGUmIFRleHRDaGVja2VyOjpzdGF0ZSgp
CiB7Ci0gICAgaW5pdGlhbGl6ZVN0YXRlKCk7Ci0gICAgcmV0dXJuIHRleHRDaGVja2VyU3RhdGU7
CisgICAgcmV0dXJuIG11dGFibGVTdGF0ZSgpOwogfQogICAgIAogc3RhdGljIGJvb2wgdGVzdGlu
Z01vZGVFbmFibGVkID0gZmFsc2U7CkBAIC0xMjEsMTMgKzExNywxMyBAQCBzdGF0aWMgYm9vbCB0
ZXN0aW5nTW9kZUVuYWJsZWQgPSBmYWxzZTsKIHZvaWQgVGV4dENoZWNrZXI6OnNldFRlc3RpbmdN
b2RlKGJvb2wgZW5hYmxlZCkKIHsKICAgICBpZiAoZW5hYmxlZCAmJiAhdGVzdGluZ01vZGVFbmFi
bGVkKSB7Ci0gICAgICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNl
dEJvb2w6dGV4dENoZWNrZXJTdGF0ZS5pc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCBm
b3JLZXk6V2ViQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkXTsKLSAgICAgICAgW1tOU1Vz
ZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0Qm9vbDp0ZXh0Q2hlY2tlclN0YXRl
LmlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCBmb3JLZXk6V2ViR3JhbW1hckNoZWNraW5nRW5hYmxl
ZF07Ci0gICAgICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldEJv
b2w6dGV4dENoZWNrZXJTdGF0ZS5pc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQg
Zm9yS2V5OldlYkF1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWRdOwotICAgICAgICBb
W05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRCb29sOnRleHRDaGVja2Vy
U3RhdGUuaXNBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQgZm9yS2V5OldlYkF1dG9t
YXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZF07Ci0gICAgICAgIFtbTlNVc2VyRGVmYXVsdHMg
c3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldEJvb2w6dGV4dENoZWNrZXJTdGF0ZS5pc0F1dG9tYXRp
Y0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkIGZvcktleTpXZWJBdXRvbWF0aWNEYXNoU3Vic3RpdHV0
aW9uRW5hYmxlZF07Ci0gICAgICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVs
dHNdIHNldEJvb2w6dGV4dENoZWNrZXJTdGF0ZS5pc0F1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFi
bGVkIGZvcktleTpXZWJBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZF07Ci0gICAgICAgIFtb
TlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldEJvb2w6dGV4dENoZWNrZXJT
dGF0ZS5pc0F1dG9tYXRpY1RleHRSZXBsYWNlbWVudEVuYWJsZWQgZm9yS2V5OldlYkF1dG9tYXRp
Y1RleHRSZXBsYWNlbWVudEVuYWJsZWRdOworICAgICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5k
YXJkVXNlckRlZmF1bHRzXSBzZXRCb29sOm11dGFibGVTdGF0ZSgpLmlzQ29udGludW91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkIGZvcktleTpXZWJDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWRd
OworICAgICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRCb29s
Om11dGFibGVTdGF0ZSgpLmlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCBmb3JLZXk6V2ViR3JhbW1h
ckNoZWNraW5nRW5hYmxlZF07CisgICAgICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2Vy
RGVmYXVsdHNdIHNldEJvb2w6bXV0YWJsZVN0YXRlKCkuaXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJl
Y3Rpb25FbmFibGVkIGZvcktleTpXZWJBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVk
XTsKKyAgICAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0Qm9v
bDptdXRhYmxlU3RhdGUoKS5pc0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCBmb3JL
ZXk6V2ViQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkXTsKKyAgICAgICAgW1tOU1Vz
ZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0Qm9vbDptdXRhYmxlU3RhdGUoKS5p
c0F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkIGZvcktleTpXZWJBdXRvbWF0aWNEYXNo
U3Vic3RpdHV0aW9uRW5hYmxlZF07CisgICAgICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRV
c2VyRGVmYXVsdHNdIHNldEJvb2w6bXV0YWJsZVN0YXRlKCkuaXNBdXRvbWF0aWNMaW5rRGV0ZWN0
aW9uRW5hYmxlZCBmb3JLZXk6V2ViQXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWRdOworICAg
ICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRCb29sOm11dGFi
bGVTdGF0ZSgpLmlzQXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZCBmb3JLZXk6V2ViQXV0
b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZF07CiAgICAgICAgIFtbTlNVc2VyRGVmYXVsdHMg
c3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldEJvb2w6aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
KSBmb3JLZXk6V2ViU21hcnRJbnNlcnREZWxldGVFbmFibGVkXTsKICAgICB9CiAgICAgdGVzdGlu
Z01vZGVFbmFibGVkID0gZW5hYmxlZDsKQEAgLTE1OCw3ICsxNTQsNyBAQCB2b2lkIFRleHRDaGVj
a2VyOjpzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCBpc0NvbnRpbnVvdXNT
cGVsbENoZWNraQogICAgIGlmIChzdGF0ZSgpLmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFi
bGVkID09IGlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKQogICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgIHRleHRDaGVja2VyU3RhdGUuaXND
b250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQgPSBpc0NvbnRpbnVvdXNTcGVsbENoZWNraW5n
RW5hYmxlZDsKKyAgICBtdXRhYmxlU3RhdGUoKS5pc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5h
YmxlZCA9IGlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOwogICAgIGlmICghdGVzdGlu
Z01vZGVFbmFibGVkKQogICAgICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1
bHRzXSBzZXRCb29sOmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkIGZvcktleTpXZWJD
b250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWRdOwogCkBAIC0xNzAsNyArMTY2LDcgQEAgdm9p
ZCBUZXh0Q2hlY2tlcjo6c2V0R3JhbW1hckNoZWNraW5nRW5hYmxlZChib29sIGlzR3JhbW1hckNo
ZWNraW5nRW5hYmxlZCkKICAgICBpZiAoc3RhdGUoKS5pc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQg
PT0gaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKQogICAgICAgICByZXR1cm47CiAKLSAgICB0ZXh0
Q2hlY2tlclN0YXRlLmlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCA9IGlzR3JhbW1hckNoZWNraW5n
RW5hYmxlZDsKKyAgICBtdXRhYmxlU3RhdGUoKS5pc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQgPSBp
c0dyYW1tYXJDaGVja2luZ0VuYWJsZWQ7CiAgICAgaWYgKCF0ZXN0aW5nTW9kZUVuYWJsZWQpCiAg
ICAgICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldEJvb2w6aXNH
cmFtbWFyQ2hlY2tpbmdFbmFibGVkIGZvcktleTpXZWJHcmFtbWFyQ2hlY2tpbmdFbmFibGVkXTsK
ICAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gdXBkYXRlUGFuZWxzXTsK
QEAgLTE4NCw3ICsxODAsNyBAQCB2b2lkIFRleHRDaGVja2VyOjpzZXRBdXRvbWF0aWNTcGVsbGlu
Z0NvcnJlY3Rpb25FbmFibGVkKGJvb2wgaXNBdXRvbWF0aWNTcGVsbGluZwogICAgIGlmIChzdGF0
ZSgpLmlzQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCA9PSBpc0F1dG9tYXRpY1Nw
ZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIHRleHRDaGVj
a2VyU3RhdGUuaXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkID0gaXNBdXRvbWF0
aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkOworICAgIG11dGFibGVTdGF0ZSgpLmlzQXV0b21h
dGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZCA9IGlzQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0
aW9uRW5hYmxlZDsKICAgICBpZiAoIXRlc3RpbmdNb2RlRW5hYmxlZCkKICAgICAgICAgW1tOU1Vz
ZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0Qm9vbDppc0F1dG9tYXRpY1NwZWxs
aW5nQ29ycmVjdGlvbkVuYWJsZWQgZm9yS2V5OldlYkF1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlv
bkVuYWJsZWRdOwogCkBAIC0xOTYsNyArMTkyLDcgQEAgdm9pZCBUZXh0Q2hlY2tlcjo6c2V0QXV0
b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkKGJvb2wgaXNBdXRvbWF0aWNRdW90ZVN1YnMK
ICAgICBpZiAoc3RhdGUoKS5pc0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCA9PSBp
c0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgdGV4dENoZWNrZXJTdGF0ZS5pc0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCA9
IGlzQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkOworICAgIG11dGFibGVTdGF0ZSgp
LmlzQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkID0gaXNBdXRvbWF0aWNRdW90ZVN1
YnN0aXR1dGlvbkVuYWJsZWQ7CiAgICAgaWYgKCF0ZXN0aW5nTW9kZUVuYWJsZWQpCiAgICAgICAg
IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldEJvb2w6aXNBdXRvbWF0
aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQgZm9yS2V5OldlYkF1dG9tYXRpY1F1b3RlU3Vic3Rp
dHV0aW9uRW5hYmxlZF07CiAgICAgCkBAIC0yMDgsNyArMjA0LDcgQEAgdm9pZCBUZXh0Q2hlY2tl
cjo6c2V0QXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJsZWQoYm9vbCBpc0F1dG9tYXRpY0Rh
c2hTdWJzdGkKICAgICBpZiAoc3RhdGUoKS5pc0F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFi
bGVkID09IGlzQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJsZWQpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIHRleHRDaGVja2VyU3RhdGUuaXNBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5h
YmxlZCA9IGlzQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJsZWQ7CisgICAgbXV0YWJsZVN0
YXRlKCkuaXNBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCA9IGlzQXV0b21hdGljRGFz
aFN1YnN0aXR1dGlvbkVuYWJsZWQ7CiAgICAgaWYgKCF0ZXN0aW5nTW9kZUVuYWJsZWQpCiAgICAg
ICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldEJvb2w6aXNBdXRv
bWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCBmb3JLZXk6V2ViQXV0b21hdGljRGFzaFN1YnN0
aXR1dGlvbkVuYWJsZWRdOwogCkBAIC0yMjAsNyArMjE2LDcgQEAgdm9pZCBUZXh0Q2hlY2tlcjo6
c2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQoYm9vbCBpc0F1dG9tYXRpY0xpbmtEZXRl
Y3Rpb24KICAgICBpZiAoc3RhdGUoKS5pc0F1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkID09
IGlzQXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQpCiAgICAgICAgIHJldHVybjsKICAgICAK
LSAgICB0ZXh0Q2hlY2tlclN0YXRlLmlzQXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQgPSBp
c0F1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkOworICAgIG11dGFibGVTdGF0ZSgpLmlzQXV0
b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQgPSBpc0F1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFi
bGVkOwogICAgIGlmICghdGVzdGluZ01vZGVFbmFibGVkKQogICAgICAgICBbW05TVXNlckRlZmF1
bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRCb29sOmlzQXV0b21hdGljTGlua0RldGVjdGlv
bkVuYWJsZWQgZm9yS2V5OldlYkF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkXTsKICAgICAK
QEAgLTIzMiw3ICsyMjgsNyBAQCB2b2lkIFRleHRDaGVja2VyOjpzZXRBdXRvbWF0aWNUZXh0UmVw
bGFjZW1lbnRFbmFibGVkKGJvb2wgaXNBdXRvbWF0aWNUZXh0UmVwbGFjZQogICAgIGlmIChzdGF0
ZSgpLmlzQXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZCA9PSBpc0F1dG9tYXRpY1RleHRS
ZXBsYWNlbWVudEVuYWJsZWQpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICB0ZXh0Q2hlY2tl
clN0YXRlLmlzQXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZCA9IGlzQXV0b21hdGljVGV4
dFJlcGxhY2VtZW50RW5hYmxlZDsKKyAgICBtdXRhYmxlU3RhdGUoKS5pc0F1dG9tYXRpY1RleHRS
ZXBsYWNlbWVudEVuYWJsZWQgPSBpc0F1dG9tYXRpY1RleHRSZXBsYWNlbWVudEVuYWJsZWQ7CiAg
ICAgaWYgKCF0ZXN0aW5nTW9kZUVuYWJsZWQpCiAgICAgICAgIFtbTlNVc2VyRGVmYXVsdHMgc3Rh
bmRhcmRVc2VyRGVmYXVsdHNdIHNldEJvb2w6aXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFi
bGVkIGZvcktleTpXZWJBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkXTsKIApAQCAtMjY3
LDI1ICsyNjMsMjUgQEAgdm9pZCBUZXh0Q2hlY2tlcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKGJvb2wgZmxhZykKIAogdm9pZCBUZXh0Q2hlY2tlcjo6ZGlkQ2hhbmdlQXV0b21hdGljVGV4
dFJlcGxhY2VtZW50RW5hYmxlZCgpCiB7Ci0gICAgdGV4dENoZWNrZXJTdGF0ZS5pc0F1dG9tYXRp
Y1RleHRSZXBsYWNlbWVudEVuYWJsZWQgPSBzaG91bGRBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRC
ZUVuYWJsZWQoKTsKKyAgICBtdXRhYmxlU3RhdGUoKS5pc0F1dG9tYXRpY1RleHRSZXBsYWNlbWVu
dEVuYWJsZWQgPSBzaG91bGRBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRCZUVuYWJsZWQoKTsKICAg
ICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gdXBkYXRlUGFuZWxzXTsKIH0K
IAogdm9pZCBUZXh0Q2hlY2tlcjo6ZGlkQ2hhbmdlQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9u
RW5hYmxlZCgpCiB7Ci0gICAgdGV4dENoZWNrZXJTdGF0ZS5pc0F1dG9tYXRpY1NwZWxsaW5nQ29y
cmVjdGlvbkVuYWJsZWQgPSBzaG91bGRBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25CZUVuYWJs
ZWQoKTsKKyAgICBtdXRhYmxlU3RhdGUoKS5pc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVu
YWJsZWQgPSBzaG91bGRBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25CZUVuYWJsZWQoKTsKICAg
ICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gdXBkYXRlUGFuZWxzXTsKIH0K
IAogdm9pZCBUZXh0Q2hlY2tlcjo6ZGlkQ2hhbmdlQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25F
bmFibGVkKCkKIHsKLSAgICB0ZXh0Q2hlY2tlclN0YXRlLmlzQXV0b21hdGljUXVvdGVTdWJzdGl0
dXRpb25FbmFibGVkID0gc2hvdWxkQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25CZUVuYWJsZWQo
KTsKKyAgICBtdXRhYmxlU3RhdGUoKS5pc0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxl
ZCA9IHNob3VsZEF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uQmVFbmFibGVkKCk7CiAgICAgW1tO
U1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHVwZGF0ZVBhbmVsc107CiB9CiAKIHZv
aWQgVGV4dENoZWNrZXI6OmRpZENoYW5nZUF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVk
KCkKIHsKLSAgICB0ZXh0Q2hlY2tlclN0YXRlLmlzQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVu
YWJsZWQgPSBzaG91bGRBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uQmVFbmFibGVkKCk7CisgICAg
bXV0YWJsZVN0YXRlKCkuaXNBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCA9IHNob3Vs
ZEF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25CZUVuYWJsZWQoKTsKICAgICBbW05TU3BlbGxDaGVj
a2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gdXBkYXRlUGFuZWxzXTsKIH0KIApAQCAtMzA2LDEyICsz
MDIsMTIgQEAgdm9pZCBUZXh0Q2hlY2tlcjo6dG9nZ2xlU3Vic3RpdHV0aW9uc1BhbmVsSXNTaG93
aW5nKCkKIAogdm9pZCBUZXh0Q2hlY2tlcjo6Y29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
U3RhdGVDaGFuZ2VkKGJvb2wgZW5hYmxlZCkKIHsKLSAgICB0ZXh0Q2hlY2tlclN0YXRlLmlzQ29u
dGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkID0gZW5hYmxlZDsKKyAgICBtdXRhYmxlU3RhdGUo
KS5pc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCA9IGVuYWJsZWQ7CiB9CiAKIHZvaWQg
VGV4dENoZWNrZXI6OmdyYW1tYXJDaGVja2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQoYm9vbCBlbmFi
bGVkKQogewotICAgIHRleHRDaGVja2VyU3RhdGUuaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkID0g
ZW5hYmxlZDsKKyAgICBtdXRhYmxlU3RhdGUoKS5pc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQgPSBl
bmFibGVkOwogfQogCiBTcGVsbERvY3VtZW50VGFnIFRleHRDaGVja2VyOjp1bmlxdWVTcGVsbERv
Y3VtZW50VGFnKFdlYlBhZ2VQcm94eSopCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>