<?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>172844</bug_id>
          
          <creation_ts>2017-06-01 17:39:22 -0700</creation_ts>
          <short_desc>Atomics.load and Atomics.store need to be fully fenced</short_desc>
          <delta_ts>2017-06-02 10:59:52 -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>JavaScriptCore</component>
          <version>WebKit Nightly 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1314908</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-06-01 17:39:22 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314909</commentid>
    <comment_count>1</comment_count>
      <attachid>311787</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-06-01 17:39:48 -0700</bug_when>
    <thetext>Created attachment 311787
this might be right</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314910</commentid>
    <comment_count>2</comment_count>
      <attachid>311788</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-06-01 17:40:19 -0700</bug_when>
    <thetext>Created attachment 311788
this might be right

forgot WTF</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314951</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-06-01 21:13:49 -0700</bug_when>
    <thetext>Attachment 311788 did not pass style-queue:


ERROR: Source/JavaScriptCore/ftl/FTLOutput.h:380:  The parameter name &quot;pointer&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315068</commentid>
    <comment_count>4</comment_count>
      <attachid>311830</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-06-02 09:40:17 -0700</bug_when>
    <thetext>Created attachment 311830
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315069</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-06-02 09:40:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/32537063&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315070</commentid>
    <comment_count>6</comment_count>
      <attachid>311831</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-06-02 09:41:37 -0700</bug_when>
    <thetext>Created attachment 311831
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315072</commentid>
    <comment_count>7</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-06-02 09:43:05 -0700</bug_when>
    <thetext>Attachment 311831 did not pass style-queue:


ERROR: Source/JavaScriptCore/ftl/FTLOutput.h:380:  The parameter name &quot;pointer&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315083</commentid>
    <comment_count>8</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-06-02 10:02:02 -0700</bug_when>
    <thetext>Looks like the debug EWS sadness is unrelated to this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315115</commentid>
    <comment_count>9</comment_count>
      <attachid>311831</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-06-02 10:51:03 -0700</bug_when>
    <thetext>Comment on attachment 311831
the patch

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

r=me.

&gt; Source/JavaScriptCore/ftl/FTLOutput.h:380
&gt; +    LValue atomicWeakCAS(LValue expected, LValue newValue, TypedPointer pointer, B3::Width);

Do you use this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315120</commentid>
    <comment_count>10</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-06-02 10:59:45 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #9)
&gt; Comment on attachment 311831 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=311831&amp;action=review
&gt; 
&gt; r=me.
&gt; 
&gt; &gt; Source/JavaScriptCore/ftl/FTLOutput.h:380
&gt; &gt; +    LValue atomicWeakCAS(LValue expected, LValue newValue, TypedPointer pointer, B3::Width);
&gt; 
&gt; Do you use this?

Nope! Removed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315121</commentid>
    <comment_count>11</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-06-02 10:59:52 -0700</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/217722/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311787</attachid>
            <date>2017-06-01 17:39:48 -0700</date>
            <delta_ts>2017-06-01 17:40:19 -0700</delta_ts>
            <desc>this might be right</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>4666</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJ
KHJldmlzaW9uIDIxNzY4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJE
RkdUb0IzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAyNywxNyArMzAyNywzOCBAQCBwcml2YXRl
OgogICAgICAgICAgICAgcmVzdWx0ID0gc2FuaXRpemVSZXN1bHQoYXRvbWljVmFsdWUpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXRvbWljc0xvYWQ6Ci0gICAgICAgICAgICBh
dG9taWNWYWx1ZSA9IGxvYWRGcm9tSW50VHlwZWRBcnJheShwb2ludGVyLCB0eXBlKTsKKyAgICAg
ICAgICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBlbWl0IGJldHRlciBjb2RlIGlmIEIzIGtuZXcgYWJv
dXQgdGhpcyBraW5kIG9mIGF0b21pYyBsb2FkLiBGb3Igbm93LAorICAgICAgICAgICAgLy8gdGhp
cyBpcyBwcm9iYWJseSBnb29kIGVub3VnaC4KKyAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI4NDMKKyAgICAgICAgICAgIC8vIE5PVEU6IFRo
aXMgaXMgY29ycmVjdCBiZWNhdXNlIEIzJ3Mgc3Ryb25nIGZlbmNlZCBDQVMgCisgICAgICAgICAg
ICBhdG9taWNWYWx1ZSA9IG1fb3V0LmF0b21pY1N0cm9uZ0NBUyhtX291dC5pbnQzMlplcm8sIG1f
b3V0LmludDMyWmVybywgcG9pbnRlciwgd2lkdGgpOwogICAgICAgICAgICAgcmVzdWx0ID0gc2Fu
aXRpemVSZXN1bHQoYXRvbWljVmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgQXRvbWljc09yOgogICAgICAgICAgICAgYXRvbWljVmFsdWUgPSBtX291dC5hdG9taWNYY2hn
T3IoYXJnc1swXSwgcG9pbnRlciwgd2lkdGgpOwogICAgICAgICAgICAgcmVzdWx0ID0gc2FuaXRp
emVSZXN1bHQoYXRvbWljVmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
QXRvbWljc1N0b3JlOgotICAgICAgICAgICAgYXRvbWljVmFsdWUgPSBtX291dC5zdG9yZShhcmdz
WzBdLCBwb2ludGVyLCBzdG9yZVR5cGUodHlwZSkpOworICAgICAgICBjYXNlIEF0b21pY3NTdG9y
ZTogeworICAgICAgICAgICAgLy8gRklYTUU6IFdlIGNvdWxkIGVtaXQgYmV0dGVyIGNvZGUgaWYg
QjMga25ldyBhYm91dCB0aGlzIGtpbmQgb2YgYXRvbWljIGxvYWQuIEZvciBub3csCisgICAgICAg
ICAgICAvLyB0aGlzIGlzIHByb2JhYmx5IGdvb2QgZW5vdWdoLgorICAgICAgICAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mjg0MworICAgICAgICAgICAg
CisgICAgICAgICAgICBMQmFzaWNCbG9jayBsb29wID0gbV9vdXQubmV3QmxvY2soKTsKKyAgICAg
ICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuaW5zZXJ0
TmV3QmxvY2tzQmVmb3JlKGxvb3ApOworICAgICAgICAgICAgCisgICAgICAgICAgICBtX291dC5q
dW1wKGxvb3ApOworICAgICAgICAgICAgCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhsb29w
LCBjb250aW51YXRpb24pOworICAgICAgICAgICAgTFZhbHVlIG9sZFZhbHVlID0gbG9hZEZyb21J
bnRUeXBlZEFycmF5KHBvaW50ZXIsIHR5cGUpOworICAgICAgICAgICAgYXRvbWljVmFsdWUgPSBt
X291dC5hdG9taWNXZWFrQ0FTKG9sZFZhbHVlLCBhcmdzWzBdLCBwb2ludGVyLCB3aWR0aCk7Cisg
ICAgICAgICAgICBtX291dC5icmFuY2goYXRvbWljVmFsdWUsIHVzdWFsbHkoY29udGludWF0aW9u
KSwgcmFyZWx5KGxvb3ApKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5k
VG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CiAgICAgICAgICAgICByZXN1bHQgPSBhcmdzWzBd
OwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBBdG9taWNzU3Vi
OgogICAgICAgICAgICAgYXRvbWljVmFsdWUgPSBtX291dC5hdG9taWNYY2hnU3ViKGFyZ3NbMF0s
IHBvaW50ZXIsIHdpZHRoKTsKICAgICAgICAgICAgIHJlc3VsdCA9IHNhbml0aXplUmVzdWx0KGF0
b21pY1ZhbHVlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5jcHAJ
KHJldmlzaW9uIDIxNzY4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjkxLDYgKzY5MSwxMyBAQCBMVmFsdWUgT3V0cHV0Ojph
dG9taWNYY2hnKExWYWx1ZSBvcGVyYW5kCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorTFZhbHVl
IE91dHB1dDo6YXRvbWljV2Vha0NBUyhMVmFsdWUgZXhwZWN0ZWQsIExWYWx1ZSBuZXdWYWx1ZSwg
VHlwZWRQb2ludGVyIHBvaW50ZXIsIFdpZHRoIHdpZHRoKQoreworICAgIExWYWx1ZSByZXN1bHQg
PSBtX2Jsb2NrLT5hcHBlbmROZXc8QXRvbWljVmFsdWU+KG1fcHJvYywgQXRvbWljV2Vha0NBUywg
b3JpZ2luKCksIHdpZHRoLCBleHBlY3RlZCwgbmV3VmFsdWUsIHBvaW50ZXIudmFsdWUoKSwgMCwg
SGVhcFJhbmdlKCksIEhlYXBSYW5nZSgpKTsKKyAgICBtX2hlYXBzLT5kZWNvcmF0ZU1lbW9yeShw
b2ludGVyLmhlYXAoKSwgcmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBMVmFsdWUg
T3V0cHV0OjphdG9taWNTdHJvbmdDQVMoTFZhbHVlIGV4cGVjdGVkLCBMVmFsdWUgbmV3VmFsdWUs
IFR5cGVkUG9pbnRlciBwb2ludGVyLCBXaWR0aCB3aWR0aCkKIHsKICAgICBMVmFsdWUgcmVzdWx0
ID0gbV9ibG9jay0+YXBwZW5kTmV3PEF0b21pY1ZhbHVlPihtX3Byb2MsIEF0b21pY1N0cm9uZ0NB
Uywgb3JpZ2luKCksIHdpZHRoLCBleHBlY3RlZCwgbmV3VmFsdWUsIHBvaW50ZXIudmFsdWUoKSwg
MCwgSGVhcFJhbmdlKCksIEhlYXBSYW5nZSgpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMT3V0cHV0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExPdXRwdXQuaAkocmV2aXNpb24gMjE3Njg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExPdXRwdXQuaAkod29ya2luZyBjb3B5KQpAQCAtMzc3LDYgKzM3Nyw3IEBAIHB1Ymxp
YzoKICAgICBMVmFsdWUgYXRvbWljWGNoZ1N1YihMVmFsdWUgb3BlcmFuZCwgVHlwZWRQb2ludGVy
IHBvaW50ZXIsIEIzOjpXaWR0aCk7CiAgICAgTFZhbHVlIGF0b21pY1hjaGdYb3IoTFZhbHVlIG9w
ZXJhbmQsIFR5cGVkUG9pbnRlciBwb2ludGVyLCBCMzo6V2lkdGgpOwogICAgIExWYWx1ZSBhdG9t
aWNYY2hnKExWYWx1ZSBvcGVyYW5kLCBUeXBlZFBvaW50ZXIgcG9pbnRlciwgQjM6OldpZHRoKTsK
KyAgICBMVmFsdWUgYXRvbWljV2Vha0NBUyhMVmFsdWUgZXhwZWN0ZWQsIExWYWx1ZSBuZXdWYWx1
ZSwgVHlwZWRQb2ludGVyIHBvaW50ZXIsIEIzOjpXaWR0aCk7CiAgICAgTFZhbHVlIGF0b21pY1N0
cm9uZ0NBUyhMVmFsdWUgZXhwZWN0ZWQsIExWYWx1ZSBuZXdWYWx1ZSwgVHlwZWRQb2ludGVyIHBv
aW50ZXIsIEIzOjpXaWR0aCk7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBlPgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5j
cHAJKHJldmlzaW9uIDIxNzY4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0F0
b21pY3NPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDIsNyArMjQyLDcgQEAgc3RydWN0
IExvYWRGdW5jIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIEpTVmFsdWUgb3BlcmF0
b3IoKShUKiBwdHIsIGNvbnN0IGRvdWJsZSopIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4g
anNOdW1iZXIoV1RGOjphdG9taWNMb2FkKHB0cikpOworICAgICAgICByZXR1cm4ganNOdW1iZXIo
V1RGOjphdG9taWNMb2FkRnVsbHlGZW5jZWQocHRyKSk7CiAgICAgfQogfTsKIApAQCAtMjY0LDcg
KzI2NCw3IEBAIHN0cnVjdCBTdG9yZUZ1bmMgewogICAgIHsKICAgICAgICAgZG91YmxlIHZhbHVl
QXNJbnQgPSBhcmdzWzBdOwogICAgICAgICBUIHZhbHVlQXNUID0gc3RhdGljX2Nhc3Q8VD4odG9J
bnQzMih2YWx1ZUFzSW50KSk7Ci0gICAgICAgIFdURjo6YXRvbWljU3RvcmUocHRyLCB2YWx1ZUFz
VCk7CisgICAgICAgIFdURjo6YXRvbWljU3RvcmVGdWxseUZlbmNlZChwdHIsIHZhbHVlQXNUKTsK
ICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKHZhbHVlQXNJbnQpOwogICAgIH0KIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311788</attachid>
            <date>2017-06-01 17:40:19 -0700</date>
            <delta_ts>2017-06-02 09:40:17 -0700</delta_ts>
            <desc>this might be right</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>7514</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJ
