<?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>8993</bug_id>
          
          <creation_ts>2006-05-19 06:21:40 -0700</creation_ts>
          <short_desc>Support function declaration in case statements</short_desc>
          <delta_ts>2006-05-20 13:14:55 -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>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>7788</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>42879</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-05-19 06:21:40 -0700</bug_when>
    <thetext>The spec doesn&apos;t support this, but all other browsers support it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42954</commentid>
    <comment_count>1</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-05-19 15:47:31 -0700</bug_when>
    <thetext>Interestingly enough, WebKit supports this if the function case statement&apos;s body is enclosed in curly braces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42955</commentid>
    <comment_count>2</comment_count>
      <attachid>8421</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-05-19 15:48:35 -0700</bug_when>
    <thetext>Created attachment 8421
layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42958</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-05-19 15:59:03 -0700</bug_when>
    <thetext>I&apos;ll take this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42961</commentid>
    <comment_count>4</comment_count>
      <attachid>8422</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-05-19 16:49:02 -0700</bug_when>
    <thetext>Created attachment 8422
Patch with layout test and ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42973</commentid>
    <comment_count>5</comment_count>
      <attachid>8427</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-05-19 20:30:12 -0700</bug_when>
    <thetext>Created attachment 8427
Patch to prented that case statements are surrounded by curly braces

I like this patch better because it follows my own advice and also removes cruft from the grammar.

I still don&apos;t see why functions need to be distinguished in the grammar from plain old statements. Perhaps we can change that in another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42974</commentid>
    <comment_count>6</comment_count>
      <attachid>8427</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-05-19 23:04:52 -0700</bug_when>
    <thetext>Comment on attachment 8427
Patch to prented that case statements are surrounded by curly braces

The grammar comes straight out of the ECMA standard. If there are things wrong with it, it probably means there are places where other browsers don&apos;t match the standard.

The CaseClause and DefaultClause productions are on page 68 of ECMA-262 3rd edition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42978</commentid>
    <comment_count>7</comment_count>
      <attachid>8429</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-05-20 01:15:11 -0700</bug_when>
    <thetext>Created attachment 8429
My implementation, for reference

I realize now that I had forgotten to upload my patch! Sorry about that, Geoff.

It looks like we have different solutions to the problem. My patch always processes any function declarations wheras your patch does it before evaluating a case statement. 

I&apos;ve tested with Opera, WinIE, MacIE and Firefox and everyone except Firefox follows the behavior I&apos;ve implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42979</commentid>
    <comment_count>8</comment_count>
      <attachid>8430</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-05-20 01:19:55 -0700</bug_when>
    <thetext>Created attachment 8430
Actually include the code changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42996</commentid>
    <comment_count>9</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-05-20 08:00:25 -0700</bug_when>
    <thetext>That&apos;s funny -- I tested only in Firefox :). The IE/Opera behavior seems strange to me, but for compatibility&apos;s sake, I think it&apos;s best.

Anders, it looks like you uploaded only your layout test. Can you upload your patch as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>43005</commentid>
    <comment_count>10</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-05-20 08:47:35 -0700</bug_when>
    <thetext>I did that, it&apos;s in http://bugzilla.opendarwin.org/attachment.cgi?id=8430</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>43006</commentid>
    <comment_count>11</comment_count>
      <attachid>8430</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-05-20 11:36:26 -0700</bug_when>
    <thetext>Comment on attachment 8430
Actually include the code changes 

OK, I&apos;m gonna r+ this one since it&apos;s the IE/Opera behavior.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>8421</attachid>
            <date>2006-05-19 15:48:35 -0700</date>
            <delta_ts>2006-05-19 15:48:35 -0700</delta_ts>
            <desc>layout test</desc>
            <filename>scratch-syntaxError.html</filename>
            <type>text/html</type>
            <size>1112</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8c2NyaXB0PgpmdW5jdGlvbiBwcmludChtZXNzYWdlLCBjb2xvcikgCnsK
ICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgIHBh
cmFncmFwaC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CiAg
ICBwYXJhZ3JhcGguc3R5bGUuZm9udEZhbWlseSA9ICJtb25vc3BhY2UiOwogICAgaWYgKGNvbG9y
KQogICAgICAgIHBhcmFncmFwaC5zdHlsZS5jb2xvciA9IGNvbG9yOwogICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOwp9CgpmdW5jdGlv
biBzaG91bGRCZShhLCBiKQp7CiAgICB2YXIgZXZhbEEgPSBldmFsKGEpOwogICAgaWYgKGV2YWxB
ID09IGIpCiAgICAgICAgcHJpbnQoIlBBU1M6ICIgKyBhICsgIiBzaG91bGQgYmUgIiArIGIgKyAi
IGFuZCBpcy4iLCAiZ3JlZW4iKTsKICAgIGVsc2UKICAgICAgICBwcmludCgiRkFJTDogIiArIGEg
KyAiIHNob3VsZCBiZSAiICsgYiArICIgYnV0IGluc3RlYWQgaXMgIiArIGV2YWxBICsgIi4iLCAi
cmVkIik7Cn0KCmZ1bmN0aW9uIGYoKSB7CiAgICBwcmludCgnRkFJTDogRnVuY3Rpb24gbm90IGRl
bGNhcmVkIGluc2lkZSBjYXNlIGJsb2NrJywgJ3JlZCcpOwp9CgpmdW5jdGlvbiB0ZXN0KCkgCnsK
ICAgIHN3aXRjaCh0cnVlKSB7CiAgICAgICAgY2FzZSB0cnVlOgogICAgICAgICAgICBmdW5jdGlv
biBmKCkgewogICAgICAgICAgICAgICAgcHJpbnQoJ1BBU1M6IEZ1bmN0aW9uIGRlbGNhcmVkIGlu
c2lkZSBjYXNlIGJsb2NrJywgJ2dyZWVuJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAg
ICAgICAgICAgIGYoKTsKICAgIH0KfQo8L3NjcmlwdD4KPC9oZWFkPgoKPGJvZHkgb25sb2FkPSJ0
ZXN0KCk7Ij4KPHA+VGhpcyBwYWdlIHRlc3RzIGRlY2xhcmF0aW9uIG9mIGEgZnVuY3Rpb24gaW5z
aWRlIGEgc3dpdGNoIHN0YXRlbWVudCdzICdjYXNlJyBibG9jay4gSWYgaXQgcGFzc2VzLCB5b3Un
bGwgc2VlIGEKICAgJ1BBU1MnIG1lc3NhZ2UgYmVsb3cuPC9wPgo8aHI+Cgo8ZGl2IGlkPSdjb25z
b2xlJz48L2Rpdj4KCjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8422</attachid>
            <date>2006-05-19 16:49:02 -0700</date>
            <delta_ts>2006-05-19 20:30:12 -0700</delta_ts>
            <desc>Patch with layout test and ChangeLog</desc>
            <filename>patch-case-block-function-declaration.txt</filename>
            <type>text/plain</type>
            <size>6083</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNj
cmlwdENvcmUva2pzL25vZGVzLmNwcAkocmV2aXNpb24gMTQ0ODQpCisrKyBKYXZhU2NyaXB0Q29y
ZS9ranMvbm9kZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTU0LDYgKzE1NTQsMTIgQEAgdm9p
ZCBTdGF0TGlzdE5vZGU6OnByb2Nlc3NWYXJEZWNscyhFeGVjUwogICAgIG4tPnN0YXRlbWVudC0+
cHJvY2Vzc1ZhckRlY2xzKGV4ZWMpOwogfQogCit2b2lkIFN0YXRMaXN0Tm9kZTo6cHJvY2Vzc0Z1
bmNEZWNsKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBmb3IgKFN0YXRMaXN0Tm9kZSAqbiA9IHRo
aXM7IG47IG4gPSBuLT5uZXh0LmdldCgpKQorICAgICAgICBuLT5zdGF0ZW1lbnQtPnByb2Nlc3NG
dW5jRGVjbChleGVjKTsKK30KKwogdm9pZCBTdGF0TGlzdE5vZGU6OmJyZWFrQ3ljbGUoKSAKIHsg
CiAgICAgbmV4dCA9IDA7CkBAIC0yMDk0LDkgKzIxMDAsMTAgQEAgSlNWYWx1ZSAqQ2FzZUNsYXVz
ZU5vZGU6OmV2YWx1YXRlKEV4ZWNTdAogLy8gRUNNQSAxMi4xMQogQ29tcGxldGlvbiBDYXNlQ2xh
dXNlTm9kZTo6ZXZhbFN0YXRlbWVudHMoRXhlY1N0YXRlICpleGVjKQogewotICBpZiAobmV4dCkK
KyAgaWYgKG5leHQpIHsKKyAgICBuZXh0LT5wcm9jZXNzRnVuY0RlY2woZXhlYyk7CiAgICAgcmV0
dXJuIG5leHQtPmV4ZWN1dGUoZXhlYyk7Ci0gIGVsc2UKKyAgfSBlbHNlCiAgICAgcmV0dXJuIENv
bXBsZXRpb24oTm9ybWFsLCBqc1VuZGVmaW5lZCgpKTsKIH0KIApJbmRleDogSmF2YVNjcmlwdENv
cmUva2pzL2dyYW1tYXIueQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvZ3JhbW1h
ci55CShyZXZpc2lvbiAxNDQ4NCkKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9ncmFtbWFyLnkJKHdv
cmtpbmcgY29weSkKQEAgLTE2NiwxMCArMTY2LDEwIEBAIHN0YXRpYyBOb2RlICptYWtlRGVsZXRl
Tm9kZShOb2RlICpleHByKTsKICV0eXBlIDxzdGF0PiAgVGhyb3dTdGF0ZW1lbnQgVHJ5U3RhdGVt
ZW50CiAldHlwZSA8c3RhdD4gIERlYnVnZ2VyU3RhdGVtZW50CiAldHlwZSA8c3RhdD4gIFNvdXJj
ZUVsZW1lbnQKKyV0eXBlIDxzdGF0PiAgRnVuY3Rpb25EZWNsYXJhdGlvbgogCiAldHlwZSA8c2xp
c3Q+IFN0YXRlbWVudExpc3QKICV0eXBlIDxpbml0PiAgSW5pdGlhbGl6ZXIgSW5pdGlhbGl6ZXJO
b0luCi0ldHlwZSA8ZnVuYz4gIEZ1bmN0aW9uRGVjbGFyYXRpb24KICV0eXBlIDxmdW5jRXhwcj4g
IEZ1bmN0aW9uRXhwcgogJXR5cGUgPGJvZHk+ICBGdW5jdGlvbkJvZHkKICV0eXBlIDxzcmNzPiAg
U291cmNlRWxlbWVudHMKQEAgLTYzMCw2ICs2MzAsNyBAQCBTdGF0ZW1lbnQ6CiAgIHwgVGhyb3dT
dGF0ZW1lbnQKICAgfCBUcnlTdGF0ZW1lbnQKICAgfCBEZWJ1Z2dlclN0YXRlbWVudAorICB8IEZ1
bmN0aW9uRGVjbGFyYXRpb24KIDsKIAogQmxvY2s6CkBAIC04NTIsOCArODUzLDcgQEAgU291cmNl
RWxlbWVudHM6CiA7CiAKIFNvdXJjZUVsZW1lbnQ6Ci0gICAgRnVuY3Rpb25EZWNsYXJhdGlvbiAg
ICAgICAgICAgICAgICAgeyAkJCA9ICQxOyB9Ci0gIHwgU3RhdGVtZW50ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeyAkJCA9ICQxOyB9CisgIFN0YXRlbWVudCAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgJCQgPSAkMTsgfQogOwogIAogJSUKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9u
b2Rlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5oCShyZXZpc2lv
biAxNDQ4NCkKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC03NDEsNiArNzQxLDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgU3RhdExpc3ROb2RlKFN0YXRM
aXN0Tm9kZSAqbCwgU3RhdGVtZW50Tm9kZSAqcyk7CiAgICAgdmlydHVhbCBDb21wbGV0aW9uIGV4
ZWN1dGUoRXhlY1N0YXRlKik7CiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NWYXJEZWNscyhFeGVj
U3RhdGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0Z1bmNEZWNsKEV4ZWNTdGF0ZSopOwog
ICAgIHZpcnR1YWwgdm9pZCBzdHJlYW1UbyhTb3VyY2VTdHJlYW0mKSBjb25zdDsKICAgICBQYXNz
UmVmUHRyPFN0YXRMaXN0Tm9kZT4gcmVsZWFzZU5leHQoKSB7IHJldHVybiBuZXh0LnJlbGVhc2Uo
KTsgfQogICAgIHZpcnR1YWwgdm9pZCBicmVha0N5Y2xlKCk7CkluZGV4OiBKYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCShyZXZp
c2lvbiAxNDQ5NykKKysrIEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDIyIEBACisyMDA2LTA1LTE5ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
LSBGaXhlZCBodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTg5
OTMKKyAgICAgICAgU3VwcG9ydCBmdW5jdGlvbiBkZWNsYXJhdGlvbiBpbiBjYXNlIHN0YXRlbWVu
dHMKKworICAgICAgICBNeSBzdHJhdGVneSBoZXJlIHdhcyB0byB0cmVhdCBmdW5jdGlvbiBkZWNs
YXJhdGlvbnMgYXMgbm9ybWFsCisgICAgICAgIHN0YXRlbWVudHMuCisgICAgICAgIAorICAgICAg
ICAwIHJlZ3Jlc3Npb25zIGZvdW5kLgorICAgICAgICAwIHRlc3RzIGZpeGVkLgorICAgICAgICAK
KyAgICAgICAgKiBranMvZ3JhbW1hci55OgorICAgICAgICAqIGtqcy9ub2Rlcy5jcHA6CisgICAg
ICAgIChTdGF0TGlzdE5vZGU6OnByb2Nlc3NGdW5jRGVjbCk6CisgICAgICAgIChDYXNlQ2xhdXNl
Tm9kZTo6ZXZhbFN0YXRlbWVudHMpOgorICAgICAgICAqIGtqcy9ub2Rlcy5oOgorCiAyMDA2LTA1
LTE3ICBHZW9yZ2UgU3RhaWtvcyA8c3RhaWtvc0BrZGUub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IE1hY2llaiwgQWxleGV5LCBhbmQgRXJpYy4KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NDk3KQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMDYtMDUtMTkgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBMYXlvdXQgdGVzdCBmb3IgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVn
LmNnaT9pZD04OTkzCisgICAgICAgIFN1cHBvcnQgZnVuY3Rpb24gZGVjbGFyYXRpb24gaW4gY2Fz
ZSBzdGF0ZW1lbnRzCisgICAgICAgIAorICAgICAgICAqIGZhc3QvanMvY2FzZS1zdGF0ZW1lbnQt
ZnVuY3Rpb24tZGVjbGFyYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2pzL2Nhc2Utc3RhdGVtZW50LWZ1bmN0aW9uLWRlY2xhcmF0aW9uLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvanMvcmVzb3VyY2VzL2Nhc2Utc3RhdGVtZW50LWZ1bmN0aW9uLWRlY2xhcmF0
aW9uLmpzOiBBZGRlZC4KKwogMjAwNi0wNS0xNyAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBw
bGUuY29tPgogCiAgICAgICAgIC0gVGVzdCBmb3Igb3ZlcnJpZGluZyBub24tYXV0b2dlbmVyYXRl
ZCBnbG9iYWwgY29uc3RydWN0b3JzLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJj
ZXMvY2FzZS1zdGF0ZW1lbnQtZnVuY3Rpb24tZGVjbGFyYXRpb24uanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvY2FzZS1zdGF0ZW1lbnQtZnVuY3Rpb24tZGVj
bGFyYXRpb24uanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNl
cy9jYXNlLXN0YXRlbWVudC1mdW5jdGlvbi1kZWNsYXJhdGlvbi5qcwkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwyMSBAQAorZGVzY3JpcHRpb24oIlRoaXMgcGFnZSB0ZXN0cyBkZWNsYXJhdGlvbiBv
ZiBhIGZ1bmN0aW9uIGluc2lkZSBhIHN3aXRjaCBzdGF0ZW1lbnQncyAnY2FzZScgYmxvY2suIik7
CisKK2Z1bmN0aW9uIGYoKSB7CisgICAgZGVidWcoJ0ZBSUwgRnVuY3Rpb24gbm90IGRlY2xhcmVk
IGluc2lkZSBjYXNlIGJsb2NrJywgJ3JlZCcpOworfQorCitzd2l0Y2godHJ1ZSkgeworY2FzZSB0
cnVlOgorICAgIGZ1bmN0aW9uIGYoKSB7CisgICAgICAgIGRlYnVnKCdQQVNTIEZ1bmN0aW9uIGRl
Y2xhcmVkIGluc2lkZSBjYXNlIGJsb2NrJywgJ2dyZWVuJyk7CisgICAgfQorICAgIGJyZWFrOwor
ZGVmYXVsdDoKKyAgICBmdW5jdGlvbiBmKCkgeworICAgICAgICBkZWJ1ZygnRkFJTCBGdW5jdGlv
biBkZWNsYXJlZCBpbnNpZGUgY2FzZSBibG9jayB0aGF0IGRpZCBub3QgZXhlY3V0ZScsICdyZWQn
KTsKKyAgICB9Cit9CisKK2YoKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2Nhc2Utc3RhdGVtZW50LWZ1bmN0aW9uLWRlY2xhcmF0
aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL2Nhc2Ut
c3RhdGVtZW50LWZ1bmN0aW9uLWRlY2xhcmF0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvanMvY2FzZS1zdGF0ZW1lbnQtZnVuY3Rpb24tZGVjbGFyYXRp
b24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwIEBACitUaGlzIHBhZ2Ug
dGVzdHMgZGVjbGFyYXRpb24gb2YgYSBmdW5jdGlvbiBpbnNpZGUgYSBzd2l0Y2ggc3RhdGVtZW50
J3MgJ2Nhc2UnIGJsb2NrLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBG
dW5jdGlvbiBkZWNsYXJlZCBpbnNpZGUgY2FzZSBibG9jaworUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMv
Y2FzZS1zdGF0ZW1lbnQtZnVuY3Rpb24tZGVjbGFyYXRpb24uaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2pzL2Nhc2Utc3RhdGVtZW50LWZ1bmN0aW9uLWRlY2xhcmF0aW9uLmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2Nhc2Utc3RhdGVtZW50LWZ1
bmN0aW9uLWRlY2xhcmF0aW9uLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FzZS1zdGF0ZW1lbnQtZnVuY3Rp
b24tZGVjbGFyYXRpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8427</attachid>
            <date>2006-05-19 20:30:12 -0700</date>
            <delta_ts>2006-05-20 11:35:29 -0700</delta_ts>
            <desc>Patch to prented that case statements are surrounded by curly braces</desc>
            <filename>patch-case-block-function-declaration.txt</filename>
            <type>text/plain</type>
            <size>10513</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9ub2RlczJzdHJpbmcuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEphdmFTY3JpcHRDb3JlL2tqcy9ub2RlczJzdHJpbmcuY3BwCShyZXZpc2lvbiAxNDQ4NCkKKysr