KHJldmlzaW9uIDIxNzY4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJE
RkdUb0IzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAyNywxNyArMzAyNywzOCBAQCBwcml2YXRl
OgogICAgICAgICAgICAgcmVzdWx0ID0gc2FuaXRpemVSZXN1bHQoYXRvbWljVmFsdWUpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXRvbWljc0xvYWQ6Ci0gICAgICAgICAgICBh
dG9taWNWYWx1ZSA9IGxvYWRGcm9tSW50VHlwZWRBcnJheShwb2ludGVyLCB0eXBlKTsKKyAgICAg
ICAgICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBlbWl0IGJldHRlciBjb2RlIGlmIEIzIGtuZXcgYWJv
dXQgdGhpcyBraW5kIG9mIGF0b21pYyBsb2FkLiBGb3Igbm93LAorICAgICAgICAgICAgLy8gdGhp
cyBpcyBwcm9iYWJseSBnb29kIGVub3VnaC4KKyAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI4NDMKKyAgICAgICAgICAgIC8vIE5PVEU6IFRo
aXMgaXMgY29ycmVjdCBiZWNhdXNlIEIzJ3Mgc3Ryb25nIGZlbmNlZCBDQVMgCisgICAgICAgICAg
ICBhdG9taWNWYWx1ZSA9IG1fb3V0LmF0b21pY1N0cm9uZ0NBUyhtX291dC5pbnQzMlplcm8sIG1f
b3V0LmludDMyWmVybywgcG9pbnRlciwgd2lkdGgpOwogICAgICAgICAgICAgcmVzdWx0ID0gc2Fu
aXRpemVSZXN1bHQoYXRvbWljVmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgQXRvbWljc09yOgogICAgICAgICAgICAgYXRvbWljVmFsdWUgPSBtX291dC5hdG9taWNYY2hn
T3IoYXJnc1swXSwgcG9pbnRlciwgd2lkdGgpOwogICAgICAgICAgICAgcmVzdWx0ID0gc2FuaXRp
emVSZXN1bHQoYXRvbWljVmFsdWUpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
QXRvbWljc1N0b3JlOgotICAgICAgICAgICAgYXRvbWljVmFsdWUgPSBtX291dC5zdG9yZShhcmdz
WzBdLCBwb2ludGVyLCBzdG9yZVR5cGUodHlwZSkpOworICAgICAgICBjYXNlIEF0b21pY3NTdG9y
ZTogeworICAgICAgICAgICAgLy8gRklYTUU6IFdlIGNvdWxkIGVtaXQgYmV0dGVyIGNvZGUgaWYg
QjMga25ldyBhYm91dCB0aGlzIGtpbmQgb2YgYXRvbWljIGxvYWQuIEZvciBub3csCisgICAgICAg
ICAgICAvLyB0aGlzIGlzIHByb2JhYmx5IGdvb2QgZW5vdWdoLgorICAgICAgICAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mjg0MworICAgICAgICAgICAg
CisgICAgICAgICAgICBMQmFzaWNCbG9jayBsb29wID0gbV9vdXQubmV3QmxvY2soKTsKKyAgICAg
ICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuaW5zZXJ0
TmV3QmxvY2tzQmVmb3JlKGxvb3ApOworICAgICAgICAgICAgCisgICAgICAgICAgICBtX291dC5q
dW1wKGxvb3ApOworICAgICAgICAgICAgCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhsb29w
LCBjb250aW51YXRpb24pOworICAgICAgICAgICAgTFZhbHVlIG9sZFZhbHVlID0gbG9hZEZyb21J
bnRUeXBlZEFycmF5KHBvaW50ZXIsIHR5cGUpOworICAgICAgICAgICAgYXRvbWljVmFsdWUgPSBt
X291dC5hdG9taWNXZWFrQ0FTKG9sZFZhbHVlLCBhcmdzWzBdLCBwb2ludGVyLCB3aWR0aCk7Cisg
ICAgICAgICAgICBtX291dC5icmFuY2goYXRvbWljVmFsdWUsIHVzdWFsbHkoY29udGludWF0aW9u
KSwgcmFyZWx5KGxvb3ApKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9vdXQuYXBwZW5k
VG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CiAgICAgICAgICAgICByZXN1bHQgPSBhcmdzWzBd
OwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBBdG9taWNzU3Vi
OgogICAgICAgICAgICAgYXRvbWljVmFsdWUgPSBtX291dC5hdG9taWNYY2hnU3ViKGFyZ3NbMF0s
IHBvaW50ZXIsIHdpZHRoKTsKICAgICAgICAgICAgIHJlc3VsdCA9IHNhbml0aXplUmVzdWx0KGF0
b21pY1ZhbHVlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5jcHAJ
KHJldmlzaW9uIDIxNzY4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjkxLDYgKzY5MSwxMyBAQCBMVmFsdWUgT3V0cHV0Ojph
dG9taWNYY2hnKExWYWx1ZSBvcGVyYW5kCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorTFZhbHVl
IE91dHB1dDo6YXRvbWljV2Vha0NBUyhMVmFsdWUgZXhwZWN0ZWQsIExWYWx1ZSBuZXdWYWx1ZSwg
VHlwZWRQb2ludGVyIHBvaW50ZXIsIFdpZHRoIHdpZHRoKQoreworICAgIExWYWx1ZSByZXN1bHQg
PSBtX2Jsb2NrLT5hcHBlbmROZXc8QXRvbWljVmFsdWU+KG1fcHJvYywgQXRvbWljV2Vha0NBUywg
b3JpZ2luKCksIHdpZHRoLCBleHBlY3RlZCwgbmV3VmFsdWUsIHBvaW50ZXIudmFsdWUoKSwgMCwg
SGVhcFJhbmdlKCksIEhlYXBSYW5nZSgpKTsKKyAgICBtX2hlYXBzLT5kZWNvcmF0ZU1lbW9yeShw
b2ludGVyLmhlYXAoKSwgcmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBMVmFsdWUg
T3V0cHV0OjphdG9taWNTdHJvbmdDQVMoTFZhbHVlIGV4cGVjdGVkLCBMVmFsdWUgbmV3VmFsdWUs
IFR5cGVkUG9pbnRlciBwb2ludGVyLCBXaWR0aCB3aWR0aCkKIHsKICAgICBMVmFsdWUgcmVzdWx0
ID0gbV9ibG9jay0+YXBwZW5kTmV3PEF0b21pY1ZhbHVlPihtX3Byb2MsIEF0b21pY1N0cm9uZ0NB
Uywgb3JpZ2luKCksIHdpZHRoLCBleHBlY3RlZCwgbmV3VmFsdWUsIHBvaW50ZXIudmFsdWUoKSwg
MCwgSGVhcFJhbmdlKCksIEhlYXBSYW5nZSgpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMT3V0cHV0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExPdXRwdXQuaAkocmV2aXNpb24gMjE3Njg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExPdXRwdXQuaAkod29ya2luZyBjb3B5KQpAQCAtMzc3LDYgKzM3Nyw3IEBAIHB1Ymxp
YzoKICAgICBMVmFsdWUgYXRvbWljWGNoZ1N1YihMVmFsdWUgb3BlcmFuZCwgVHlwZWRQb2ludGVy
IHBvaW50ZXIsIEIzOjpXaWR0aCk7CiAgICAgTFZhbHVlIGF0b21pY1hjaGdYb3IoTFZhbHVlIG9w
ZXJhbmQsIFR5cGVkUG9pbnRlciBwb2ludGVyLCBCMzo6V2lkdGgpOwogICAgIExWYWx1ZSBhdG9t
aWNYY2hnKExWYWx1ZSBvcGVyYW5kLCBUeXBlZFBvaW50ZXIgcG9pbnRlciwgQjM6OldpZHRoKTsK
KyAgICBMVmFsdWUgYXRvbWljV2Vha0NBUyhMVmFsdWUgZXhwZWN0ZWQsIExWYWx1ZSBuZXdWYWx1
ZSwgVHlwZWRQb2ludGVyIHBvaW50ZXIsIEIzOjpXaWR0aCk7CiAgICAgTFZhbHVlIGF0b21pY1N0
cm9uZ0NBUyhMVmFsdWUgZXhwZWN0ZWQsIExWYWx1ZSBuZXdWYWx1ZSwgVHlwZWRQb2ludGVyIHBv
aW50ZXIsIEIzOjpXaWR0aCk7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBlPgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5j
cHAJKHJldmlzaW9uIDIxNzY4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0F0
b21pY3NPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDIsNyArMjQyLDcgQEAgc3RydWN0
IExvYWRGdW5jIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIEpTVmFsdWUgb3BlcmF0
b3IoKShUKiBwdHIsIGNvbnN0IGRvdWJsZSopIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4g
anNOdW1iZXIoV1RGOjphdG9taWNMb2FkKHB0cikpOworICAgICAgICByZXR1cm4ganNOdW1iZXIo
V1RGOjphdG9taWNMb2FkRnVsbHlGZW5jZWQocHRyKSk7CiAgICAgfQogfTsKIApAQCAtMjY0LDcg
KzI2NCw3IEBAIHN0cnVjdCBTdG9yZUZ1bmMgewogICAgIHsKICAgICAgICAgZG91YmxlIHZhbHVl
QXNJbnQgPSBhcmdzWzBdOwogICAgICAgICBUIHZhbHVlQXNUID0gc3RhdGljX2Nhc3Q8VD4odG9J
bnQzMih2YWx1ZUFzSW50KSk7Ci0gICAgICAgIFdURjo6YXRvbWljU3RvcmUocHRyLCB2YWx1ZUFz
VCk7CisgICAgICAgIFdURjo6YXRvbWljU3RvcmVGdWxseUZlbmNlZChwdHIsIHZhbHVlQXNUKTsK
ICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKHZhbHVlQXNJbnQpOwogICAgIH0KIH07CkluZGV4OiBT
b3VyY2UvV1RGL3d0Zi9BdG9taWNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvQXRv
bWljcy5oCShyZXZpc2lvbiAyMTc2ODkpCisrKyBTb3VyY2UvV1RGL3d0Zi9BdG9taWNzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTYxLDggKzYxLDM0IEBAIHN0cnVjdCBBdG9taWMgewogICAgIEFMV0FZ
U19JTkxJTkUgVCBsb2FkKHN0ZDo6bWVtb3J5X29yZGVyIG9yZGVyID0gc3RkOjptZW1vcnlfb3Jk
ZXJfc2VxX2NzdCkgY29uc3QgeyByZXR1cm4gdmFsdWUubG9hZChvcmRlcik7IH0KICAgICAKICAg
ICBBTFdBWVNfSU5MSU5FIFQgbG9hZFJlbGF4ZWQoKSBjb25zdCB7IHJldHVybiBsb2FkKHN0ZDo6
bWVtb3J5X29yZGVyX3JlbGF4ZWQpOyB9Ci0KKyAgICAKKyAgICAvLyBUaGlzIGlzIGEgbG9hZCB0
aGF0IHNpbXVsdGFuZW91c2x5IGRvZXMgYSBmdWxsIGZlbmNlIC0gbmVpdGhlciBsb2FkcyBub3Ig
c3RvcmVzIHdpbGwgbW92ZQorICAgIC8vIGFib3ZlIG9yIGJlbG93IGl0LgorICAgIEFMV0FZU19J
TkxJTkUgVCBsb2FkRnVsbHlGZW5jZWQoKSBjb25zdAorICAgIHsKKyAgICAgICAgc3RkOjphdG9t
aWM8VD4qIHB0ciA9IGNvbnN0X2Nhc3Q8c3RkOjphdG9taWM8VD4qPigmdmFsdWUpOworICAgICAg
ICAKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgVCByZXN1bHQgPSBwdHItPmxvYWRS
ZWxheGVkKCk7CisgICAgICAgICAgICBpZiAocHRyLT5jb21wYXJlRXhjaGFuZ2VXZWFrKHJlc3Vs
dCwgcmVzdWx0KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9Cisg
ICAgfQorICAgIAogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzdG9yZShUIGRlc2lyZWQsIHN0ZDo6
bWVtb3J5X29yZGVyIG9yZGVyID0gc3RkOjptZW1vcnlfb3JkZXJfc2VxX2NzdCkgeyB2YWx1ZS5z
dG9yZShkZXNpcmVkLCBvcmRlcik7IH0KKyAgICAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc3Rv
cmVSZWxheGVkKFQgZGVzaXJlZCkgeyBzdG9yZShkZXNpcmVkLCBzdGQ6Om1lbW9yeV9vcmRlcl9y
ZWxheGVkKTsgfQorCisgICAgLy8gVGhpcyBpcyBhIHN0b3JlIHRoYXQgc2ltdWx0YW5lb3VzbHkg
ZG9lcyBhIGZ1bGwgZmVuY2UgLSBuZWl0aGVyIGxvYWRzIG5vciBzdG9yZXMgd2lsbCBtb3ZlCisg
ICAgLy8gYWJvdmUgb3IgYmVsb3cgaXQuCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHN0b3JlRnVs
bHlGZW5jZWQoVCBkZXNpcmVkKQorICAgIHsKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAg
ICAgVCBwcmV2aW91cyA9IGxvYWRSZWxheGVkKCk7CisgICAgICAgICAgICBpZiAoY29tcGFyZUV4
Y2hhbmdlV2VhayhwcmV2aW91cywgZGVzaXJlZCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgfQogCiAgICAgQUxXQVlTX0lOTElORSBib29sIGNvbXBhcmVFeGNoYW5n
ZVdlYWsoVCBleHBlY3RlZCwgVCBkZXNpcmVkLCBzdGQ6Om1lbW9yeV9vcmRlciBvcmRlciA9IHN0
ZDo6bWVtb3J5X29yZGVyX3NlcV9jc3QpCiAgICAgewpAQCAtODEsNiArMTA3LDggQEAgc3RydWN0
IEF0b21pYyB7CiAgICAgICAgIHJldHVybiB2YWx1ZS5jb21wYXJlX2V4Y2hhbmdlX3dlYWsoZXhw
ZWN0ZWRPckFjdHVhbCwgZGVzaXJlZCwgb3JkZXJfc3VjY2Vzcywgb3JkZXJfZmFpbHVyZSk7CiAg
ICAgfQogCisgICAgLy8gV0FSTklORzogVGhpcyBkb2VzIG5vdCBoYXZlIHN0cm9uZyBmZW5jaW5n
IGd1YXJhbnRlZXMgd2hlbiBpdCBmYWlscy4gRm9yIGV4YW1wbGUsIHN0b3JlcyBjb3VsZAorICAg
IC8vIHNpbmsgYmVsb3cgaXQgaW4gdGhhdCBjYXNlLgogICAgIEFMV0FZU19JTkxJTkUgVCBjb21w
YXJlRXhjaGFuZ2VTdHJvbmcoVCBleHBlY3RlZCwgVCBkZXNpcmVkLCBzdGQ6Om1lbW9yeV9vcmRl
ciBvcmRlciA9IHN0ZDo6bWVtb3J5X29yZGVyX3NlcV9jc3QpCiAgICAgewogICAgICAgICBUIGV4
cGVjdGVkT3JBY3R1YWwgPSBleHBlY3RlZDsKQEAgLTE0NywxMiArMTc1LDI0IEBAIGlubGluZSBU
IGF0b21pY0xvYWQoVCogbG9jYXRpb24sIHN0ZDo6bWUKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUg
VD4KK2lubGluZSBUIGF0b21pY0xvYWRGdWxseUZlbmNlZChUKiBsb2NhdGlvbikKK3sKKyAgICBy
ZXR1cm4gYml0d2lzZV9jYXN0PEF0b21pYzxUPio+KGxvY2F0aW9uKS0+bG9hZEZ1bGx5RmVuY2Vk
KCk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CiBpbmxpbmUgdm9pZCBhdG9taWNTdG9yZShU
KiBsb2NhdGlvbiwgVCBuZXdWYWx1ZSwgc3RkOjptZW1vcnlfb3JkZXIgb3JkZXIgPSBzdGQ6Om1l
bW9yeV9vcmRlcl9zZXFfY3N0KQogewogICAgIGJpdHdpc2VfY2FzdDxBdG9taWM8VD4qPihsb2Nh
dGlvbiktPnN0b3JlKG5ld1ZhbHVlLCBvcmRlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
CitpbmxpbmUgdm9pZCBhdG9taWNTdG9yZUZ1bGx5RmVuY2VkKFQqIGxvY2F0aW9uLCBUIG5ld1Zh
bHVlKQoreworICAgIGJpdHdpc2VfY2FzdDxBdG9taWM8VD4qPihsb2NhdGlvbiktPnN0b3JlRnVs
bHlGZW5jZWQobmV3VmFsdWUpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogaW5saW5lIGJv
b2wgYXRvbWljQ29tcGFyZUV4Y2hhbmdlV2VhayhUKiBsb2NhdGlvbiwgVCBleHBlY3RlZCwgVCBu
ZXdWYWx1ZSwgc3RkOjptZW1vcnlfb3JkZXIgb3JkZXIgPSBzdGQ6Om1lbW9yeV9vcmRlcl9zZXFf
Y3N0KQogewogICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8QXRvbWljPFQ+Kj4obG9jYXRpb24pLT5j
b21wYXJlRXhjaGFuZ2VXZWFrKGV4cGVjdGVkLCBuZXdWYWx1ZSwgb3JkZXIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311830</attachid>
            <date>2017-06-02 09:40:17 -0700</date>
            <delta_ts>2017-06-02 09:41:37 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>9901</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjE3NzE4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBA
CisyMDE3LTA2LTAyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QXRvbWljcy5sb2FkIGFuZCBBdG9taWNzLnN0b3JlIG5lZWQgdG8gYmUgZnVsbHkgZmVuY2VkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI4NDQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIElt
cGxlbWVudCBmdWxseSBmZW5jZWQgbG9hZHMgYW5kIHN0b3JlcyBpbiBGVEwgdXNpbmcgQXRvbWlj
WGNoZ0FkZCgwLCBwdHIpIGZvciB0aGUgbG9hZCBhbmQKKyAgICAgICAgQXRvbWljWGNoZyh2YWx1
ZSwgcHRyKSBmb3IgdGhlIHN0b3JlLgorICAgICAgICAKKyAgICAgICAgREZHIG5lZWRlZCBubyBj
aGFuZ2VzIGJlY2F1c2UgaXQgaW1wbGVtZW50cyBhbGwgYXRvbWljcyB1c2luZyBhIENBUyBsb29w
LgorICAgICAgICAKKyAgICAgICAgQXRvbWljc09iamVjdC5jcHAgbm93IHVzZXMgbmV3IEF0b21p
Yzw+IEFQSSBmb3IgZnVsbHkgZmVuY2VzIGxvYWRzIGFuZCBzdG9yZXMuCisKKyAgICAgICAgKiBm
dGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZH
VG9CMzo6Y29tcGlsZUF0b21pY3NSZWFkTW9kaWZ5V3JpdGUpOgorICAgICAgICAqIGZ0bC9GVExP
dXRwdXQuY3BwOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6YXRvbWljV2Vha0NBUyk6Cisg
ICAgICAgICogZnRsL0ZUTE91dHB1dC5oOgorICAgICAgICAqIHJ1bnRpbWUvQXRvbWljc09iamVj
dC5jcHA6CisKIDIwMTctMDYtMDIgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYXR0ZW1wdCB0byBmaXggdGhlIGlPUyBidWlsZCBhZnRl
ciByMjE3NzExLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
QjMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJE
RkdUb0IzLmNwcAkocmV2aXNpb24gMjE3NzExKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvQjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDI3LDcgKzMwMjcsNyBA
QCBwcml2YXRlOgogICAgICAgICAgICAgcmVzdWx0ID0gc2FuaXRpemVSZXN1bHQoYXRvbWljVmFs
dWUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXRvbWljc0xvYWQ6Ci0gICAg
ICAgICAgICBhdG9taWNWYWx1ZSA9IGxvYWRGcm9tSW50VHlwZWRBcnJheShwb2ludGVyLCB0eXBl
KTsKKyAgICAgICAgICAgIGF0b21pY1ZhbHVlID0gbV9vdXQuYXRvbWljWGNoZ0FkZChtX291dC5p
bnQzMlplcm8sIHBvaW50ZXIsIHdpZHRoKTsKICAgICAgICAgICAgIHJlc3VsdCA9IHNhbml0aXpl
UmVzdWx0KGF0b21pY1ZhbHVlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEF0
b21pY3NPcjoKQEAgLTMwMzUsNyArMzAzNSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXN1
bHQgPSBzYW5pdGl6ZVJlc3VsdChhdG9taWNWYWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBBdG9taWNzU3RvcmU6Ci0gICAgICAgICAgICBhdG9taWNWYWx1ZSA9IG1fb3V0
LnN0b3JlKGFyZ3NbMF0sIHBvaW50ZXIsIHN0b3JlVHlwZSh0eXBlKSk7CisgICAgICAgICAgICBh
dG9taWNWYWx1ZSA9IG1fb3V0LmF0b21pY1hjaGcoYXJnc1swXSwgcG9pbnRlciwgd2lkdGgpOwog
ICAgICAgICAgICAgcmVzdWx0ID0gYXJnc1swXTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEF0b21pY3NTdWI6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91
dHB1dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRw
dXQuY3BwCShyZXZpc2lvbiAyMTc3MTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TE91dHB1dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5MSw2ICs2OTEsMTMgQEAgTFZhbHVlIE91
dHB1dDo6YXRvbWljWGNoZyhMVmFsdWUgb3BlcmFuZAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
K0xWYWx1ZSBPdXRwdXQ6OmF0b21pY1dlYWtDQVMoTFZhbHVlIGV4cGVjdGVkLCBMVmFsdWUgbmV3
VmFsdWUsIFR5cGVkUG9pbnRlciBwb2ludGVyLCBXaWR0aCB3aWR0aCkKK3sKKyAgICBMVmFsdWUg
cmVzdWx0ID0gbV9ibG9jay0+YXBwZW5kTmV3PEF0b21pY1ZhbHVlPihtX3Byb2MsIEF0b21pY1dl
YWtDQVMsIG9yaWdpbigpLCB3aWR0aCwgZXhwZWN0ZWQsIG5ld1ZhbHVlLCBwb2ludGVyLnZhbHVl
KCksIDAsIEhlYXBSYW5nZSgpLCBIZWFwUmFuZ2UoKSk7CisgICAgbV9oZWFwcy0+ZGVjb3JhdGVN
ZW1vcnkocG9pbnRlci5oZWFwKCksIHJlc3VsdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwog
TFZhbHVlIE91dHB1dDo6YXRvbWljU3Ryb25nQ0FTKExWYWx1ZSBleHBlY3RlZCwgTFZhbHVlIG5l
d1ZhbHVlLCBUeXBlZFBvaW50ZXIgcG9pbnRlciwgV2lkdGggd2lkdGgpCiB7CiAgICAgTFZhbHVl
IHJlc3VsdCA9IG1fYmxvY2stPmFwcGVuZE5ldzxBdG9taWNWYWx1ZT4obV9wcm9jLCBBdG9taWNT
dHJvbmdDQVMsIG9yaWdpbigpLCB3aWR0aCwgZXhwZWN0ZWQsIG5ld1ZhbHVlLCBwb2ludGVyLnZh
bHVlKCksIDAsIEhlYXBSYW5nZSgpLCBIZWFwUmFuZ2UoKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMT3V0cHV0LmgJKHJldmlzaW9uIDIxNzcxMSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM3Nyw2ICszNzcsNyBA
QCBwdWJsaWM6CiAgICAgTFZhbHVlIGF0b21pY1hjaGdTdWIoTFZhbHVlIG9wZXJhbmQsIFR5cGVk
UG9pbnRlciBwb2ludGVyLCBCMzo6V2lkdGgpOwogICAgIExWYWx1ZSBhdG9taWNYY2hnWG9yKExW
YWx1ZSBvcGVyYW5kLCBUeXBlZFBvaW50ZXIgcG9pbnRlciwgQjM6OldpZHRoKTsKICAgICBMVmFs
dWUgYXRvbWljWGNoZyhMVmFsdWUgb3BlcmFuZCwgVHlwZWRQb2ludGVyIHBvaW50ZXIsIEIzOjpX
aWR0aCk7CisgICAgTFZhbHVlIGF0b21pY1dlYWtDQVMoTFZhbHVlIGV4cGVjdGVkLCBMVmFsdWUg
bmV3VmFsdWUsIFR5cGVkUG9pbnRlciBwb2ludGVyLCBCMzo6V2lkdGgpOwogICAgIExWYWx1ZSBh
dG9taWNTdHJvbmdDQVMoTFZhbHVlIGV4cGVjdGVkLCBMVmFsdWUgbmV3VmFsdWUsIFR5cGVkUG9p
bnRlciBwb2ludGVyLCBCMzo6V2lkdGgpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmVjdG9y
VHlwZT4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0F0b21pY3NPYmplY3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0F0b21pY3NP
YmplY3QuY3BwCShyZXZpc2lvbiAyMTc3MTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BdG9taWNzT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQyLDcgKzI0Miw3IEBA
IHN0cnVjdCBMb2FkRnVuYyB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBKU1ZhbHVl
IG9wZXJhdG9yKCkoVCogcHRyLCBjb25zdCBkb3VibGUqKSBjb25zdAogICAgIHsKLSAgICAgICAg
cmV0dXJuIGpzTnVtYmVyKFdURjo6YXRvbWljTG9hZChwdHIpKTsKKyAgICAgICAgcmV0dXJuIGpz
TnVtYmVyKFdURjo6YXRvbWljTG9hZEZ1bGx5RmVuY2VkKHB0cikpOwogICAgIH0KIH07CiAKQEAg
LTI2NCw3ICsyNjQsNyBAQCBzdHJ1Y3QgU3RvcmVGdW5jIHsKICAgICB7CiAgICAgICAgIGRvdWJs
ZSB2YWx1ZUFzSW50ID0gYXJnc1swXTsKICAgICAgICAgVCB2YWx1ZUFzVCA9IHN0YXRpY19jYXN0
PFQ+KHRvSW50MzIodmFsdWVBc0ludCkpOwotICAgICAgICBXVEY6OmF0b21pY1N0b3JlKHB0ciwg
dmFsdWVBc1QpOworICAgICAgICBXVEY6OmF0b21pY1N0b3JlRnVsbHlGZW5jZWQocHRyLCB2YWx1
ZUFzVCk7CiAgICAgICAgIHJldHVybiBqc051bWJlcih2YWx1ZUFzSW50KTsKICAgICB9CiB9OwpJ
bmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9DaGFu
Z2VMb2cJKHJldmlzaW9uIDIxNzcxMSkKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMDYtMDIgIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KKworICAgICAgICBBdG9taWNzLmxvYWQgYW5kIEF0b21pY3Muc3RvcmUgbmVl
ZCB0byBiZSBmdWxseSBmZW5jZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3Mjg0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorICAgICAgICAKKyAgICAgICAgQWRkIGxvYWRGdWxseUZlbmNlZCBhbmQgc3RvcmVGdWxseUZl
bmNlZCB0byBBdG9taWM8Pi4KKworICAgICAgICAqIHd0Zi9BdG9taWNzLmg6CisgICAgICAgIChX
VEY6OkF0b21pYzo6bG9hZEZ1bGx5RmVuY2VkKToKKyAgICAgICAgKFdURjo6QXRvbWljOjpzdG9y
ZVJlbGF4ZWQpOgorICAgICAgICAoV1RGOjpBdG9taWM6OnN0b3JlRnVsbHlGZW5jZWQpOgorICAg
ICAgICAoV1RGOjphdG9taWNMb2FkRnVsbHlGZW5jZWQpOgorICAgICAgICAoV1RGOjphdG9taWNT
dG9yZUZ1bGx5RmVuY2VkKToKKwogMjAxNy0wNi0wMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWls
bGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBVbmRvIHJvbGxvdXQgaW4gcjIxNzYzOCB3aXRoIGJ1
ZyBmaXgKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0F0b21pY3MuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV1RGL3d0Zi9BdG9taWNzLmgJKHJldmlzaW9uIDIxNzcxMSkKKysrIFNvdXJjZS9XVEYvd3Rm
L0F0b21pY3MuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsOCArNjEsMjUgQEAgc3RydWN0IEF0b21p
YyB7CiAgICAgQUxXQVlTX0lOTElORSBUIGxvYWQoc3RkOjptZW1vcnlfb3JkZXIgb3JkZXIgPSBz
dGQ6Om1lbW9yeV9vcmRlcl9zZXFfY3N0KSBjb25zdCB7IHJldHVybiB2YWx1ZS5sb2FkKG9yZGVy
KTsgfQogICAgIAogICAgIEFMV0FZU19JTkxJTkUgVCBsb2FkUmVsYXhlZCgpIGNvbnN0IHsgcmV0
dXJuIGxvYWQoc3RkOjptZW1vcnlfb3JkZXJfcmVsYXhlZCk7IH0KLQorICAgIAorICAgIC8vIFRo
aXMgaXMgYSBsb2FkIHRoYXQgc2ltdWx0YW5lb3VzbHkgZG9lcyBhIGZ1bGwgZmVuY2UgLSBuZWl0
aGVyIGxvYWRzIG5vciBzdG9yZXMgd2lsbCBtb3ZlCisgICAgLy8gYWJvdmUgb3IgYmVsb3cgaXQu
CisgICAgQUxXQVlTX0lOTElORSBUIGxvYWRGdWxseUZlbmNlZCgpIGNvbnN0CisgICAgeworICAg
ICAgICBBdG9taWM8VD4qIHB0ciA9IGNvbnN0X2Nhc3Q8QXRvbWljPFQ+Kj4odGhpcyk7CisgICAg
ICAgIHJldHVybiBwdHItPmV4Y2hhbmdlQWRkKFQoKSk7CisgICAgfQorICAgIAogICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBzdG9yZShUIGRlc2lyZWQsIHN0ZDo6bWVtb3J5X29yZGVyIG9yZGVyID0g
c3RkOjptZW1vcnlfb3JkZXJfc2VxX2NzdCkgeyB2YWx1ZS5zdG9yZShkZXNpcmVkLCBvcmRlcik7
IH0KKyAgICAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc3RvcmVSZWxheGVkKFQgZGVzaXJlZCkg
eyBzdG9yZShkZXNpcmVkLCBzdGQ6Om1lbW9yeV9vcmRlcl9yZWxheGVkKTsgfQorCisgICAgLy8g
VGhpcyBpcyBhIHN0b3JlIHRoYXQgc2ltdWx0YW5lb3VzbHkgZG9lcyBhIGZ1bGwgZmVuY2UgLSBu
ZWl0aGVyIGxvYWRzIG5vciBzdG9yZXMgd2lsbCBtb3ZlCisgICAgLy8gYWJvdmUgb3IgYmVsb3cg
aXQuCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHN0b3JlRnVsbHlGZW5jZWQoVCBkZXNpcmVkKQor
ICAgIHsKKyAgICAgICAgZXhjaGFuZ2UoZGVzaXJlZCk7CisgICAgfQogCiAgICAgQUxXQVlTX0lO
TElORSBib29sIGNvbXBhcmVFeGNoYW5nZVdlYWsoVCBleHBlY3RlZCwgVCBkZXNpcmVkLCBzdGQ6
Om1lbW9yeV9vcmRlciBvcmRlciA9IHN0ZDo6bWVtb3J5X29yZGVyX3NlcV9jc3QpCiAgICAgewpA
QCAtODEsNiArOTgsOCBAQCBzdHJ1Y3QgQXRvbWljIHsKICAgICAgICAgcmV0dXJuIHZhbHVlLmNv
bXBhcmVfZXhjaGFuZ2Vfd2VhayhleHBlY3RlZE9yQWN0dWFsLCBkZXNpcmVkLCBvcmRlcl9zdWNj
ZXNzLCBvcmRlcl9mYWlsdXJlKTsKICAgICB9CiAKKyAgICAvLyBXQVJOSU5HOiBUaGlzIGRvZXMg
bm90IGhhdmUgc3Ryb25nIGZlbmNpbmcgZ3VhcmFudGVlcyB3aGVuIGl0IGZhaWxzLiBGb3IgZXhh
bXBsZSwgc3RvcmVzIGNvdWxkCisgICAgLy8gc2luayBiZWxvdyBpdCBpbiB0aGF0IGNhc2UuCiAg
ICAgQUxXQVlTX0lOTElORSBUIGNvbXBhcmVFeGNoYW5nZVN0cm9uZyhUIGV4cGVjdGVkLCBUIGRl
c2lyZWQsIHN0ZDo6bWVtb3J5X29yZGVyIG9yZGVyID0gc3RkOjptZW1vcnlfb3JkZXJfc2VxX2Nz
dCkKICAgICB7CiAgICAgICAgIFQgZXhwZWN0ZWRPckFjdHVhbCA9IGV4cGVjdGVkOwpAQCAtMTQ3
LDEyICsxNjYsMjQgQEAgaW5saW5lIFQgYXRvbWljTG9hZChUKiBsb2NhdGlvbiwgc3RkOjptZQog
fQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgoraW5saW5lIFQgYXRvbWljTG9hZEZ1bGx5RmVuY2Vk
KFQqIGxvY2F0aW9uKQoreworICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8QXRvbWljPFQ+Kj4obG9j
YXRpb24pLT5sb2FkRnVsbHlGZW5jZWQoKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KIGlu
bGluZSB2b2lkIGF0b21pY1N0b3JlKFQqIGxvY2F0aW9uLCBUIG5ld1ZhbHVlLCBzdGQ6Om1lbW9y
eV9vcmRlciBvcmRlciA9IHN0ZDo6bWVtb3J5X29yZGVyX3NlcV9jc3QpCiB7CiAgICAgYml0d2lz
ZV9jYXN0PEF0b21pYzxUPio+KGxvY2F0aW9uKS0+c3RvcmUobmV3VmFsdWUsIG9yZGVyKTsKIH0K
IAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KK2lubGluZSB2b2lkIGF0b21pY1N0b3JlRnVsbHlGZW5j
ZWQoVCogbG9jYXRpb24sIFQgbmV3VmFsdWUpCit7CisgICAgYml0d2lzZV9jYXN0PEF0b21pYzxU
Pio+KGxvY2F0aW9uKS0+c3RvcmVGdWxseUZlbmNlZChuZXdWYWx1ZSk7Cit9CisKK3RlbXBsYXRl
PHR5cGVuYW1lIFQ+CiBpbmxpbmUgYm9vbCBhdG9taWNDb21wYXJlRXhjaGFuZ2VXZWFrKFQqIGxv
Y2F0aW9uLCBUIGV4cGVjdGVkLCBUIG5ld1ZhbHVlLCBzdGQ6Om1lbW9yeV9vcmRlciBvcmRlciA9
IHN0ZDo6bWVtb3J5X29yZGVyX3NlcV9jc3QpCiB7CiAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxB
dG9taWM8VD4qPihsb2NhdGlvbiktPmNvbXBhcmVFeGNoYW5nZVdlYWsoZXhwZWN0ZWQsIG5ld1Zh
bHVlLCBvcmRlcik7CkluZGV4OiBXZWJzaXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJzaXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjE3NzExKQor
KysgV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxNSBAQAorMjAxNy0wNi0wMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisg
ICAgICAgIEF0b21pY3MubG9hZCBhbmQgQXRvbWljcy5zdG9yZSBuZWVkIHRvIGJlIGZ1bGx5IGZl
bmNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcy
ODQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAg
ICAgICBVcGRhdGUgZG9jdW1lbnRhdGlvbiB0byBzYXkgdGhhdCB0aGUgY2Fub25pY2FsIHdheSB0
byBkbyBmdWxseSBmZW5jZWQgbG9hZHMgYW5kIHN0b3JlcyBpcworICAgICAgICBBdG9taWNYY2hn
QWRkKDAsIHB0cikgYW5kIEF0b21pY1hjaGcodmFsdWUsIHB0ciksIHJlc3BlY3RpdmVseS4KKwor
ICAgICAgICAqIGRvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWw6CisKIDIw
MTctMDUtMzEgIEpvbiBEYXZpcyAgPGpvbmRAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZHVjZSBT
YWZhcmkgVGVjaG5vbG9neSBQcmV2aWV3IFJlbGVhc2UgTm90ZXMgcG9zdHMgc2hvd24gb24gaG9t
ZXBhZ2UKSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVw
cmVzZW50YXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy93ZWJraXQub3JnL2RvY3Mv
YjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwJKHJldmlzaW9uIDIxNzcxMSkKKysr
IFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24u
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTcwLDYgKzE3MCwxMyBAQAogICAgICAgcHJlY2lzZWx5
LiBUaGUgcGhhbnRvbSB3cml0ZSBlZmZlY3RzIG9mIGEgZmVuY2VkIGxvYWQgY2Fubm90IHdyaXRl
IHRvIGFueXRoaW5nIHRoYXQgaXMgcmVhZCBvcgogICAgICAgd3JpdHRlbiBhZnRlciB0aGUgZmVu
Y2UuIFRoZSBwaGFudG9tIHJlYWQgZWZmZWN0cyBvZiBhIGZlbmNlZCBzdG9yZSBjYW5ub3QgcmVh
ZCBhbnl0aGluZyB0aGF0CiAgICAgICBpcyB3cml0dGVuIGFmdGVyIHRoZSBmZW5jZS48L3A+Cisg
ICAgCisgICAgPHA+QXBwbHlpbmcgYSBmZW5jZSByYW5nZSB0byBhIGxvYWQgb3Igc3RvcmUgb25s
eSBtYWtlcyB0aGF0IGFjY2VzcyBhIGhhbGYtZmVuY2U6IGxvYWQtd2l0aC1mZW5jZQorICAgICAg
aXMgYW4gYWNxdWlyZSBmZW5jZSB0aGF0IG9ubHkgcHJldmVudHMgbGF0ZXIgb3BlcmF0aW9ucyBm
cm9tIGJlaW5nIGhvaXN0ZWQgYW5kIHN0b3JlLXdpdGgtZmVuY2UKKyAgICAgIGlzIGEgcmVsZWFz
ZSBmZW5jZSB0aGF0IG9ubHkgcHJldmVudHMgZWFybGllciBvcGVyYXRpb25zIGZyb20gYmVpbmcg
c3Vuay4gVGhlIGNhbm9uaWNhbCB3YXkgdG8KKyAgICAgIGV4cHJlc3MgYSBmdWxseSBmZW5jZWQg
bG9hZCAod2hpY2ggaXMgZmVuY2VkIGluIDxpPmJvdGg8L2k+IGRpcmVjdGlvbnMpIGlzIHRvIHVz
ZQorICAgICAgQXRvbWljWGNoZ0FkZCgwLCBwdHIpIHdpdGggYSBub24tZW1wdHkgZmVuY2UgcmFu
Z2UuIFRoZSBjYW5vbmljYWwgd2F5IHRvIGV4cHJlc3MgYSBmdWxseSBmZW5jZWQKKyAgICAgIHN0
b3JlIGlzIHRvIHVzZSBBdG9taWNYY2hnKHZhbHVlLCBwdHIpIHdpdGggYSBub24tZW1wdHkgZmVu
Y2UgcmFuZ2UuPC9wPgogCiAgICAgPGgyPk9wY29kZXM8L2gyPgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311831</attachid>
            <date>2017-06-02 09:41:37 -0700</date>
            <delta_ts>2017-06-02 10:51:03 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>10206</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjE3NzE4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBA
CisyMDE3LTA2LTAyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QXRvbWljcy5sb2FkIGFuZCBBdG9taWNzLnN0b3JlIG5lZWQgdG8gYmUgZnVsbHkgZmVuY2VkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI4NDQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIElt
cGxlbWVudCBmdWxseSBmZW5jZWQgbG9hZHMgYW5kIHN0b3JlcyBpbiBGVEwgdXNpbmcgQXRvbWlj
WGNoZ0FkZCgwLCBwdHIpIGZvciB0aGUgbG9hZCBhbmQKKyAgICAgICAgQXRvbWljWGNoZyh2YWx1
ZSwgcHRyKSBmb3IgdGhlIHN0b3JlLgorICAgICAgICAKKyAgICAgICAgREZHIG5lZWRlZCBubyBj
aGFuZ2VzIGJlY2F1c2UgaXQgaW1wbGVtZW50cyBhbGwgYXRvbWljcyB1c2luZyBhIENBUyBsb29w
LgorICAgICAgICAKKyAgICAgICAgQXRvbWljc09iamVjdC5jcHAgbm93IHVzZXMgbmV3IEF0b21p
Yzw+IEFQSSBmb3IgZnVsbHkgZmVuY2VzIGxvYWRzIGFuZCBzdG9yZXMuCisgICAgICAgIAorICAg
ICAgICBQcmlvciB0byB0aGlzIGNoYW5nZSwgd2UgdXNlZCBoYWxmIGZlbmNlcyAoYWNxdWlyZS9y
ZWxlYXNlKSBmb3IgYXRvbWljIGxvYWRzIGFuZCBzdG9yZXMuIFRoaXMKKyAgICAgICAgaXMgbm90
IGNvcnJlY3QgYWNjb3JkaW5nIHRvIG15IGN1cnJlbnQgdW5kZXJzdGFuZGluZyBvZiB0aGUgU0FC
IG1lbW9yeSBtb2RlbCwgd2hpY2ggcmVxdWlyZXMKKyAgICAgICAgdGhhdCBhdG9taWMgb3BlcmF0
aW9ucyBhcmUgU0Mgd2l0aCByZXNwZWN0IHRvIGV2ZXJ5dGhpbmcgbm90IGp1c3Qgb3RoZXIgYXRv
bWljcy4KKworICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlND
OjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlQXRvbWljc1JlYWRNb2RpZnlXcml0ZSk6
CisgICAgICAgICogZnRsL0ZUTE91dHB1dC5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0
OjphdG9taWNXZWFrQ0FTKToKKyAgICAgICAgKiBmdGwvRlRMT3V0cHV0Lmg6CisgICAgICAgICog
cnVudGltZS9BdG9taWNzT2JqZWN0LmNwcDoKKwogMjAxNy0wNi0wMiAgUnlhbiBIYWRkYWQgIDxy
eWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBhdHRlbXB0IHRvIGZp
eCB0aGUgaU9TIGJ1aWxkIGFmdGVyIHIyMTc3MTEuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCShyZXZpc2lvbiAyMTc3MTEpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMwMjcsNyArMzAyNyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXN1bHQgPSBzYW5p
dGl6ZVJlc3VsdChhdG9taWNWYWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBBdG9taWNzTG9hZDoKLSAgICAgICAgICAgIGF0b21pY1ZhbHVlID0gbG9hZEZyb21JbnRUeXBl
ZEFycmF5KHBvaW50ZXIsIHR5cGUpOworICAgICAgICAgICAgYXRvbWljVmFsdWUgPSBtX291dC5h
dG9taWNYY2hnQWRkKG1fb3V0LmludDMyWmVybywgcG9pbnRlciwgd2lkdGgpOwogICAgICAgICAg
ICAgcmVzdWx0ID0gc2FuaXRpemVSZXN1bHQoYXRvbWljVmFsdWUpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgQXRvbWljc09yOgpAQCAtMzAzNSw3ICszMDM1LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgIHJlc3VsdCA9IHNhbml0aXplUmVzdWx0KGF0b21pY1ZhbHVlKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEF0b21pY3NTdG9yZToKLSAgICAgICAgICAg
IGF0b21pY1ZhbHVlID0gbV9vdXQuc3RvcmUoYXJnc1swXSwgcG9pbnRlciwgc3RvcmVUeXBlKHR5
cGUpKTsKKyAgICAgICAgICAgIGF0b21pY1ZhbHVlID0gbV9vdXQuYXRvbWljWGNoZyhhcmdzWzBd
LCBwb2ludGVyLCB3aWR0aCk7CiAgICAgICAgICAgICByZXN1bHQgPSBhcmdzWzBdOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXRvbWljc1N1YjoKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTE91dHB1dC5jcHAJKHJldmlzaW9uIDIxNzcxMSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjkxLDYg
KzY5MSwxMyBAQCBMVmFsdWUgT3V0cHV0OjphdG9taWNYY2hnKExWYWx1ZSBvcGVyYW5kCiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAorTFZhbHVlIE91dHB1dDo6YXRvbWljV2Vha0NBUyhMVmFsdWUg
ZXhwZWN0ZWQsIExWYWx1ZSBuZXdWYWx1ZSwgVHlwZWRQb2ludGVyIHBvaW50ZXIsIFdpZHRoIHdp
ZHRoKQoreworICAgIExWYWx1ZSByZXN1bHQgPSBtX2Jsb2NrLT5hcHBlbmROZXc8QXRvbWljVmFs
dWU+KG1fcHJvYywgQXRvbWljV2Vha0NBUywgb3JpZ2luKCksIHdpZHRoLCBleHBlY3RlZCwgbmV3
VmFsdWUsIHBvaW50ZXIudmFsdWUoKSwgMCwgSGVhcFJhbmdlKCksIEhlYXBSYW5nZSgpKTsKKyAg
ICBtX2hlYXBzLT5kZWNvcmF0ZU1lbW9yeShwb2ludGVyLmhlYXAoKSwgcmVzdWx0KTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCiBMVmFsdWUgT3V0cHV0OjphdG9taWNTdHJvbmdDQVMoTFZhbHVl
IGV4cGVjdGVkLCBMVmFsdWUgbmV3VmFsdWUsIFR5cGVkUG9pbnRlciBwb2ludGVyLCBXaWR0aCB3
aWR0aCkKIHsKICAgICBMVmFsdWUgcmVzdWx0ID0gbV9ibG9jay0+YXBwZW5kTmV3PEF0b21pY1Zh
bHVlPihtX3Byb2MsIEF0b21pY1N0cm9uZ0NBUywgb3JpZ2luKCksIHdpZHRoLCBleHBlY3RlZCwg
bmV3VmFsdWUsIHBvaW50ZXIudmFsdWUoKSwgMCwgSGVhcFJhbmdlKCksIEhlYXBSYW5nZSgpKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAkocmV2aXNpb24gMjE3NzEx
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAkod29ya2luZyBjb3B5
KQpAQCAtMzc3LDYgKzM3Nyw3IEBAIHB1YmxpYzoKICAgICBMVmFsdWUgYXRvbWljWGNoZ1N1YihM
VmFsdWUgb3BlcmFuZCwgVHlwZWRQb2ludGVyIHBvaW50ZXIsIEIzOjpXaWR0aCk7CiAgICAgTFZh
bHVlIGF0b21pY1hjaGdYb3IoTFZhbHVlIG9wZXJhbmQsIFR5cGVkUG9pbnRlciBwb2ludGVyLCBC
Mzo6V2lkdGgpOwogICAgIExWYWx1ZSBhdG9taWNYY2hnKExWYWx1ZSBvcGVyYW5kLCBUeXBlZFBv
aW50ZXIgcG9pbnRlciwgQjM6OldpZHRoKTsKKyAgICBMVmFsdWUgYXRvbWljV2Vha0NBUyhMVmFs
dWUgZXhwZWN0ZWQsIExWYWx1ZSBuZXdWYWx1ZSwgVHlwZWRQb2ludGVyIHBvaW50ZXIsIEIzOjpX
aWR0aCk7CiAgICAgTFZhbHVlIGF0b21pY1N0cm9uZ0NBUyhMVmFsdWUgZXhwZWN0ZWQsIExWYWx1
ZSBuZXdWYWx1ZSwgVHlwZWRQb2ludGVyIHBvaW50ZXIsIEIzOjpXaWR0aCk7CiAKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBlPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXRvbWljc09iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5jcHAJKHJldmlzaW9uIDIxNzcxMSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0F0b21pY3NPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNDIsNyArMjQyLDcgQEAgc3RydWN0IExvYWRGdW5jIHsKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgogICAgIEpTVmFsdWUgb3BlcmF0b3IoKShUKiBwdHIsIGNvbnN0IGRvdWJsZSopIGNv
bnN0CiAgICAgewotICAgICAgICByZXR1cm4ganNOdW1iZXIoV1RGOjphdG9taWNMb2FkKHB0cikp
OworICAgICAgICByZXR1cm4ganNOdW1iZXIoV1RGOjphdG9taWNMb2FkRnVsbHlGZW5jZWQocHRy
KSk7CiAgICAgfQogfTsKIApAQCAtMjY0LDcgKzI2NCw3IEBAIHN0cnVjdCBTdG9yZUZ1bmMgewog
ICAgIHsKICAgICAgICAgZG91YmxlIHZhbHVlQXNJbnQgPSBhcmdzWzBdOwogICAgICAgICBUIHZh
bHVlQXNUID0gc3RhdGljX2Nhc3Q8VD4odG9JbnQzMih2YWx1ZUFzSW50KSk7Ci0gICAgICAgIFdU
Rjo6YXRvbWljU3RvcmUocHRyLCB2YWx1ZUFzVCk7CisgICAgICAgIFdURjo6YXRvbWljU3RvcmVG
dWxseUZlbmNlZChwdHIsIHZhbHVlQXNUKTsKICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKHZhbHVl
QXNJbnQpOwogICAgIH0KIH07CkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2aXNpb24gMjE3NzExKQorKysgU291cmNlL1dU
Ri9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxNy0wNi0wMiAg
RmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIEF0b21pY3MubG9hZCBh
bmQgQXRvbWljcy5zdG9yZSBuZWVkIHRvIGJlIGZ1bGx5IGZlbmNlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyODQ0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBBZGQgbG9hZEZ1bGx5RmVu
Y2VkIGFuZCBzdG9yZUZ1bGx5RmVuY2VkIHRvIEF0b21pYzw+LgorCisgICAgICAgICogd3RmL0F0
b21pY3MuaDoKKyAgICAgICAgKFdURjo6QXRvbWljOjpsb2FkRnVsbHlGZW5jZWQpOgorICAgICAg
ICAoV1RGOjpBdG9taWM6OnN0b3JlUmVsYXhlZCk6CisgICAgICAgIChXVEY6OkF0b21pYzo6c3Rv
cmVGdWxseUZlbmNlZCk6CisgICAgICAgIChXVEY6OmF0b21pY0xvYWRGdWxseUZlbmNlZCk6Cisg
ICAgICAgIChXVEY6OmF0b21pY1N0b3JlRnVsbHlGZW5jZWQpOgorCiAyMDE3LTA2LTAxICBLZWl0
aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVuZG8gcm9sbG91
dCBpbiByMjE3NjM4IHdpdGggYnVnIGZpeApJbmRleDogU291cmNlL1dURi93dGYvQXRvbWljcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0F0b21pY3MuaAkocmV2aXNpb24gMjE3NzEx
KQorKysgU291cmNlL1dURi93dGYvQXRvbWljcy5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw4ICs2
MSwyNSBAQCBzdHJ1Y3QgQXRvbWljIHsKICAgICBBTFdBWVNfSU5MSU5FIFQgbG9hZChzdGQ6Om1l
bW9yeV9vcmRlciBvcmRlciA9IHN0ZDo6bWVtb3J5X29yZGVyX3NlcV9jc3QpIGNvbnN0IHsgcmV0
dXJuIHZhbHVlLmxvYWQob3JkZXIpOyB9CiAgICAgCiAgICAgQUxXQVlTX0lOTElORSBUIGxvYWRS
ZWxheGVkKCkgY29uc3QgeyByZXR1cm4gbG9hZChzdGQ6Om1lbW9yeV9vcmRlcl9yZWxheGVkKTsg
fQotCisgICAgCisgICAgLy8gVGhpcyBpcyBhIGxvYWQgdGhhdCBzaW11bHRhbmVvdXNseSBkb2Vz
IGEgZnVsbCBmZW5jZSAtIG5laXRoZXIgbG9hZHMgbm9yIHN0b3JlcyB3aWxsIG1vdmUKKyAgICAv
LyBhYm92ZSBvciBiZWxvdyBpdC4KKyAgICBBTFdBWVNfSU5MSU5FIFQgbG9hZEZ1bGx5RmVuY2Vk
KCkgY29uc3QKKyAgICB7CisgICAgICAgIEF0b21pYzxUPiogcHRyID0gY29uc3RfY2FzdDxBdG9t
aWM8VD4qPih0aGlzKTsKKyAgICAgICAgcmV0dXJuIHB0ci0+ZXhjaGFuZ2VBZGQoVCgpKTsKKyAg
ICB9CisgICAgCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHN0b3JlKFQgZGVzaXJlZCwgc3RkOjpt
ZW1vcnlfb3JkZXIgb3JkZXIgPSBzdGQ6Om1lbW9yeV9vcmRlcl9zZXFfY3N0KSB7IHZhbHVlLnN0
b3JlKGRlc2lyZWQsIG9yZGVyKTsgfQorICAgIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzdG9y
ZVJlbGF4ZWQoVCBkZXNpcmVkKSB7IHN0b3JlKGRlc2lyZWQsIHN0ZDo6bWVtb3J5X29yZGVyX3Jl
bGF4ZWQpOyB9CisKKyAgICAvLyBUaGlzIGlzIGEgc3RvcmUgdGhhdCBzaW11bHRhbmVvdXNseSBk
b2VzIGEgZnVsbCBmZW5jZSAtIG5laXRoZXIgbG9hZHMgbm9yIHN0b3JlcyB3aWxsIG1vdmUKKyAg
ICAvLyBhYm92ZSBvciBiZWxvdyBpdC4KKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc3RvcmVGdWxs
eUZlbmNlZChUIGRlc2lyZWQpCisgICAgeworICAgICAgICBleGNoYW5nZShkZXNpcmVkKTsKKyAg
ICB9CiAKICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgY29tcGFyZUV4Y2hhbmdlV2VhayhUIGV4cGVj
dGVkLCBUIGRlc2lyZWQsIHN0ZDo6bWVtb3J5X29yZGVyIG9yZGVyID0gc3RkOjptZW1vcnlfb3Jk
ZXJfc2VxX2NzdCkKICAgICB7CkBAIC04MSw2ICs5OCw4IEBAIHN0cnVjdCBBdG9taWMgewogICAg
ICAgICByZXR1cm4gdmFsdWUuY29tcGFyZV9leGNoYW5nZV93ZWFrKGV4cGVjdGVkT3JBY3R1YWws
IGRlc2lyZWQsIG9yZGVyX3N1Y2Nlc3MsIG9yZGVyX2ZhaWx1cmUpOwogICAgIH0KIAorICAgIC8v
IFdBUk5JTkc6IFRoaXMgZG9lcyBub3QgaGF2ZSBzdHJvbmcgZmVuY2luZyBndWFyYW50ZWVzIHdo
ZW4gaXQgZmFpbHMuIEZvciBleGFtcGxlLCBzdG9yZXMgY291bGQKKyAgICAvLyBzaW5rIGJlbG93
IGl0IGluIHRoYXQgY2FzZS4KICAgICBBTFdBWVNfSU5MSU5FIFQgY29tcGFyZUV4Y2hhbmdlU3Ry
b25nKFQgZXhwZWN0ZWQsIFQgZGVzaXJlZCwgc3RkOjptZW1vcnlfb3JkZXIgb3JkZXIgPSBzdGQ6
Om1lbW9yeV9vcmRlcl9zZXFfY3N0KQogICAgIHsKICAgICAgICAgVCBleHBlY3RlZE9yQWN0dWFs
ID0gZXhwZWN0ZWQ7CkBAIC0xNDcsMTIgKzE2NiwyNCBAQCBpbmxpbmUgVCBhdG9taWNMb2FkKFQq
IGxvY2F0aW9uLCBzdGQ6Om1lCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CitpbmxpbmUgVCBh
dG9taWNMb2FkRnVsbHlGZW5jZWQoVCogbG9jYXRpb24pCit7CisgICAgcmV0dXJuIGJpdHdpc2Vf
Y2FzdDxBdG9taWM8VD4qPihsb2NhdGlvbiktPmxvYWRGdWxseUZlbmNlZCgpOworfQorCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgogaW5saW5lIHZvaWQgYXRvbWljU3RvcmUoVCogbG9jYXRpb24sIFQg
bmV3VmFsdWUsIHN0ZDo6bWVtb3J5X29yZGVyIG9yZGVyID0gc3RkOjptZW1vcnlfb3JkZXJfc2Vx
X2NzdCkKIHsKICAgICBiaXR3aXNlX2Nhc3Q8QXRvbWljPFQ+Kj4obG9jYXRpb24pLT5zdG9yZShu
ZXdWYWx1ZSwgb3JkZXIpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgoraW5saW5lIHZvaWQg
YXRvbWljU3RvcmVGdWxseUZlbmNlZChUKiBsb2NhdGlvbiwgVCBuZXdWYWx1ZSkKK3sKKyAgICBi
aXR3aXNlX2Nhc3Q8QXRvbWljPFQ+Kj4obG9jYXRpb24pLT5zdG9yZUZ1bGx5RmVuY2VkKG5ld1Zh
bHVlKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KIGlubGluZSBib29sIGF0b21pY0NvbXBh
cmVFeGNoYW5nZVdlYWsoVCogbG9jYXRpb24sIFQgZXhwZWN0ZWQsIFQgbmV3VmFsdWUsIHN0ZDo6
bWVtb3J5X29yZGVyIG9yZGVyID0gc3RkOjptZW1vcnlfb3JkZXJfc2VxX2NzdCkKIHsKICAgICBy
ZXR1cm4gYml0d2lzZV9jYXN0PEF0b21pYzxUPio+KGxvY2F0aW9uKS0+Y29tcGFyZUV4Y2hhbmdl
V2VhayhleHBlY3RlZCwgbmV3VmFsdWUsIG9yZGVyKTsKSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC5v
cmcvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMTc3MTEpCisrKyBXZWJzaXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA2LTAyICBGaWxpcCBQaXpsbyAgPGZw
aXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgQXRvbWljcy5sb2FkIGFuZCBBdG9taWNzLnN0b3Jl
IG5lZWQgdG8gYmUgZnVsbHkgZmVuY2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzI4NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKyAgICAgICAgCisgICAgICAgIFVwZGF0ZSBkb2N1bWVudGF0aW9uIHRvIHNheSB0aGF0
IHRoZSBjYW5vbmljYWwgd2F5IHRvIGRvIGZ1bGx5IGZlbmNlZCBsb2FkcyBhbmQgc3RvcmVzIGlz
CisgICAgICAgIEF0b21pY1hjaGdBZGQoMCwgcHRyKSBhbmQgQXRvbWljWGNoZyh2YWx1ZSwgcHRy
KSwgcmVzcGVjdGl2ZWx5LgorCisgICAgICAgICogZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVz
ZW50YXRpb24uaHRtbDoKKwogMjAxNy0wNS0zMSAgSm9uIERhdmlzICA8am9uZEBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVkdWNlIFNhZmFyaSBUZWNobm9sb2d5IFByZXZpZXcgUmVsZWFzZSBOb3Rl
cyBwb3N0cyBzaG93biBvbiBob21lcGFnZQpJbmRleDogV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2Nz
L2IzL2ludGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNp
dGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAko
cmV2aXNpb24gMjE3NzExKQorKysgV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2ludGVybWVk
aWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNzAsNiArMTcwLDEz
IEBACiAgICAgICBwcmVjaXNlbHkuIFRoZSBwaGFudG9tIHdyaXRlIGVmZmVjdHMgb2YgYSBmZW5j
ZWQgbG9hZCBjYW5ub3Qgd3JpdGUgdG8gYW55dGhpbmcgdGhhdCBpcyByZWFkIG9yCiAgICAgICB3
cml0dGVuIGFmdGVyIHRoZSBmZW5jZS4gVGhlIHBoYW50b20gcmVhZCBlZmZlY3RzIG9mIGEgZmVu
Y2VkIHN0b3JlIGNhbm5vdCByZWFkIGFueXRoaW5nIHRoYXQKICAgICAgIGlzIHdyaXR0ZW4gYWZ0
ZXIgdGhlIGZlbmNlLjwvcD4KKyAgICAKKyAgICA8cD5BcHBseWluZyBhIGZlbmNlIHJhbmdlIHRv
IGEgbG9hZCBvciBzdG9yZSBvbmx5IG1ha2VzIHRoYXQgYWNjZXNzIGEgaGFsZi1mZW5jZTogbG9h
ZC13aXRoLWZlbmNlCisgICAgICBpcyBhbiBhY3F1aXJlIGZlbmNlIHRoYXQgb25seSBwcmV2ZW50
cyBsYXRlciBvcGVyYXRpb25zIGZyb20gYmVpbmcgaG9pc3RlZCBhbmQgc3RvcmUtd2l0aC1mZW5j
ZQorICAgICAgaXMgYSByZWxlYXNlIGZlbmNlIHRoYXQgb25seSBwcmV2ZW50cyBlYXJsaWVyIG9w
ZXJhdGlvbnMgZnJvbSBiZWluZyBzdW5rLiBUaGUgY2Fub25pY2FsIHdheSB0bworICAgICAgZXhw
cmVzcyBhIGZ1bGx5IGZlbmNlZCBsb2FkICh3aGljaCBpcyBmZW5jZWQgaW4gPGk+Ym90aDwvaT4g
ZGlyZWN0aW9ucykgaXMgdG8gdXNlCisgICAgICBBdG9taWNYY2hnQWRkKDAsIHB0cikgd2l0aCBh
IG5vbi1lbXB0eSBmZW5jZSByYW5nZS4gVGhlIGNhbm9uaWNhbCB3YXkgdG8gZXhwcmVzcyBhIGZ1
bGx5IGZlbmNlZAorICAgICAgc3RvcmUgaXMgdG8gdXNlIEF0b21pY1hjaGcodmFsdWUsIHB0cikg
d2l0aCBhIG5vbi1lbXB0eSBmZW5jZSByYW5nZS48L3A+CiAKICAgICA8aDI+T3Bjb2RlczwvaDI+
CiAK
</data>
<flag name="review"
          id="332785"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
          </attachment>
      

    </bug>

</bugzilla>