IEphdmFTY3JpcHRDb3JlL2tqcy9ub2RlczJzdHJpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
MjMsMTIgKzUyMyw2IEBAIHZvaWQgQ29tbWFOb2RlOjpzdHJlYW1UbyhTb3VyY2VTdHJlYW0gJnMK
ICAgcyA8PCBleHByMSA8PCAiLCAiIDw8IGV4cHIyOwogfQogCi12b2lkIFN0YXRMaXN0Tm9kZTo6
c3RyZWFtVG8oU291cmNlU3RyZWFtICZzKSBjb25zdAotewotICBmb3IgKGNvbnN0IFN0YXRMaXN0
Tm9kZSAqbiA9IHRoaXM7IG47IG4gPSBuLT5uZXh0LmdldCgpKQotICAgIHMgPDwgbi0+c3RhdGVt
ZW50OwotfQotCiB2b2lkIEFzc2lnbkV4cHJOb2RlOjpzdHJlYW1UbyhTb3VyY2VTdHJlYW0gJnMp
IGNvbnN0CiB7CiAgIHMgPDwgIiA9ICIgPDwgZXhwcjsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tq
cy9ub2Rlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL25vZGVzLmNwcAko
cmV2aXNpb24gMTQ0ODQpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNTA4LDU3ICsxNTA4LDYgQEAgSlNWYWx1ZSAqQ29tbWFOb2RlOjpldmFsdWF0
ZShFeGVjU3RhdGUgKgogICByZXR1cm4gdjsKIH0KIAotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIFN0YXRMaXN0Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LQotU3RhdExpc3ROb2RlOjpTdGF0TGlzdE5vZGUoU3RhdGVtZW50Tm9kZSAqcykKLSAgOiBzdGF0
ZW1lbnQocyksIG5leHQodGhpcykKLXsKLSAgICBQYXJzZXI6Om5vdGVOb2RlQ3ljbGUodGhpcyk7
Ci0gICAgc2V0TG9jKHMtPmZpcnN0TGluZSgpLCBzLT5sYXN0TGluZSgpKTsKLX0KLSAKLVN0YXRM
aXN0Tm9kZTo6U3RhdExpc3ROb2RlKFN0YXRMaXN0Tm9kZSAqbCwgU3RhdGVtZW50Tm9kZSAqcykK
LSAgOiBzdGF0ZW1lbnQocyksIG5leHQobC0+bmV4dCkKLXsKLSAgbC0+bmV4dCA9IHRoaXM7Ci0g
IHNldExvYyhsLT5maXJzdExpbmUoKSwgcy0+bGFzdExpbmUoKSk7Ci19Ci0KLS8vIEVDTUEgMTIu
MQotQ29tcGxldGlvbiBTdGF0TGlzdE5vZGU6OmV4ZWN1dGUoRXhlY1N0YXRlICpleGVjKQotewot
ICBDb21wbGV0aW9uIGMgPSBzdGF0ZW1lbnQtPmV4ZWN1dGUoZXhlYyk7Ci0gIEtKU19BQk9SVFBP
SU5UCi0gIGlmIChjLmNvbXBsVHlwZSgpICE9IE5vcm1hbCkKLSAgICByZXR1cm4gYzsKLSAgCi0g
IEpTVmFsdWUgKnYgPSBjLnZhbHVlKCk7Ci0gIAotICBmb3IgKFN0YXRMaXN0Tm9kZSAqbiA9IG5l
eHQuZ2V0KCk7IG47IG4gPSBuLT5uZXh0LmdldCgpKSB7Ci0gICAgQ29tcGxldGlvbiBjMiA9IG4t
PnN0YXRlbWVudC0+ZXhlY3V0ZShleGVjKTsKLSAgICBLSlNfQUJPUlRQT0lOVAotICAgIGlmIChj
Mi5jb21wbFR5cGUoKSAhPSBOb3JtYWwpCi0gICAgICByZXR1cm4gYzI7Ci0KLSAgICBpZiAoYzIu
aXNWYWx1ZUNvbXBsZXRpb24oKSkKLSAgICAgIHYgPSBjMi52YWx1ZSgpOwotICAgIGMgPSBjMjsK
LSAgfQotCi0gIHJldHVybiBDb21wbGV0aW9uKGMuY29tcGxUeXBlKCksIHYsIGMudGFyZ2V0KCkp
OwotfQotCi12b2lkIFN0YXRMaXN0Tm9kZTo6cHJvY2Vzc1ZhckRlY2xzKEV4ZWNTdGF0ZSAqZXhl
YykKLXsKLSAgZm9yIChTdGF0TGlzdE5vZGUgKm4gPSB0aGlzOyBuOyBuID0gbi0+bmV4dC5nZXQo
KSkKLSAgICBuLT5zdGF0ZW1lbnQtPnByb2Nlc3NWYXJEZWNscyhleGVjKTsKLX0KLQotdm9pZCBT
dGF0TGlzdE5vZGU6OmJyZWFrQ3ljbGUoKSAKLXsgCi0gICAgbmV4dCA9IDA7Ci19Ci0KIC8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBc3NpZ25FeHByTm9kZSAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAKIC8vIEVDTUEgMTIuMgpAQCAtMjA4Miw2ICsyMDMxLDEzIEBA
IHZvaWQgV2l0aE5vZGU6OnByb2Nlc3NWYXJEZWNscyhFeGVjU3RhdGUKIAogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIENhc2VDbGF1c2VOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAorQ2FzZUNsYXVzZU5vZGU6OkNhc2VDbGF1c2VOb2RlKE5vZGUgKmUsIFNv
dXJjZUVsZW1lbnRzTm9kZSAqbCkKKzogZXhwcihlKQorLCBuZXh0KGwtPm5leHQucmVsZWFzZSgp
KSAKK3sgCisgICAgUGFyc2VyOjpyZW1vdmVOb2RlQ3ljbGUobmV4dC5nZXQoKSk7IAorfQorCiAv
LyBFQ01BIDEyLjExCiBKU1ZhbHVlICpDYXNlQ2xhdXNlTm9kZTo6ZXZhbHVhdGUoRXhlY1N0YXRl
ICpleGVjKQogewpAQCAtMjA5NCw5ICsyMDUwLDEwIEBAIEpTVmFsdWUgKkNhc2VDbGF1c2VOb2Rl
OjpldmFsdWF0ZShFeGVjU3QKIC8vIEVDTUEgMTIuMTEKIENvbXBsZXRpb24gQ2FzZUNsYXVzZU5v
ZGU6OmV2YWxTdGF0ZW1lbnRzKEV4ZWNTdGF0ZSAqZXhlYykKIHsKLSAgaWYgKG5leHQpCisgIGlm
IChuZXh0KSB7CisgICAgbmV4dC0+cHJvY2Vzc0Z1bmNEZWNsKGV4ZWMpOwogICAgIHJldHVybiBu
ZXh0LT5leGVjdXRlKGV4ZWMpOwotICBlbHNlCisgIH0gZWxzZQogICAgIHJldHVybiBDb21wbGV0
aW9uKE5vcm1hbCwganNVbmRlZmluZWQoKSk7CiB9CiAKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tq
cy9ncmFtbWFyLnkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL2dyYW1tYXIueQko
cmV2aXNpb24gMTQ0ODQpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvZ3JhbW1hci55CSh3b3JraW5n
IGNvcHkpCkBAIC03Niw3ICs3Niw2IEBAIHN0YXRpYyBOb2RlICptYWtlRGVsZXRlTm9kZShOb2Rl
ICpleHByKTsKICAgUHJvZ3JhbU5vZGUgICAgICAgICAqcHJvZzsKICAgQXNzaWduRXhwck5vZGUg
ICAgICAqaW5pdDsKICAgU291cmNlRWxlbWVudHNOb2RlICAqc3JjczsKLSAgU3RhdExpc3ROb2Rl
ICAgICAgICAqc2xpc3Q7CiAgIEFyZ3VtZW50c05vZGUgICAgICAgKmFyZ3M7CiAgIEFyZ3VtZW50
TGlzdE5vZGUgICAgKmFsaXN0OwogICBWYXJEZWNsTm9kZSAgICAgICAgICpkZWNsOwpAQCAtMTY3
LDcgKzE2Niw2IEBAIHN0YXRpYyBOb2RlICptYWtlRGVsZXRlTm9kZShOb2RlICpleHByKTsKICV0
eXBlIDxzdGF0PiAgRGVidWdnZXJTdGF0ZW1lbnQKICV0eXBlIDxzdGF0PiAgU291cmNlRWxlbWVu
dAogCi0ldHlwZSA8c2xpc3Q+IFN0YXRlbWVudExpc3QKICV0eXBlIDxpbml0PiAgSW5pdGlhbGl6
ZXIgSW5pdGlhbGl6ZXJOb0luCiAldHlwZSA8ZnVuYz4gIEZ1bmN0aW9uRGVjbGFyYXRpb24KICV0
eXBlIDxmdW5jRXhwcj4gIEZ1bmN0aW9uRXhwcgpAQCAtNjM3LDExICs2MzUsNiBAQCBCbG9jazoK
ICAgfCAneycgU291cmNlRWxlbWVudHMgJ30nICAgICAgICAgICAgICB7ICQkID0gbmV3IEJsb2Nr
Tm9kZSgkMik7IERCRygkJCwgQDMsIEAzKTsgfQogOwogCi1TdGF0ZW1lbnRMaXN0OgotICAgIFN0
YXRlbWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBuZXcgU3RhdExpc3ROb2Rl
KCQxKTsgfQotICB8IFN0YXRlbWVudExpc3QgU3RhdGVtZW50ICAgICAgICAgICAgIHsgJCQgPSBu
ZXcgU3RhdExpc3ROb2RlKCQxLCAkMik7IH0KLTsKLQogVmFyaWFibGVTdGF0ZW1lbnQ6CiAgICAg
VkFSIFZhcmlhYmxlRGVjbGFyYXRpb25MaXN0ICc7JyAgICAgeyAkJCA9IG5ldyBWYXJTdGF0ZW1l
bnROb2RlKCQyKTsgREJHKCQkLCBAMSwgQDMpOyB9CiAgIHwgVkFSIFZhcmlhYmxlRGVjbGFyYXRp
b25MaXN0IGVycm9yICAgeyAkJCA9IG5ldyBWYXJTdGF0ZW1lbnROb2RlKCQyKTsgREJHKCQkLCBA
MSwgQDIpOyBBVVRPX1NFTUlDT0xPTjsgfQpAQCAtNzg3LDEyICs3ODAsMTIgQEAgQ2FzZUNsYXVz
ZXM6CiAKIENhc2VDbGF1c2U6CiAgICAgQ0FTRSBFeHByICc6JyAgICAgICAgICAgICAgICAgICAg
ICAgeyAkJCA9IG5ldyBDYXNlQ2xhdXNlTm9kZSgkMik7IH0KLSAgfCBDQVNFIEV4cHIgJzonIFN0
YXRlbWVudExpc3QgICAgICAgICB7ICQkID0gbmV3IENhc2VDbGF1c2VOb2RlKCQyLCAkNCk7IH0K
KyAgfCBDQVNFIEV4cHIgJzonIFNvdXJjZUVsZW1lbnRzICAgICAgICB7ICQkID0gbmV3IENhc2VD
bGF1c2VOb2RlKCQyLCAkNCk7IH0KIDsKIAogRGVmYXVsdENsYXVzZToKICAgICBERUZBVUxUICc6
JyAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gbmV3IENhc2VDbGF1c2VOb2RlKDApOyB9
Ci0gIHwgREVGQVVMVCAnOicgU3RhdGVtZW50TGlzdCAgICAgICAgICAgeyAkJCA9IG5ldyBDYXNl
Q2xhdXNlTm9kZSgwLCAkMyk7IH0KKyAgfCBERUZBVUxUICc6JyBTb3VyY2VFbGVtZW50cyAgICAg
ICAgICB7ICQkID0gbmV3IENhc2VDbGF1c2VOb2RlKDAsICQzKTsgfQogOwogCiBMYWJlbGxlZFN0
YXRlbWVudDoKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEphdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5oCShyZXZpc2lvbiAxNDQ4NCkKKysrIEphdmFTY3Jp
cHRDb3JlL2tqcy9ub2Rlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC03MzQsMjIgKzczNCw2IEBAIG5h
bWVzcGFjZSBLSlMgewogICAgIFJlZlB0cjxOb2RlPiBleHByMjsKICAgfTsKIAotICBjbGFzcyBT
dGF0TGlzdE5vZGUgOiBwdWJsaWMgU3RhdGVtZW50Tm9kZSB7Ci0gIHB1YmxpYzoKLSAgICAvLyBs
aXN0IHBvaW50ZXIgaXMgdGFpbCBvZiBhIGNpcmN1bGFyIGxpc3QsIGNyYWNrZWQgaW4gdGhlIENh
c2VDbGF1c2VOb2RlIGN0b3IKLSAgICBTdGF0TGlzdE5vZGUoU3RhdGVtZW50Tm9kZSAqcyk7Ci0g
ICAgU3RhdExpc3ROb2RlKFN0YXRMaXN0Tm9kZSAqbCwgU3RhdGVtZW50Tm9kZSAqcyk7Ci0gICAg
dmlydHVhbCBDb21wbGV0aW9uIGV4ZWN1dGUoRXhlY1N0YXRlKik7Ci0gICAgdmlydHVhbCB2b2lk
IHByb2Nlc3NWYXJEZWNscyhFeGVjU3RhdGUqKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RyZWFtVG8o
U291cmNlU3RyZWFtJikgY29uc3Q7Ci0gICAgUGFzc1JlZlB0cjxTdGF0TGlzdE5vZGU+IHJlbGVh
c2VOZXh0KCkgeyByZXR1cm4gbmV4dC5yZWxlYXNlKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgYnJl
YWtDeWNsZSgpOwotICBwcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBDYXNlQ2xhdXNlTm9kZTsK
LSAgICBSZWZQdHI8U3RhdGVtZW50Tm9kZT4gc3RhdGVtZW50OwotICAgIExpc3RSZWZQdHI8U3Rh
dExpc3ROb2RlPiBuZXh0OwotICB9OwotCiAgIGNsYXNzIEFzc2lnbkV4cHJOb2RlIDogcHVibGlj
IE5vZGUgewogICBwdWJsaWM6CiAgICAgQXNzaWduRXhwck5vZGUoTm9kZSAqZSkgOiBleHByKGUp
IHt9CkBAIC05MzUsMTYgKzkxOSwxNSBAQCBuYW1lc3BhY2UgS0pTIHsKIAogICBjbGFzcyBDYXNl
Q2xhdXNlTm9kZSA6IHB1YmxpYyBOb2RlIHsKICAgcHVibGljOgotICAgIENhc2VDbGF1c2VOb2Rl
KE5vZGUgKmUpIDogZXhwcihlKSB7IH0KLSAgICBDYXNlQ2xhdXNlTm9kZShOb2RlICplLCBTdGF0
TGlzdE5vZGUgKmwpCi0gICAgICA6IGV4cHIoZSksIG5leHQobC0+bmV4dC5yZWxlYXNlKCkpIHsg
UGFyc2VyOjpyZW1vdmVOb2RlQ3ljbGUobmV4dC5nZXQoKSk7IH0KKyAgICBDYXNlQ2xhdXNlTm9k
ZShOb2RlKiBlKSA6IGV4cHIoZSkgeyB9CisgICAgQ2FzZUNsYXVzZU5vZGUoTm9kZSosIFNvdXJj
ZUVsZW1lbnRzTm9kZSopOwogICAgIEpTVmFsdWUqIGV2YWx1YXRlKEV4ZWNTdGF0ZSopOwogICAg
IENvbXBsZXRpb24gZXZhbFN0YXRlbWVudHMoRXhlY1N0YXRlKik7CiAgICAgdmlydHVhbCB2b2lk
IHByb2Nlc3NWYXJEZWNscyhFeGVjU3RhdGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgc3RyZWFtVG8o
U291cmNlU3RyZWFtJikgY29uc3Q7CiAgIHByaXZhdGU6CiAgICAgUmVmUHRyPE5vZGU+IGV4cHI7
Ci0gICAgUmVmUHRyPFN0YXRMaXN0Tm9kZT4gbmV4dDsKKyAgICBSZWZQdHI8U291cmNlRWxlbWVu
dHNOb2RlPiBuZXh0OwogICB9OwogCiAgIGNsYXNzIENsYXVzZUxpc3ROb2RlIDogcHVibGljIE5v
ZGUgewpAQCAtMTEwMCw2ICsxMDgzLDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgdmlydHVhbCB2
b2lkIGJyZWFrQ3ljbGUoKTsKICAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgQmxvY2tOb2Rl
OworICAgIGZyaWVuZCBjbGFzcyBDYXNlQ2xhdXNlTm9kZTsKICAgICBSZWZQdHI8U3RhdGVtZW50
Tm9kZT4gbm9kZTsKICAgICBMaXN0UmVmUHRyPFNvdXJjZUVsZW1lbnRzTm9kZT4gbmV4dDsKICAg
fTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NDk4KQorKysgSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMDYtMDUtMTkgIEdlb2Zm
cmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAtIEZpeGVkIGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2lu
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk5MworICAgICAgICBTdXBwb3J0IGZ1bmN0aW9uIGRlY2xh
cmF0aW9uIGluIGNhc2Ugc3RhdGVtZW50cworCisgICAgICAgIFRoZSBrZXkgY2hhbmdlIGhlcmUg
aXMgdG8gdHJlYXQgdGhlIHN0YXRlbWVudHMgaW5zaWRlIGEgY2FzZQorICAgICAgICBjbGF1c2Ug
YXMgJ1NvdXJjZUVsZW1lbnRzJyBpbnN0ZWFkIG9mICdTdGF0TGlzdCcuIFRoaXMgaXMgc29tZXdo
YXQKKyAgICAgICAgYW5hbG9nb3VzIHRvIHByZXRlbmRpbmcgdGhhdCB0aGUgc3RhdGVtZW50cyBp
biBhIGNhc2UgY2xhdXNlIGFyZQorICAgICAgICBhbHdheXMgc3Vycm91bmRlZCBieSAneycgYW5k
ICd9JyBicmFjZXMuCisKKyAgICAgICAgVGhlIHJlc3Qgb2YgdGhpcyBwYXRjaCBqdXN0IHJlbW92
ZXMgJ1N0YXRMaXN0JyBmcm9tIHRoZSBncmFtbWFyIGFuZAorICAgICAgICBmaW5hZ2xlcyB0aGlu
Z3MgdG8gY29tcGlsZS4KKworICAgICAgICAwIHJlZ3Jlc3Npb25zIGZvdW5kLgorICAgICAgICAw
IHRlc3RzIGZpeGVkLgorCisgICAgICAgICoga2pzL2dyYW1tYXIueToKKyAgICAgICAgKiBranMv
bm9kZXMuY3BwOgorICAgICAgICAoQ2FzZUNsYXVzZU5vZGU6OkNhc2VDbGF1c2VOb2RlKToKKyAg
ICAgICAgKENhc2VDbGF1c2VOb2RlOjpldmFsU3RhdGVtZW50cyk6CisgICAgICAgICoga2pzL25v
ZGVzLmg6CisgICAgICAgIChLSlM6OkNhc2VDbGF1c2VOb2RlOjpDYXNlQ2xhdXNlTm9kZSk6Cisg
ICAgICAgICoga2pzL25vZGVzMnN0cmluZy5jcHA6CisKIDIwMDYtMDUtMTcgIEdlb3JnZSBTdGFp
a29zIDxzdGFpa29zQGtkZS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqLCBBbGV4
ZXksIGFuZCBFcmljLgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ0OTcpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAwNi0wNS0xOSAgR2Vv
ZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAgICAgIExheW91dCB0ZXN0IGZv
ciBodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTg5OTMKKyAg
ICAgICAgU3VwcG9ydCBmdW5jdGlvbiBkZWNsYXJhdGlvbiBpbiBjYXNlIHN0YXRlbWVudHMKKyAg
ICAgICAgCisgICAgICAgICogZmFzdC9qcy9jYXNlLXN0YXRlbWVudC1mdW5jdGlvbi1kZWNsYXJh
dGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvY2FzZS1zdGF0ZW1l
bnQtZnVuY3Rpb24tZGVjbGFyYXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9y
ZXNvdXJjZXMvY2FzZS1zdGF0ZW1lbnQtZnVuY3Rpb24tZGVjbGFyYXRpb24uanM6IEFkZGVkLgor
CiAyMDA2LTA1LTE3ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgLSBUZXN0IGZvciBvdmVycmlkaW5nIG5vbi1hdXRvZ2VuZXJhdGVkIGdsb2JhbCBjb25zdHJ1
Y3RvcnMuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9jYXNlLXN0YXRlbWVu
dC1mdW5jdGlvbi1kZWNsYXJhdGlvbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2pzL3Jlc291cmNlcy9jYXNlLXN0YXRlbWVudC1mdW5jdGlvbi1kZWNsYXJhdGlvbi5qcwkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2Nhc2Utc3RhdGVtZW50
LWZ1bmN0aW9uLWRlY2xhcmF0aW9uLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIxIEBACitk
ZXNjcmlwdGlvbigiVGhpcyBwYWdlIHRlc3RzIGRlY2xhcmF0aW9uIG9mIGEgZnVuY3Rpb24gaW5z
aWRlIGEgc3dpdGNoIHN0YXRlbWVudCdzICdjYXNlJyBibG9jay4iKTsKKworZnVuY3Rpb24gZigp
IHsKKyAgICBkZWJ1ZygnRkFJTCBGdW5jdGlvbiBub3QgZGVjbGFyZWQgaW5zaWRlIGNhc2UgYmxv
Y2snLCAncmVkJyk7Cit9CisKK3N3aXRjaCh0cnVlKSB7CitjYXNlIHRydWU6CisgICAgZnVuY3Rp
b24gZigpIHsKKyAgICAgICAgZGVidWcoJ1BBU1MgRnVuY3Rpb24gZGVjbGFyZWQgaW5zaWRlIGNh
c2UgYmxvY2snLCAnZ3JlZW4nKTsKKyAgICB9CisgICAgYnJlYWs7CitkZWZhdWx0OgorICAgIGZ1
bmN0aW9uIGYoKSB7CisgICAgICAgIGRlYnVnKCdGQUlMIEZ1bmN0aW9uIGRlY2xhcmVkIGluc2lk
ZSBjYXNlIGJsb2NrIHRoYXQgZGlkIG5vdCBleGVjdXRlJywgJ3JlZCcpOworICAgIH0KK30KKwor
ZigpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvanMvY2FzZS1zdGF0ZW1lbnQtZnVuY3Rpb24tZGVjbGFyYXRpb24tZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvY2FzZS1zdGF0ZW1lbnQtZnVuY3Rp
b24tZGVjbGFyYXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9qcy9jYXNlLXN0YXRlbWVudC1mdW5jdGlvbi1kZWNsYXJhdGlvbi1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgcGFnZSB0ZXN0cyBkZWNsYXJhdGlv
biBvZiBhIGZ1bmN0aW9uIGluc2lkZSBhIHN3aXRjaCBzdGF0ZW1lbnQncyAnY2FzZScgYmxvY2su
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIEZ1bmN0aW9uIGRlY2xhcmVk
IGluc2lkZSBjYXNlIGJsb2NrCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9jYXNlLXN0YXRlbWVudC1m
dW5jdGlvbi1kZWNsYXJhdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
anMvY2FzZS1zdGF0ZW1lbnQtZnVuY3Rpb24tZGVjbGFyYXRpb24uaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvanMvY2FzZS1zdGF0ZW1lbnQtZnVuY3Rpb24tZGVjbGFyYXRp
b24uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9jYXNlLXN0YXRlbWVudC1mdW5jdGlvbi1kZWNsYXJhdGlvbi5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8429</attachid>
            <date>2006-05-20 01:15:11 -0700</date>
            <delta_ts>2006-05-20 01:19:55 -0700</delta_ts>
            <desc>My implementation, for reference</desc>
            <filename>function-declarations-in-case.txt</filename>
            <type>text/plain</type>
            <size>2960</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE0NDk5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShhcmJl
dHNrb3BpYSkKQEAgLTEsMyArMSwxMyBAQAorPDw8PDw8PCAubWluZQorMjAwNi0wNS0xOSAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAbWFjLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvanMvZnVuY3Rpb24tZGVjbGFyYXRpb25z
LWluLXN3aXRjaC1zdGF0ZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2pzL2Z1bmN0aW9uLWRlY2xhcmF0aW9ucy1pbi1zd2l0Y2gtc3RhdGVtZW50Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvanMvcmVzb3VyY2VzL2Z1bmN0aW9uLWRlY2xhcmF0aW9ucy1pbi1z
d2l0Y2gtc3RhdGVtZW50LmpzOiBBZGRlZC4KKworPT09PT09PQogMjAwNi0wNS0xOSAgTGV2aSBX
ZWludHJhdWIgIDxsd2VpbnRyYXViQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBq
dXN0aW4uCkBAIC0xOCw2ICsyOCw3IEBACiAgICAgICAgICogZmFzdC9kb20vY29uc3RydWN0b3Jz
LW92ZXJyaWRpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KICAgICAgICAgKiBmYXN0L2RvbS9jb25z
dHJ1Y3RvcnMtb3ZlcnJpZGluZy5odG1sOiBBZGRlZC4KIAorPj4+Pj4+PiAucjE0NDk5CiAyMDA2
LTA1LTE4ICBTYW0gV2VpbmlnICA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgSHlhdHQuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9mdW5j
dGlvbi1kZWNsYXJhdGlvbnMtaW4tc3dpdGNoLXN0YXRlbWVudC5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9mdW5jdGlvbi1kZWNsYXJhdGlvbnMtaW4tc3dp
dGNoLXN0YXRlbWVudC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVz
b3VyY2VzL2Z1bmN0aW9uLWRlY2xhcmF0aW9ucy1pbi1zd2l0Y2gtc3RhdGVtZW50LmpzCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDI2IEBACitmdW5jdGlvbiB0KG4pIHsKKyAgICBzd2l0Y2ggKG4p
IHsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgZnVuY3Rpb24gZigpIHsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gMTA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAyOgorICAgICAgICAgICAgZnVuY3Rpb24gZigpIHsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gMjA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisK
KyAgICB0cnkgeworICAgICAgcmV0dXJuIGYoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICBy
ZXR1cm4gLTE7CisgICAgfQorfQorCitzaG91bGRCZSh0KDEpLCAnMjAnKTsKK3Nob3VsZEJlKHQo
MiksICcyMCcpOworc2hvdWxkQmUodCgzKSwgJzIwJyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9mdW5jdGlvbi1kZWNsYXJhdGlv
bnMtaW4tc3dpdGNoLXN0YXRlbWVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9qcy9mdW5jdGlvbi1kZWNsYXJhdGlvbnMtaW4tc3dpdGNoLXN0YXRlbWVudC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2Z1bmN0aW9u
LWRlY2xhcmF0aW9ucy1pbi1zd2l0Y2gtc3RhdGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxMCBAQAorV0FSTjogc2hvdWxkQmUoKSBleHBlY3RzIHN0cmluZyBhcmd1
bWVudHMKK1BBU1MgMjAgaXMgMjAKK1dBUk46IHNob3VsZEJlKCkgZXhwZWN0cyBzdHJpbmcgYXJn
dW1lbnRzCitQQVNTIDIwIGlzIDIwCitXQVJOOiBzaG91bGRCZSgpIGV4cGVjdHMgc3RyaW5nIGFy
Z3VtZW50cworUEFTUyAyMCBpcyAyMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvZnVuY3Rpb24tZGVj
bGFyYXRpb25zLWluLXN3aXRjaC1zdGF0ZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2pzL2Z1bmN0aW9uLWRlY2xhcmF0aW9ucy1pbi1zd2l0Y2gtc3RhdGVtZW50Lmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2Z1bmN0aW9uLWRlY2xhcmF0
aW9ucy1pbi1zd2l0Y2gtc3RhdGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZnVuY3Rpb24tZGVjbGFy
YXRpb25zLWluLXN3aXRjaC1zdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8430</attachid>
            <date>2006-05-20 01:19:55 -0700</date>
            <delta_ts>2006-05-20 11:36:26 -0700</delta_ts>
            <desc>Actually include the code changes </desc>
            <filename>function-declarations-in-case.txt</filename>
            <type>text/plain</type>
            <size>16233</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9ub2RlczJzdHJpbmcuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEphdmFTY3JpcHRDb3JlL2tqcy9ub2RlczJzdHJpbmcuY3BwCShyZXZpc2lvbiAxNDQ5OSkKKysr
IEphdmFTY3JpcHRDb3JlL2tqcy9ub2RlczJzdHJpbmcuY3BwCShhcmJldHNrb3BpYSkKQEAgLTUy
MywxMiArNTIzLDYgQEAgdm9pZCBDb21tYU5vZGU6OnN0cmVhbVRvKFNvdXJjZVN0cmVhbSAmcwog
ICBzIDw8IGV4cHIxIDw8ICIsICIgPDwgZXhwcjI7CiB9CiAKLXZvaWQgU3RhdExpc3ROb2RlOjpz
dHJlYW1UbyhTb3VyY2VTdHJlYW0gJnMpIGNvbnN0Ci17Ci0gIGZvciAoY29uc3QgU3RhdExpc3RO
b2RlICpuID0gdGhpczsgbjsgbiA9IG4tPm5leHQuZ2V0KCkpCi0gICAgcyA8PCBuLT5zdGF0ZW1l
bnQ7Ci19Ci0KIHZvaWQgQXNzaWduRXhwck5vZGU6OnN0cmVhbVRvKFNvdXJjZVN0cmVhbSAmcykg
Y29uc3QKIHsKICAgcyA8PCAiID0gIiA8PCBleHByOwpAQCAtNjUwLDggKzY0NCw4IEBAIHZvaWQg
Q2FzZUNsYXVzZU5vZGU6OnN0cmVhbVRvKFNvdXJjZVN0cmUKICAgZWxzZQogICAgIHMgPDwgImRl
ZmF1bHQiOwogICBzIDw8ICI6IiA8PCBTb3VyY2VTdHJlYW06OkluZGVudDsKLSAgaWYgKG5leHQp
Ci0gICAgcyA8PCBuZXh0OworICBpZiAoc291cmNlKQorICAgIHMgPDwgc291cmNlOwogICBzIDw8
IFNvdXJjZVN0cmVhbTo6VW5pbmRlbnQ7CiB9CiAKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9u
b2Rlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL25vZGVzLmNwcAkocmV2
aXNpb24gMTQ0OTkpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuY3BwCShhcmJldHNrb3Bp
YSkKQEAgLTE1MDgsNTcgKzE1MDgsNiBAQCBKU1ZhbHVlICpDb21tYU5vZGU6OmV2YWx1YXRlKEV4
ZWNTdGF0ZSAqCiAgIHJldHVybiB2OwogfQogCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gU3RhdExpc3ROb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1T
dGF0TGlzdE5vZGU6OlN0YXRMaXN0Tm9kZShTdGF0ZW1lbnROb2RlICpzKQotICA6IHN0YXRlbWVu
dChzKSwgbmV4dCh0aGlzKQotewotICAgIFBhcnNlcjo6bm90ZU5vZGVDeWNsZSh0aGlzKTsKLSAg
ICBzZXRMb2Mocy0+Zmlyc3RMaW5lKCksIHMtPmxhc3RMaW5lKCkpOwotfQotIAotU3RhdExpc3RO
b2RlOjpTdGF0TGlzdE5vZGUoU3RhdExpc3ROb2RlICpsLCBTdGF0ZW1lbnROb2RlICpzKQotICA6
IHN0YXRlbWVudChzKSwgbmV4dChsLT5uZXh0KQotewotICBsLT5uZXh0ID0gdGhpczsKLSAgc2V0
TG9jKGwtPmZpcnN0TGluZSgpLCBzLT5sYXN0TGluZSgpKTsKLX0KLQotLy8gRUNNQSAxMi4xCi1D
b21wbGV0aW9uIFN0YXRMaXN0Tm9kZTo6ZXhlY3V0ZShFeGVjU3RhdGUgKmV4ZWMpCi17Ci0gIENv
bXBsZXRpb24gYyA9IHN0YXRlbWVudC0+ZXhlY3V0ZShleGVjKTsKLSAgS0pTX0FCT1JUUE9JTlQK
LSAgaWYgKGMuY29tcGxUeXBlKCkgIT0gTm9ybWFsKQotICAgIHJldHVybiBjOwotICAKLSAgSlNW
YWx1ZSAqdiA9IGMudmFsdWUoKTsKLSAgCi0gIGZvciAoU3RhdExpc3ROb2RlICpuID0gbmV4dC5n
ZXQoKTsgbjsgbiA9IG4tPm5leHQuZ2V0KCkpIHsKLSAgICBDb21wbGV0aW9uIGMyID0gbi0+c3Rh
dGVtZW50LT5leGVjdXRlKGV4ZWMpOwotICAgIEtKU19BQk9SVFBPSU5UCi0gICAgaWYgKGMyLmNv
bXBsVHlwZSgpICE9IE5vcm1hbCkKLSAgICAgIHJldHVybiBjMjsKLQotICAgIGlmIChjMi5pc1Zh
bHVlQ29tcGxldGlvbigpKQotICAgICAgdiA9IGMyLnZhbHVlKCk7Ci0gICAgYyA9IGMyOwotICB9
Ci0KLSAgcmV0dXJuIENvbXBsZXRpb24oYy5jb21wbFR5cGUoKSwgdiwgYy50YXJnZXQoKSk7Ci19
Ci0KLXZvaWQgU3RhdExpc3ROb2RlOjpwcm9jZXNzVmFyRGVjbHMoRXhlY1N0YXRlICpleGVjKQot
ewotICBmb3IgKFN0YXRMaXN0Tm9kZSAqbiA9IHRoaXM7IG47IG4gPSBuLT5uZXh0LmdldCgpKQot
ICAgIG4tPnN0YXRlbWVudC0+cHJvY2Vzc1ZhckRlY2xzKGV4ZWMpOwotfQotCi12b2lkIFN0YXRM
aXN0Tm9kZTo6YnJlYWtDeWNsZSgpIAoteyAKLSAgICBuZXh0ID0gMDsKLX0KLQogLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFzc2lnbkV4cHJOb2RlIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIAogLy8gRUNNQSAxMi4yCkBAIC0yMDk0LDE2ICsyMDQzLDIyIEBAIEpT
VmFsdWUgKkNhc2VDbGF1c2VOb2RlOjpldmFsdWF0ZShFeGVjU3QKIC8vIEVDTUEgMTIuMTEKIENv
bXBsZXRpb24gQ2FzZUNsYXVzZU5vZGU6OmV2YWxTdGF0ZW1lbnRzKEV4ZWNTdGF0ZSAqZXhlYykK
IHsKLSAgaWYgKG5leHQpCi0gICAgcmV0dXJuIG5leHQtPmV4ZWN1dGUoZXhlYyk7CisgIGlmIChz
b3VyY2UpCisgICAgcmV0dXJuIHNvdXJjZS0+ZXhlY3V0ZShleGVjKTsKICAgZWxzZQogICAgIHJl
dHVybiBDb21wbGV0aW9uKE5vcm1hbCwganNVbmRlZmluZWQoKSk7CiB9CiAKIHZvaWQgQ2FzZUNs
YXVzZU5vZGU6OnByb2Nlc3NWYXJEZWNscyhFeGVjU3RhdGUgKmV4ZWMpCiB7Ci0gIGlmIChuZXh0
KQotICAgIG5leHQtPnByb2Nlc3NWYXJEZWNscyhleGVjKTsKKyAgaWYgKHNvdXJjZSkKKyAgICBz
b3VyY2UtPnByb2Nlc3NWYXJEZWNscyhleGVjKTsKK30KKwordm9pZCBDYXNlQ2xhdXNlTm9kZTo6
cHJvY2Vzc0Z1bmNEZWNsKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgaWYgKHNvdXJjZSkKKyAgICAg
IHNvdXJjZS0+cHJvY2Vzc0Z1bmNEZWNsKGV4ZWMpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0gQ2xhdXNlTGlzdE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQpAQCAtMjEyMyw2ICsyMDc4LDEzIEBAIHZvaWQgQ2xhdXNlTGlzdE5vZGU6OnByb2Nlc3NW
YXJEZWNscyhFeGUKICAgICAgIG4tPmNsYXVzZS0+cHJvY2Vzc1ZhckRlY2xzKGV4ZWMpOwogfQog
Cit2b2lkIENsYXVzZUxpc3ROb2RlOjpwcm9jZXNzRnVuY0RlY2woRXhlY1N0YXRlKiBleGVjKQor
eworICBmb3IgKENsYXVzZUxpc3ROb2RlKiBuID0gdGhpczsgbjsgbiA9IG4tPm5leHQuZ2V0KCkp
CisgICAgaWYgKG4tPmNsYXVzZSkKKyAgICAgIG4tPmNsYXVzZS0+cHJvY2Vzc0Z1bmNEZWNsKGV4
ZWMpOworfQorCiB2b2lkIENsYXVzZUxpc3ROb2RlOjpicmVha0N5Y2xlKCkgCiB7IAogICAgIG5l
eHQgPSAwOwpAQCAtMjIzMCw2ICsyMTkyLDE2IEBAIHZvaWQgQ2FzZUJsb2NrTm9kZTo6cHJvY2Vz
c1ZhckRlY2xzKEV4ZWMKICAgICBsaXN0Mi0+cHJvY2Vzc1ZhckRlY2xzKGV4ZWMpOwogfQogCit2
b2lkIENhc2VCbG9ja05vZGU6OnByb2Nlc3NGdW5jRGVjbChFeGVjU3RhdGUqIGV4ZWMpCit7Cisg
IGlmIChsaXN0MSkKKyAgIGxpc3QxLT5wcm9jZXNzRnVuY0RlY2woZXhlYyk7CisgIGlmIChkZWYp
CisgICAgZGVmLT5wcm9jZXNzRnVuY0RlY2woZXhlYyk7CisgIGlmIChsaXN0MikKKyAgICBsaXN0
Mi0+cHJvY2Vzc0Z1bmNEZWNsKGV4ZWMpOworfQorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gU3dpdGNoTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
CiAvLyBFQ01BIDEyLjExCkBAIC0yMjU0LDYgKzIyMjYsMTEgQEAgdm9pZCBTd2l0Y2hOb2RlOjpw
cm9jZXNzVmFyRGVjbHMoRXhlY1N0YQogICBibG9jay0+cHJvY2Vzc1ZhckRlY2xzKGV4ZWMpOwog
fQogCit2b2lkIFN3aXRjaE5vZGU6OnByb2Nlc3NGdW5jRGVjbChFeGVjU3RhdGUqIGV4ZWMpCit7
CisgIGJsb2NrLT5wcm9jZXNzRnVuY0RlY2woZXhlYyk7Cit9CisKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSBMYWJlbE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAKIC8vIEVDTUEgMTIuMTIKSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9ncmFtbWFy
LnkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL2dyYW1tYXIueQkocmV2aXNpb24g
MTQ0OTkpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvZ3JhbW1hci55CShhcmJldHNrb3BpYSkKQEAg
LTc2LDcgKzc2LDYgQEAgc3RhdGljIE5vZGUgKm1ha2VEZWxldGVOb2RlKE5vZGUgKmV4cHIpOwog
ICBQcm9ncmFtTm9kZSAgICAgICAgICpwcm9nOwogICBBc3NpZ25FeHByTm9kZSAgICAgICppbml0
OwogICBTb3VyY2VFbGVtZW50c05vZGUgICpzcmNzOwotICBTdGF0TGlzdE5vZGUgICAgICAgICpz
bGlzdDsKICAgQXJndW1lbnRzTm9kZSAgICAgICAqYXJnczsKICAgQXJndW1lbnRMaXN0Tm9kZSAg
ICAqYWxpc3Q7CiAgIFZhckRlY2xOb2RlICAgICAgICAgKmRlY2w7CkBAIC0xNjcsNyArMTY2LDYg
QEAgc3RhdGljIE5vZGUgKm1ha2VEZWxldGVOb2RlKE5vZGUgKmV4cHIpOwogJXR5cGUgPHN0YXQ+
ICBEZWJ1Z2dlclN0YXRlbWVudAogJXR5cGUgPHN0YXQ+ICBTb3VyY2VFbGVtZW50CiAKLSV0eXBl
IDxzbGlzdD4gU3RhdGVtZW50TGlzdAogJXR5cGUgPGluaXQ+ICBJbml0aWFsaXplciBJbml0aWFs
aXplck5vSW4KICV0eXBlIDxmdW5jPiAgRnVuY3Rpb25EZWNsYXJhdGlvbgogJXR5cGUgPGZ1bmNF
eHByPiAgRnVuY3Rpb25FeHByCkBAIC02MzcsMTEgKzYzNSw2IEBAIEJsb2NrOgogICB8ICd7JyBT
b3VyY2VFbGVtZW50cyAnfScgICAgICAgICAgICAgIHsgJCQgPSBuZXcgQmxvY2tOb2RlKCQyKTsg
REJHKCQkLCBAMywgQDMpOyB9CiA7CiAKLVN0YXRlbWVudExpc3Q6Ci0gICAgU3RhdGVtZW50ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IG5ldyBTdGF0TGlzdE5vZGUoJDEpOyB9Ci0g
IHwgU3RhdGVtZW50TGlzdCBTdGF0ZW1lbnQgICAgICAgICAgICAgeyAkJCA9IG5ldyBTdGF0TGlz
dE5vZGUoJDEsICQyKTsgfQotOwotCiBWYXJpYWJsZVN0YXRlbWVudDoKICAgICBWQVIgVmFyaWFi
bGVEZWNsYXJhdGlvbkxpc3QgJzsnICAgICB7ICQkID0gbmV3IFZhclN0YXRlbWVudE5vZGUoJDIp
OyBEQkcoJCQsIEAxLCBAMyk7IH0KICAgfCBWQVIgVmFyaWFibGVEZWNsYXJhdGlvbkxpc3QgZXJy
b3IgICB7ICQkID0gbmV3IFZhclN0YXRlbWVudE5vZGUoJDIpOyBEQkcoJCQsIEAxLCBAMik7IEFV
VE9fU0VNSUNPTE9OOyB9CkBAIC03ODcsMTIgKzc4MCwxMiBAQCBDYXNlQ2xhdXNlczoKIAogQ2Fz
ZUNsYXVzZToKICAgICBDQVNFIEV4cHIgJzonICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0g
bmV3IENhc2VDbGF1c2VOb2RlKCQyKTsgfQotICB8IENBU0UgRXhwciAnOicgU3RhdGVtZW50TGlz
dCAgICAgICAgIHsgJCQgPSBuZXcgQ2FzZUNsYXVzZU5vZGUoJDIsICQ0KTsgfQorICB8IENBU0Ug
RXhwciAnOicgU291cmNlRWxlbWVudHMgICAgICAgIHsgJCQgPSBuZXcgQ2FzZUNsYXVzZU5vZGUo
JDIsICQ0KTsgfQogOwogCiBEZWZhdWx0Q2xhdXNlOgogICAgIERFRkFVTFQgJzonICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgJCQgPSBuZXcgQ2FzZUNsYXVzZU5vZGUoMCk7IH0KLSAgfCBERUZB
VUxUICc6JyBTdGF0ZW1lbnRMaXN0ICAgICAgICAgICB7ICQkID0gbmV3IENhc2VDbGF1c2VOb2Rl
KDAsICQzKTsgfQorICB8IERFRkFVTFQgJzonIFNvdXJjZUVsZW1lbnRzICAgICAgICAgIHsgJCQg
PSBuZXcgQ2FzZUNsYXVzZU5vZGUoMCwgJDMpOyB9CiA7CiAKIExhYmVsbGVkU3RhdGVtZW50OgpJ
bmRleDogSmF2YVNjcmlwdENvcmUva2pzL25vZGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlw
dENvcmUva2pzL25vZGVzLmgJKHJldmlzaW9uIDE0NDk5KQorKysgSmF2YVNjcmlwdENvcmUva2pz
L25vZGVzLmgJKGFyYmV0c2tvcGlhKQpAQCAtNzM0LDIyICs3MzQsNiBAQCBuYW1lc3BhY2UgS0pT
IHsKICAgICBSZWZQdHI8Tm9kZT4gZXhwcjI7CiAgIH07CiAKLSAgY2xhc3MgU3RhdExpc3ROb2Rl
IDogcHVibGljIFN0YXRlbWVudE5vZGUgewotICBwdWJsaWM6Ci0gICAgLy8gbGlzdCBwb2ludGVy
IGlzIHRhaWwgb2YgYSBjaXJjdWxhciBsaXN0LCBjcmFja2VkIGluIHRoZSBDYXNlQ2xhdXNlTm9k
ZSBjdG9yCi0gICAgU3RhdExpc3ROb2RlKFN0YXRlbWVudE5vZGUgKnMpOwotICAgIFN0YXRMaXN0
Tm9kZShTdGF0TGlzdE5vZGUgKmwsIFN0YXRlbWVudE5vZGUgKnMpOwotICAgIHZpcnR1YWwgQ29t
cGxldGlvbiBleGVjdXRlKEV4ZWNTdGF0ZSopOwotICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzVmFy
RGVjbHMoRXhlY1N0YXRlKik7Ci0gICAgdmlydHVhbCB2b2lkIHN0cmVhbVRvKFNvdXJjZVN0cmVh
bSYpIGNvbnN0OwotICAgIFBhc3NSZWZQdHI8U3RhdExpc3ROb2RlPiByZWxlYXNlTmV4dCgpIHsg
cmV0dXJuIG5leHQucmVsZWFzZSgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGJyZWFrQ3ljbGUoKTsK
LSAgcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgQ2FzZUNsYXVzZU5vZGU7Ci0gICAgUmVmUHRy
PFN0YXRlbWVudE5vZGU+IHN0YXRlbWVudDsKLSAgICBMaXN0UmVmUHRyPFN0YXRMaXN0Tm9kZT4g
bmV4dDsKLSAgfTsKLQogICBjbGFzcyBBc3NpZ25FeHByTm9kZSA6IHB1YmxpYyBOb2RlIHsKICAg
cHVibGljOgogICAgIEFzc2lnbkV4cHJOb2RlKE5vZGUgKmUpIDogZXhwcihlKSB7fQpAQCAtOTMz
LDYzICs5MTcsNiBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICBSZWZQdHI8U3RhdGVtZW50Tm9kZT4g
c3RhdGVtZW50OwogICB9OwogCi0gIGNsYXNzIENhc2VDbGF1c2VOb2RlIDogcHVibGljIE5vZGUg
ewotICBwdWJsaWM6Ci0gICAgQ2FzZUNsYXVzZU5vZGUoTm9kZSAqZSkgOiBleHByKGUpIHsgfQot
ICAgIENhc2VDbGF1c2VOb2RlKE5vZGUgKmUsIFN0YXRMaXN0Tm9kZSAqbCkKLSAgICAgIDogZXhw
cihlKSwgbmV4dChsLT5uZXh0LnJlbGVhc2UoKSkgeyBQYXJzZXI6OnJlbW92ZU5vZGVDeWNsZShu
ZXh0LmdldCgpKTsgfQotICAgIEpTVmFsdWUqIGV2YWx1YXRlKEV4ZWNTdGF0ZSopOwotICAgIENv
bXBsZXRpb24gZXZhbFN0YXRlbWVudHMoRXhlY1N0YXRlKik7Ci0gICAgdmlydHVhbCB2b2lkIHBy
b2Nlc3NWYXJEZWNscyhFeGVjU3RhdGUqKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RyZWFtVG8oU291
cmNlU3RyZWFtJikgY29uc3Q7Ci0gIHByaXZhdGU6Ci0gICAgUmVmUHRyPE5vZGU+IGV4cHI7Ci0g
ICAgUmVmUHRyPFN0YXRMaXN0Tm9kZT4gbmV4dDsKLSAgfTsKLQotICBjbGFzcyBDbGF1c2VMaXN0
Tm9kZSA6IHB1YmxpYyBOb2RlIHsKLSAgcHVibGljOgotICAgIC8vIGxpc3QgcG9pbnRlciBpcyB0
YWlsIG9mIGEgY2lyY3VsYXIgbGlzdCwgY3JhY2tlZCBpbiB0aGUgQ2FzZUJsb2NrTm9kZSBjdG9y
Ci0gICAgQ2xhdXNlTGlzdE5vZGUoQ2FzZUNsYXVzZU5vZGUgKmMpIDogY2xhdXNlKGMpLCBuZXh0
KHRoaXMpIHsgUGFyc2VyOjpub3RlTm9kZUN5Y2xlKHRoaXMpOyB9Ci0gICAgQ2xhdXNlTGlzdE5v
ZGUoQ2xhdXNlTGlzdE5vZGUgKm4sIENhc2VDbGF1c2VOb2RlICpjKQotICAgICAgOiBjbGF1c2Uo
YyksIG5leHQobi0+bmV4dCkgeyBuLT5uZXh0ID0gdGhpczsgfQotICAgIEpTVmFsdWUqIGV2YWx1
YXRlKEV4ZWNTdGF0ZSopOwotICAgIENhc2VDbGF1c2VOb2RlICpnZXRDbGF1c2UoKSBjb25zdCB7
IHJldHVybiBjbGF1c2UuZ2V0KCk7IH0KLSAgICBDbGF1c2VMaXN0Tm9kZSAqZ2V0TmV4dCgpIGNv
bnN0IHsgcmV0dXJuIG5leHQuZ2V0KCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc1ZhckRl
Y2xzKEV4ZWNTdGF0ZSopOwotICAgIHZpcnR1YWwgdm9pZCBzdHJlYW1UbyhTb3VyY2VTdHJlYW0m
KSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPENsYXVzZUxpc3ROb2RlPiByZWxlYXNlTmV4dCgpIHsg
cmV0dXJuIG5leHQucmVsZWFzZSgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGJyZWFrQ3ljbGUoKTsK
LSAgcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgQ2FzZUJsb2NrTm9kZTsKLSAgICBSZWZQdHI8
Q2FzZUNsYXVzZU5vZGU+IGNsYXVzZTsKLSAgICBMaXN0UmVmUHRyPENsYXVzZUxpc3ROb2RlPiBu
ZXh0OwotICB9OwotCi0gIGNsYXNzIENhc2VCbG9ja05vZGUgOiBwdWJsaWMgTm9kZSB7Ci0gIHB1
YmxpYzoKLSAgICBDYXNlQmxvY2tOb2RlKENsYXVzZUxpc3ROb2RlICpsMSwgQ2FzZUNsYXVzZU5v
ZGUgKmQsIENsYXVzZUxpc3ROb2RlICpsMik7Ci0gICAgSlNWYWx1ZSogZXZhbHVhdGUoRXhlY1N0
YXRlKik7Ci0gICAgQ29tcGxldGlvbiBldmFsQmxvY2soRXhlY1N0YXRlICpleGVjLCBKU1ZhbHVl
ICppbnB1dCk7Ci0gICAgdmlydHVhbCB2b2lkIHByb2Nlc3NWYXJEZWNscyhFeGVjU3RhdGUqKTsK
LSAgICB2aXJ0dWFsIHZvaWQgc3RyZWFtVG8oU291cmNlU3RyZWFtJikgY29uc3Q7Ci0gIHByaXZh
dGU6Ci0gICAgUmVmUHRyPENsYXVzZUxpc3ROb2RlPiBsaXN0MTsKLSAgICBSZWZQdHI8Q2FzZUNs
YXVzZU5vZGU+IGRlZjsKLSAgICBSZWZQdHI8Q2xhdXNlTGlzdE5vZGU+IGxpc3QyOwotICB9Owot
Ci0gIGNsYXNzIFN3aXRjaE5vZGUgOiBwdWJsaWMgU3RhdGVtZW50Tm9kZSB7Ci0gIHB1YmxpYzoK
LSAgICBTd2l0Y2hOb2RlKE5vZGUgKmUsIENhc2VCbG9ja05vZGUgKmIpIDogZXhwcihlKSwgYmxv
Y2soYikgeyB9Ci0gICAgdmlydHVhbCBDb21wbGV0aW9uIGV4ZWN1dGUoRXhlY1N0YXRlKik7Ci0g
ICAgdmlydHVhbCB2b2lkIHByb2Nlc3NWYXJEZWNscyhFeGVjU3RhdGUqKTsKLSAgICB2aXJ0dWFs
IHZvaWQgc3RyZWFtVG8oU291cmNlU3RyZWFtJikgY29uc3Q7Ci0gIHByaXZhdGU6Ci0gICAgUmVm
UHRyPE5vZGU+IGV4cHI7Ci0gICAgUmVmUHRyPENhc2VCbG9ja05vZGU+IGJsb2NrOwotICB9Owot
CiAgIGNsYXNzIExhYmVsTm9kZSA6IHB1YmxpYyBTdGF0ZW1lbnROb2RlIHsKICAgcHVibGljOgog
ICAgIExhYmVsTm9kZShjb25zdCBJZGVudGlmaWVyICZsLCBTdGF0ZW1lbnROb2RlICpzKSA6IGxh
YmVsKGwpLCBzdGF0ZW1lbnQocykgeyB9CkBAIC0xMDg3LDcgKzEwMTQsNyBAQCBuYW1lc3BhY2Ug
S0pTIHsKICAgLy8gQSBsaW5rZWQgbGlzdCBvZiBzb3VyY2UgZWxlbWVudCBub2RlcwogICBjbGFz
cyBTb3VyY2VFbGVtZW50c05vZGUgOiBwdWJsaWMgU3RhdGVtZW50Tm9kZSB7CiAgIHB1YmxpYzoK
LSAgICAgIHN0YXRpYyBpbnQgY291bnQ7CisgICAgc3RhdGljIGludCBjb3VudDsKICAgICAvLyBs
aXN0IHBvaW50ZXIgaXMgdGFpbCBvZiBhIGNpcmN1bGFyIGxpc3QsIGNyYWNrZWQgaW4gdGhlIEJs
b2NrTm9kZSAob3Igc3ViY2xhc3MpIGN0b3IKICAgICBTb3VyY2VFbGVtZW50c05vZGUoU3RhdGVt
ZW50Tm9kZSopOwogICAgIFNvdXJjZUVsZW1lbnRzTm9kZShTb3VyY2VFbGVtZW50c05vZGUgKnMx
LCBTdGF0ZW1lbnROb2RlICpzMik7CkBAIC0xMTAwLDEwICsxMDI3LDcyIEBAIG5hbWVzcGFjZSBL
SlMgewogICAgIHZpcnR1YWwgdm9pZCBicmVha0N5Y2xlKCk7CiAgIHByaXZhdGU6CiAgICAgZnJp
ZW5kIGNsYXNzIEJsb2NrTm9kZTsKKyAgICBmcmllbmQgY2xhc3MgQ2FzZUNsYXVzZU5vZGU7CiAg
ICAgUmVmUHRyPFN0YXRlbWVudE5vZGU+IG5vZGU7CiAgICAgTGlzdFJlZlB0cjxTb3VyY2VFbGVt
ZW50c05vZGU+IG5leHQ7CiAgIH07CiAKKyAgY2xhc3MgQ2FzZUNsYXVzZU5vZGUgOiBwdWJsaWMg
Tm9kZSB7CisgIHB1YmxpYzoKKyAgICAgIENhc2VDbGF1c2VOb2RlKE5vZGUgKmUpIDogZXhwcihl
KSB7IH0KKyAgICAgIENhc2VDbGF1c2VOb2RlKE5vZGUgKmUsIFNvdXJjZUVsZW1lbnRzTm9kZSAq
cykKKyAgICAgIDogZXhwcihlKSwgc291cmNlKHMtPm5leHQucmVsZWFzZSgpKSB7IFBhcnNlcjo6
cmVtb3ZlTm9kZUN5Y2xlKHNvdXJjZS5nZXQoKSk7IH0KKyAgICAgIEpTVmFsdWUqIGV2YWx1YXRl
KEV4ZWNTdGF0ZSopOworICAgICAgQ29tcGxldGlvbiBldmFsU3RhdGVtZW50cyhFeGVjU3RhdGUq
KTsKKyAgICAgIHZvaWQgcHJvY2Vzc0Z1bmNEZWNsKEV4ZWNTdGF0ZSopOworICAgICAgdmlydHVh
bCB2b2lkIHByb2Nlc3NWYXJEZWNscyhFeGVjU3RhdGUqKTsKKyAgICAgIHZpcnR1YWwgdm9pZCBz
dHJlYW1UbyhTb3VyY2VTdHJlYW0mKSBjb25zdDsKKyAgcHJpdmF0ZToKKyAgICAgIFJlZlB0cjxO
b2RlPiBleHByOworICAgICAgUmVmUHRyPFNvdXJjZUVsZW1lbnRzTm9kZT4gc291cmNlOworICB9
OworICAKKyAgY2xhc3MgQ2xhdXNlTGlzdE5vZGUgOiBwdWJsaWMgTm9kZSB7CisgIHB1YmxpYzoK
KyAgICAgIC8vIGxpc3QgcG9pbnRlciBpcyB0YWlsIG9mIGEgY2lyY3VsYXIgbGlzdCwgY3JhY2tl
ZCBpbiB0aGUgQ2FzZUJsb2NrTm9kZSBjdG9yCisgICAgICBDbGF1c2VMaXN0Tm9kZShDYXNlQ2xh
dXNlTm9kZSAqYykgOiBjbGF1c2UoYyksIG5leHQodGhpcykgeyBQYXJzZXI6Om5vdGVOb2RlQ3lj
bGUodGhpcyk7IH0KKyAgICAgIENsYXVzZUxpc3ROb2RlKENsYXVzZUxpc3ROb2RlICpuLCBDYXNl
Q2xhdXNlTm9kZSAqYykKKyAgICAgIDogY2xhdXNlKGMpLCBuZXh0KG4tPm5leHQpIHsgbi0+bmV4
dCA9IHRoaXM7IH0KKyAgICAgIEpTVmFsdWUqIGV2YWx1YXRlKEV4ZWNTdGF0ZSopOworICAgICAg
Q2FzZUNsYXVzZU5vZGUgKmdldENsYXVzZSgpIGNvbnN0IHsgcmV0dXJuIGNsYXVzZS5nZXQoKTsg
fQorICAgICAgQ2xhdXNlTGlzdE5vZGUgKmdldE5leHQoKSBjb25zdCB7IHJldHVybiBuZXh0Lmdl
dCgpOyB9CisgICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc1ZhckRlY2xzKEV4ZWNTdGF0ZSopOwor
ICAgICAgdm9pZCBwcm9jZXNzRnVuY0RlY2woRXhlY1N0YXRlKik7CisgICAgICB2aXJ0dWFsIHZv
aWQgc3RyZWFtVG8oU291cmNlU3RyZWFtJikgY29uc3Q7CisgICAgICBQYXNzUmVmUHRyPENsYXVz
ZUxpc3ROb2RlPiByZWxlYXNlTmV4dCgpIHsgcmV0dXJuIG5leHQucmVsZWFzZSgpOyB9CisgICAg
ICB2aXJ0dWFsIHZvaWQgYnJlYWtDeWNsZSgpOworICBwcml2YXRlOgorICAgICAgZnJpZW5kIGNs
YXNzIENhc2VCbG9ja05vZGU7CisgICAgICBSZWZQdHI8Q2FzZUNsYXVzZU5vZGU+IGNsYXVzZTsK
KyAgICAgIExpc3RSZWZQdHI8Q2xhdXNlTGlzdE5vZGU+IG5leHQ7CisgIH07CisgIAorICBjbGFz
cyBDYXNlQmxvY2tOb2RlIDogcHVibGljIE5vZGUgeworICBwdWJsaWM6CisgICAgICBDYXNlQmxv
Y2tOb2RlKENsYXVzZUxpc3ROb2RlICpsMSwgQ2FzZUNsYXVzZU5vZGUgKmQsIENsYXVzZUxpc3RO
b2RlICpsMik7CisgICAgICBKU1ZhbHVlKiBldmFsdWF0ZShFeGVjU3RhdGUqKTsKKyAgICAgIENv
bXBsZXRpb24gZXZhbEJsb2NrKEV4ZWNTdGF0ZSAqZXhlYywgSlNWYWx1ZSAqaW5wdXQpOworICAg
ICAgdmlydHVhbCB2b2lkIHByb2Nlc3NWYXJEZWNscyhFeGVjU3RhdGUqKTsKKyAgICAgIHZvaWQg
cHJvY2Vzc0Z1bmNEZWNsKEV4ZWNTdGF0ZSopOworICAgICAgdmlydHVhbCB2b2lkIHN0cmVhbVRv
KFNvdXJjZVN0cmVhbSYpIGNvbnN0OworICBwcml2YXRlOgorICAgICAgUmVmUHRyPENsYXVzZUxp
c3ROb2RlPiBsaXN0MTsKKyAgICAgIFJlZlB0cjxDYXNlQ2xhdXNlTm9kZT4gZGVmOworICAgICAg
UmVmUHRyPENsYXVzZUxpc3ROb2RlPiBsaXN0MjsKKyAgfTsKKyAgCisgIGNsYXNzIFN3aXRjaE5v
ZGUgOiBwdWJsaWMgU3RhdGVtZW50Tm9kZSB7CisgIHB1YmxpYzoKKyAgICAgIFN3aXRjaE5vZGUo
Tm9kZSAqZSwgQ2FzZUJsb2NrTm9kZSAqYikgOiBleHByKGUpLCBibG9jayhiKSB7IH0KKyAgICAg
IHZpcnR1YWwgQ29tcGxldGlvbiBleGVjdXRlKEV4ZWNTdGF0ZSopOworICAgICAgdmlydHVhbCB2
b2lkIHByb2Nlc3NWYXJEZWNscyhFeGVjU3RhdGUqKTsKKyAgICAgIHZpcnR1YWwgdm9pZCBwcm9j
ZXNzRnVuY0RlY2woRXhlY1N0YXRlKik7CisgICAgICB2aXJ0dWFsIHZvaWQgc3RyZWFtVG8oU291
cmNlU3RyZWFtJikgY29uc3Q7CisgIHByaXZhdGU6CisgICAgICBSZWZQdHI8Tm9kZT4gZXhwcjsK
KyAgICAgIFJlZlB0cjxDYXNlQmxvY2tOb2RlPiBibG9jazsKKyAgfTsKKyAgCiAgIGNsYXNzIFBy
b2dyYW1Ob2RlIDogcHVibGljIEZ1bmN0aW9uQm9keU5vZGUgewogICBwdWJsaWM6CiAgICAgUHJv
Z3JhbU5vZGUoU291cmNlRWxlbWVudHNOb2RlICpzKTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9u
IDE0NDk5KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCShhcmJldHNrb3BpYSkKQEAgLTEs
MyArMSwzMiBAQAorMjAwNi0wNS0xOSAgQW5kZXJzIENhcmxzc29uICA8YWNhcmxzc29uQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBo
dHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTg5OTMKKyAgICAg
ICAgU3VwcG9ydCBmdW5jdGlvbiBkZWNsYXJhdGlvbiBpbiBjYXNlIHN0YXRlbWVudHMKKyAgICAg
ICAgCisgICAgICAgICoga2pzL2dyYW1tYXIueTogR2V0IHJpZCBvZiBTdGF0ZW1lbnRMaXN0IGFu
ZCB1c2UgU291cmNlRWxlbWVudHMgaW5zdGVhZC4KKyAgICAgICAgCisgICAgICAgICoga2pzL25v
ZGVzLmNwcDoKKyAgICAgICAgKENhc2VDbGF1c2VOb2RlOjpldmFsU3RhdGVtZW50cyk6CisgICAg
ICAgIChDYXNlQ2xhdXNlTm9kZTo6cHJvY2Vzc1ZhckRlY2xzKToKKyAgICAgICAgKENhc2VDbGF1
c2VOb2RlOjpwcm9jZXNzRnVuY0RlY2wpOgorICAgICAgICAoQ2xhdXNlTGlzdE5vZGU6OnByb2Nl
c3NGdW5jRGVjbCk6CisgICAgICAgIChDYXNlQmxvY2tOb2RlOjpwcm9jZXNzRnVuY0RlY2wpOgor
ICAgICAgICAoU3dpdGNoTm9kZTo6cHJvY2Vzc0Z1bmNEZWNsKToKKyAgICAgICAgKiBranMvbm9k
ZXMuaDoKKyAgICAgICAgKEtKUzo6Q2FzZUNsYXVzZU5vZGU6OkNhc2VDbGF1c2VOb2RlKToKKyAg
ICAgICAgKEtKUzo6Q2xhdXNlTGlzdE5vZGU6OkNsYXVzZUxpc3ROb2RlKToKKyAgICAgICAgKEtK
Uzo6Q2xhdXNlTGlzdE5vZGU6OmdldENsYXVzZSk6CisgICAgICAgIChLSlM6OkNsYXVzZUxpc3RO
b2RlOjpnZXROZXh0KToKKyAgICAgICAgKEtKUzo6Q2xhdXNlTGlzdE5vZGU6OnJlbGVhc2VOZXh0
KToKKyAgICAgICAgKEtKUzo6U3dpdGNoTm9kZTo6U3dpdGNoTm9kZSk6CisgICAgICAgIEFkZCBw
cm9jZXNzRnVuY0RlY2wgZm9yIHRoZSByZWxldmFudCBub2Rlcy4gICAgICAgIAorCisgICAgICAg
ICoga2pzL25vZGVzMnN0cmluZy5jcHA6CisgICAgICAgIChDYXNlQ2xhdXNlTm9kZTo6c3RyZWFt
VG8pOgorICAgICAgICBuZXh0IGdvdCByZW5hbWVkIHRvIHNvdXJjZS4KKwogMjAwNi0wNS0xNyAg
R2VvcmdlIFN0YWlrb3MgPHN0YWlrb3NAa2RlLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBN
YWNpZWosIEFsZXhleSwgYW5kIEVyaWMuCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNDQ5OSkKKysrIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkoYXJiZXRza29waWEpCkBAIC0xLDMgKzEsMTEgQEAKKzIwMDYt
MDUtMTkgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQG1hYy5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2pzL2Z1bmN0aW9uLWRl
Y2xhcmF0aW9ucy1pbi1zd2l0Y2gtc3RhdGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9qcy9mdW5jdGlvbi1kZWNsYXJhdGlvbnMtaW4tc3dpdGNoLXN0YXRlbWVudC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3Jlc291cmNlcy9mdW5jdGlvbi1kZWNsYXJh
dGlvbnMtaW4tc3dpdGNoLXN0YXRlbWVudC5qczogQWRkZWQuCisKIDIwMDYtMDUtMTkgIExldmkg
V2VpbnRyYXViICA8bHdlaW50cmF1YkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
anVzdGluLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvZnVuY3Rpb24tZGVj
bGFyYXRpb25zLWluLXN3aXRjaC1zdGF0ZW1lbnQuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9qcy9yZXNvdXJjZXMvZnVuY3Rpb24tZGVjbGFyYXRpb25zLWluLXN3aXRjaC1zdGF0
ZW1lbnQuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9m
dW5jdGlvbi1kZWNsYXJhdGlvbnMtaW4tc3dpdGNoLXN0YXRlbWVudC5qcwkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwyNiBAQAorZnVuY3Rpb24gdChuKSB7CisgICAgc3dpdGNoIChuKSB7CisgICAg
ICAgIGNhc2UgMToKKyAgICAgICAgICAgIGZ1bmN0aW9uIGYoKSB7CisgICAgICAgICAgICAgICAg
cmV0dXJuIDEwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgMjoKKyAgICAgICAgICAgIGZ1bmN0aW9uIGYoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJu
IDIwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgdHJ5
IHsKKyAgICAgIHJldHVybiBmKCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgcmV0dXJuIC0x
OworICAgIH0KK30KKworc2hvdWxkQmUodCgxKSwgJzIwJyk7CitzaG91bGRCZSh0KDIpLCAnMjAn
KTsKK3Nob3VsZEJlKHQoMyksICcyMCcpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvZnVuY3Rpb24tZGVjbGFyYXRpb25zLWluLXN3
aXRjaC1zdGF0ZW1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvanMvZnVuY3Rpb24tZGVjbGFyYXRpb25zLWluLXN3aXRjaC1zdGF0ZW1lbnQtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9mdW5jdGlvbi1kZWNsYXJh
dGlvbnMtaW4tc3dpdGNoLXN0YXRlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTAgQEAKK1dBUk46IHNob3VsZEJlKCkgZXhwZWN0cyBzdHJpbmcgYXJndW1lbnRzCitQ
QVNTIDIwIGlzIDIwCitXQVJOOiBzaG91bGRCZSgpIGV4cGVjdHMgc3RyaW5nIGFyZ3VtZW50cwor
UEFTUyAyMCBpcyAyMAorV0FSTjogc2hvdWxkQmUoKSBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMK
K1BBU1MgMjAgaXMgMjAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2Z1bmN0aW9uLWRlY2xhcmF0aW9u
cy1pbi1zd2l0Y2gtc3RhdGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9qcy9mdW5jdGlvbi1kZWNsYXJhdGlvbnMtaW4tc3dpdGNoLXN0YXRlbWVudC5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9mdW5jdGlvbi1kZWNsYXJhdGlvbnMtaW4t
c3dpdGNoLXN0YXRlbWVudC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5j
c3MiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Z1bmN0aW9uLWRlY2xhcmF0aW9ucy1p
bi1zd2l0Y2gtc3RhdGVtZW50LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="2394"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>