<?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>11876</bug_id>
          
          <creation_ts>2006-12-19 10:39:56 -0800</creation_ts>
          <short_desc>CSSMediaRule functions insertRule and deleteRule don&apos;t raise exceptions</short_desc>
          <delta_ts>2006-12-23 17:39:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>gavin.sharp</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>41020</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-12-19 10:39:56 -0800</bug_when>
    <thetext>According to the spec (http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/css.html#CSS-CSSMediaRule)

- the insertRule(rule, index) method can raise the following exceptions:
HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at the specified index, e.g., if an @import rule is inserted after a standard rule set or other at-rule.
INDEX_SIZE_ERR: Raised if the specified index is not a valid insertion point.
NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is readonly.
SYNTAX_ERR: Raised if the specified rule has a syntax error and is unparsable.

- the deleteRule(index) method can raise the following exceptions:
INDEX_SIZE_ERR: Raised if the specified index does not correspond to a rule in the media rule list.
NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is readonly.

We never raise exceptions for either method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>41058</commentid>
    <comment_count>1</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-12-19 13:42:58 -0800</bug_when>
    <thetext>Upon further testing, it looks as if the two methods are not even being called.  I&apos;ll do further testing to make sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40357</commentid>
    <comment_count>2</comment_count>
      <attachid>11973</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-12-22 14:25:42 -0800</bug_when>
    <thetext>Created attachment 11973
patch

This patch adds support for all the specified exceptions but the HIERARCHY_REQUEST_ERR for insertRule (I added a FIXME for that case).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40333</commentid>
    <comment_count>3</comment_count>
      <attachid>11973</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-12-22 15:10:41 -0800</bug_when>
    <thetext>Comment on attachment 11973
patch

r=me

I&apos;m still a little unclear on what a &quot;valid insertion point&quot; is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40340</commentid>
    <comment_count>4</comment_count>
      <attachid>11973</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-12-22 16:07:57 -0800</bug_when>
    <thetext>Comment on attachment 11973
patch

&gt;Index: WebCore/ChangeLog
&gt;===================================================================
&gt;--- WebCore/ChangeLog	(revision 18395)
&gt;+++ WebCore/ChangeLog	(working copy)
&gt;@@ -1,3 +1,21 @@
&gt;+2006-12-22  Sam Weinig  &lt;sam@webkit.org&gt;
&gt;+
&gt;+        Reviewed by NOBODY (OOPS!).
&gt;+
&gt;+        Patch for http://bugs.webkit.org/show_bug.cgi?id=11876
&gt;+        CSSMediaRule functions insertRule and deleteRule don&apos;t raise exceptions
&gt;+
&gt;+        Test added:
&gt;+        * fast/dom/css-mediarule-functions.html
&gt;+
&gt;+        * bindings/js/kjs_css.cpp:
&gt;+        (KJS::DOMCSSRuleFunc::callAsFunction):
&gt;+        * css/CSSMediaRule.cpp: add exception handling
&gt;+        (WebCore::CSSMediaRule::insertRule):
&gt;+        (WebCore::CSSMediaRule::deleteRule):
&gt;+        * css/CSSMediaRule.h: add ExceptionCode arguments
&gt;+        * css/CSSMediaRule.idl: un-comment exections

Typo: &quot;exections&quot; should be &quot;exceptions&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40020</commentid>
    <comment_count>5</comment_count>
      <attachid>11988</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-12-23 09:12:28 -0800</bug_when>
    <thetext>Created attachment 11988
newer testcase

I&apos;ve updated the testcase to test more cases and test for HIERARCHY_REQUEST_ERR&apos;s for insertRule.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40019</commentid>
    <comment_count>6</comment_count>
      <attachid>11989</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-12-23 09:23:28 -0800</bug_when>
    <thetext>Created attachment 11989
updated patch

Updating patch to include handeling for HIERARCHY_REQUEST_ERR, updated test and typo fixes.  Currently, the test includes 2 FAILS that should according to the spec, should be PASSes.  I&apos;m not sure whether I should leave them in or remove them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40018</commentid>
    <comment_count>7</comment_count>
      <attachid>11989</attachid>
    <who name="">mitz</who>
    <bug_when>2006-12-23 09:37:07 -0800</bug_when>
    <thetext>Comment on attachment 11989
updated patch

I find expected results that say &quot;FAIL&quot; quite confusing, since they always leave room for doubt (e.g. maybe they were checked in as part of some big change that affected many tests). It&apos;s good to have the current behavior documented, but I argue that the test should be written to expect the current behavior (and say PASS) with a comment that it does not follow the spec. Then if WebKit&apos;s behavior changes, it is easy to determine that the new failure is actually a progression and fix the test accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39954</commentid>
    <comment_count>8</comment_count>
      <attachid>11990</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-12-23 12:15:42 -0800</bug_when>
    <thetext>Created attachment 11990
more updated patch

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39958</commentid>
    <comment_count>9</comment_count>
      <attachid>11990</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-12-23 16:29:52 -0800</bug_when>
    <thetext>Comment on attachment 11990
more updated patch

Seems to address Mitz&apos;s comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>39959</commentid>
    <comment_count>10</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-12-23 17:39:19 -0800</bug_when>
    <thetext>Landed in r18404.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11973</attachid>
            <date>2006-12-22 14:25:42 -0800</date>
            <delta_ts>2006-12-23 09:12:28 -0800</delta_ts>
            <desc>patch</desc>
            <filename>cssMediaRuleExceptions.diff</filename>
            <type>text/plain</type>
            <size>12675</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE4Mzk1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDYtMTItMjIgIFNhbSBXZWluaWcgIDxzYW1A
d2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0cyBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4
NzYKKyAgICAgICAgQ1NTTWVkaWFSdWxlIGZ1bmN0aW9ucyBpbnNlcnRSdWxlIGFuZCBkZWxldGVS
dWxlIGRvbid0IHJhaXNlIGV4Y2VwdGlvbnMKKworICAgICAgICAqIGZhc3QvZG9tL2Nzcy1tZWRp
YXJ1bGUtZnVuY3Rpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
Y3NzLW1lZGlhcnVsZS1mdW5jdGlvbnMuaHRtbDogQWRkZWQuCisKIDIwMDYtMTItMjIgIE5pa29s
YXMgWmltbWVybWFubiAgPHppbW1lcm1hbm5Aa2RlLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBSb2IuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9jc3MtbWVkaWFydWxlLWZ1bmN0aW9u
cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vY3NzLW1l
ZGlhcnVsZS1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vY3NzLW1lZGlhcnVsZS1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDggQEAKK1RoaXMgdGVzdHMgdGhlIGluc2VydFJ1bGUocnVsZSwgaW5k
ZXgpIGFuZCBkZWxldGVSdWxlKGluZGV4KSBtZXRob2RzIG9mIHRoZSBDU1NNZWRpYVJ1bGUgaW50
ZXJmYWNlLiBJdCBoYXMgcGFzc2VkIGlmIGFsbCBvZiB0aGUgb3V0cHV0IGJlbG93IGJlZ2lucyB3
aXRoIHRoZSB0ZXh0ICJQQVNTIi4KKworUEFTUzogTm8gZXhjZXB0aW9uIHJhaXNlZCEgTmV3IHJ1
bGUgaW5zZXJ0ZWQgc3VjY2Vzc2Z1bGx5LgorUEFTUzogRXhjZXB0aW9uIHJhaXNlZCBzdWNjZXNz
ZnVsbHkuIFR5cGU6IEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxCitQQVNT
OiBFeGNlcHRpb24gcmFpc2VkIHN1Y2Nlc3NmdWxseS4gVHlwZTogRXJyb3I6IFNZTlRBWF9FUlI6
IERPTSBFeGNlcHRpb24gMTIKK1BBU1M6IE5vIGV4Y2VwdGlvbiByYWlzZWQhIFJ1bGUgYXQgcG9z
aXRpb24gJ2xlbmd0aCAtIDEnIGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5LgorUEFTUzogRXhjZXB0aW9u
IHJhaXNlZCBzdWNjZXNzZnVsbHkuIFR5cGU6IEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4
Y2VwdGlvbiAxCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL2Nzcy1tZWRpYXJ1bGUtZnVu
Y3Rpb25zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vY3NzLW1lZGlh
cnVsZS1mdW5jdGlvbnMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L2Nzcy1tZWRpYXJ1bGUtZnVuY3Rpb25zLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzgg
QEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEg
aHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRm
LTgiPgorICAgICAgICA8dGl0bGU+dW50aXRsZWQ8L3RpdGxlPgorICAgICAgICA8c3R5bGUgaWQ9
InN0eWxlMSI+CisgICAgICAgICAgICBAbWVkaWEgYWxsIHsgLnRlc3QgeyBjb2xvcjogZ3JlZW47
IH0gfQorICAgICAgICA8L3N0eWxlPgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgZnVu
Y3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImxpIik7CisgICAgICAgICAgICAgICAgaXRlbS5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChpdGVtKTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICAgICAgICAgICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAgICAgICAgICB2YXIgc3R5
bGVTaGVldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdHlsZTEnKS5zaGVldDsKKyAgICAg
ICAgICAgICAgICB2YXIgbWVkaWFSdWxlID0gc3R5bGVTaGVldC5jc3NSdWxlc1swXTsKKworICAg
ICAgICAgICAgICAgIC8vIENTU01lZGlhUnVsZS5pbnNlcnRSdWxlKHJ1bGUsIGluZGV4KSB0ZXN0
cworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHZhciBpbmRleCA9
IG1lZGlhUnVsZS5pbnNlcnRSdWxlKCIudGVzdDIgeyBjb2xvcjogYmx1ZTsgfSIsIG1lZGlhUnVs
ZS5jc3NSdWxlcy5sZW5ndGgpOworICAgICAgICAgICAgICAgICAgICBsb2coIlBBU1M6IE5vIGV4
Y2VwdGlvbiByYWlzZWQhIE5ldyBydWxlIGluc2VydGVkIHN1Y2Nlc3NmdWxseS4iKTsKKyAgICAg
ICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZygiRkFJTDog
bm8gZXhjZXB0aW9uIHNob3VsZCBoYXZlIGJlZW4gdGhyb3duISBUeXBlIG9mIHRocm93biBleGNl
cHRpb24gd2FzOiAiICsgZSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAg
dHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gbWVkaWFSdWxlLmluc2VydFJ1
bGUoInAge2NvbG9yOiByZWQ7IH0iLCBtZWRpYVJ1bGUuY3NzUnVsZXMubGVuZ3RoICsgMSk7Cisg
ICAgICAgICAgICAgICAgICAgIGxvZygiRkFJTDogYW4gZXhjZXB0aW9uIHNob3VsZCBoYXZlIGJl
ZW4gdGhyb3duISIpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKGUgPT0gIkVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAx
IikKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZygiUEFTUzogRXhjZXB0aW9uIHJhaXNlZCBz
dWNjZXNzZnVsbHkuIFR5cGU6ICIgKyBlKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgICAgICAgICAgbG9nKCJGQUlMOiB3cm9uZyBleGNlcHRpb24gdHlwZSB0aHJv
d24uICIgKyBlICsgIiB3YXMgdGhyb3duLCBzaG91bGQgb2YgYmVlbiAnRXJyb3I6IElOREVYX1NJ
WkVfRVJSOiBET00gRXhjZXB0aW9uIDEnLiIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IG1lZGlhUnVs
ZS5pbnNlcnRSdWxlKCJiYWRiZWVmIH17IiwgbWVkaWFSdWxlLmNzc1J1bGVzLmxlbmd0aCArIDEp
OworICAgICAgICAgICAgICAgICAgICBsb2coIkZBSUw6IGFuIGV4Y2VwdGlvbiBzaG91bGQgaGF2
ZSBiZWVuIHRocm93biEiKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChlID09ICJFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2VwdGlvbiAx
MiIpCisgICAgICAgICAgICAgICAgICAgICAgICBsb2coIlBBU1M6IEV4Y2VwdGlvbiByYWlzZWQg
c3VjY2Vzc2Z1bGx5LiBUeXBlOiAiICsgZSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxvZygiRkFJTDogd3JvbmcgZXhjZXB0aW9uIHR5cGUgdGhy
b3duLiAiICsgZSArICIgd2FzIHRocm93biwgc2hvdWxkIG9mIGJlZW4gRXJyb3I6IFNZTlRBWF9F
UlI6IERPTSBFeGNlcHRpb24gMTIhIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAgICAgLy8gQ1NTTWVkaWFSdWxlLmRlbGV0ZVJ1bGUoaW5kZXgpIHRlc3RzCisgICAgICAgICAg
ICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgbWVkaWFSdWxlLmRlbGV0ZVJ1bGUobWVk
aWFSdWxlLmNzc1J1bGVzLmxlbmd0aCAtIDEpOworICAgICAgICAgICAgICAgICAgICBsb2coIlBB
U1M6IE5vIGV4Y2VwdGlvbiByYWlzZWQhIFJ1bGUgYXQgcG9zaXRpb24gJ2xlbmd0aCAtIDEnIGRl
bGV0ZWQgc3VjY2Vzc2Z1bGx5LiIpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgICAgICAgICAgICAgICAgbG9nKCJGQUlMOiBubyBleGNlcHRpb24gc2hvdWxkIGhhdmUgYmVl
biB0aHJvd24hIFR5cGUgb2YgdGhyb3duIGV4Y2VwdGlvbiB3YXM6ICIgKyBlKTsKKyAgICAgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBt
ZWRpYVJ1bGUuZGVsZXRlUnVsZShtZWRpYVJ1bGUuY3NzUnVsZXMubGVuZ3RoKTsKKyAgICAgICAg
ICAgICAgICAgICAgbG9nKCJGQUlMOiBhbiBleGNlcHRpb24gc2hvdWxkIGhhdmUgYmVlbiB0aHJv
d24hIik7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgICAg
ICBpZiAoZSA9PSAiRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEiKQorICAg
ICAgICAgICAgICAgICAgICAgICAgbG9nKCJQQVNTOiBFeGNlcHRpb24gcmFpc2VkIHN1Y2Nlc3Nm
dWxseS4gVHlwZTogIiArIGUpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgICAgICAgICBsb2coIkZBSUw6IHdyb25nIGV4Y2VwdGlvbiB0eXBlIHRocm93bi4gIiAr
IGUgKyAiIHdhcyB0aHJvd24sIHNob3VsZCBvZiBiZWVuICdFcnJvcjogSU5ERVhfU0laRV9FUlI6
IERPTSBFeGNlcHRpb24gMScuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor
ICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJ0ZXN0KCk7
Ij4KKyAgICAgICAgPHA+VGhpcyB0ZXN0cyB0aGUgaW5zZXJ0UnVsZShydWxlLCBpbmRleCkgYW5k
IGRlbGV0ZVJ1bGUoaW5kZXgpIG1ldGhvZHMgb2YgdGhlIENTU01lZGlhUnVsZSBpbnRlcmZhY2Uu
ICBJdCBoYXMgcGFzc2VkIGlmCisgICAgICAgICAgICBhbGwgb2YgdGhlIG91dHB1dCBiZWxvdyBi
ZWdpbnMgd2l0aCB0aGUgdGV4dCAiUEFTUyIuICAKKyAgICAgICAgPG9sIGlkPSJjb25zb2xlIj4K
KyAgICAgICAgPC9vbD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBXZWJDb3JlL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgzOTUpCisr
KyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDA2
LTEyLTIyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGF0Y2ggZm9yIGh0dHA6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExODc2CisgICAgICAgIENTU01lZGlhUnVsZSBmdW5jdGlv
bnMgaW5zZXJ0UnVsZSBhbmQgZGVsZXRlUnVsZSBkb24ndCByYWlzZSBleGNlcHRpb25zCisKKyAg
ICAgICAgVGVzdCBhZGRlZDoKKyAgICAgICAgKiBmYXN0L2RvbS9jc3MtbWVkaWFydWxlLWZ1bmN0
aW9ucy5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9ranNfY3NzLmNwcDoKKyAgICAgICAg
KEtKUzo6RE9NQ1NTUnVsZUZ1bmM6OmNhbGxBc0Z1bmN0aW9uKToKKyAgICAgICAgKiBjc3MvQ1NT
TWVkaWFSdWxlLmNwcDogYWRkIGV4Y2VwdGlvbiBoYW5kbGluZworICAgICAgICAoV2ViQ29yZTo6
Q1NTTWVkaWFSdWxlOjppbnNlcnRSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU01lZGlhUnVs
ZTo6ZGVsZXRlUnVsZSk6CisgICAgICAgICogY3NzL0NTU01lZGlhUnVsZS5oOiBhZGQgRXhjZXB0
aW9uQ29kZSBhcmd1bWVudHMKKyAgICAgICAgKiBjc3MvQ1NTTWVkaWFSdWxlLmlkbDogdW4tY29t
bWVudCBleGVjdGlvbnMKKwogMjAwNi0xMi0yMiAgTmlrb2xhcyBaaW1tZXJtYW5uICA8emltbWVy
bWFubkBrZGUub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFJvYi4KSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3MvanMva2pzX2Nzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9q
cy9ranNfY3NzLmNwcAkocmV2aXNpb24gMTgzOTUpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL2tq
c19jc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01LDYgKzUsNyBAQAogICogIENvcHlyaWdodCAo
QykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQogICogIENvcHlyaWdodCAoQykgMjAw
NC0yMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA2IEphbWVz
IEcuIFNwZXRoIChzcGV0aEBlbmQuY29tKQorICogIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwg
V2VpbmlnIChzYW1Ad2Via2l0Lm9yZykKICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKQEAgLTg0MywxNCAr
ODQ0LDIzIEBAIEpTVmFsdWUqIERPTUNTU1J1bGVGdW5jOjpjYWxsQXNGdW5jdGlvbigKIHsKICAg
aWYgKCF0aGlzT2JqLT5pbmhlcml0cygmS0pTOjpET01DU1NSdWxlOjppbmZvKSkKICAgICByZXR1
cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOwotICBDU1NSdWxlICZjc3NSdWxlID0gKnN0
YXRpY19jYXN0PERPTUNTU1J1bGUqPih0aGlzT2JqKS0+aW1wbCgpOworICBDU1NSdWxlJiBjc3NS
dWxlID0gKnN0YXRpY19jYXN0PERPTUNTU1J1bGUqPih0aGlzT2JqKS0+aW1wbCgpOwogCiAgIGlm
IChjc3NSdWxlLnR5cGUoKSA9PSBDU1NSdWxlOjpNRURJQV9SVUxFKSB7Ci0gICAgQ1NTTWVkaWFS
dWxlICZydWxlID0gc3RhdGljX2Nhc3Q8Q1NTTWVkaWFSdWxlICY+KGNzc1J1bGUpOwotICAgIGlm
IChpZCA9PSBET01DU1NSdWxlOjpNZWRpYV9JbnNlcnRSdWxlKQotICAgICAgcmV0dXJuIGpzTnVt
YmVyKHJ1bGUuaW5zZXJ0UnVsZShhcmdzWzBdLT50b1N0cmluZyhleGVjKSwgYXJnc1sxXS0+dG9J
bnQzMihleGVjKSkpOwotICAgIGVsc2UgaWYgKGlkID09IERPTUNTU1J1bGU6Ok1lZGlhX0RlbGV0
ZVJ1bGUpCi0gICAgICBydWxlLmRlbGV0ZVJ1bGUoYXJnc1swXS0+dG9JbnQzMihleGVjKSk7Cisg
ICAgQ1NTTWVkaWFSdWxlJiBydWxlID0gc3RhdGljX2Nhc3Q8Q1NTTWVkaWFSdWxlJj4oY3NzUnVs
ZSk7CisgICAgc3dpdGNoIChpZCkgeworICAgICAgY2FzZSBET01DU1NSdWxlOjpNZWRpYV9JbnNl
cnRSdWxlOiB7CisgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgICAgICBKU1ZhbHVl
KiByZXN1bHQgPSBqc051bWJlcihydWxlLmluc2VydFJ1bGUoYXJnc1swXS0+dG9TdHJpbmcoZXhl
YyksIGFyZ3NbMV0tPnRvSW50MzIoZXhlYyksIGVjKSk7CisgICAgICAgIHNldERPTUV4Y2VwdGlv
bihleGVjLCBlYyk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICB9CisgICAgICBjYXNl
IERPTUNTU1J1bGU6Ok1lZGlhX0RlbGV0ZVJ1bGU6IHsKKyAgICAgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CisgICAgICAgIHJ1bGUuZGVsZXRlUnVsZShhcmdzWzBdLT50b0ludDMyKGV4ZWMpLCBl
Yyk7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgICB9CisgICAgfQog
ICB9CiAKICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NNZWRp
YVJ1bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5jcHAJKHJl
dmlzaW9uIDE4Mzk1KQorKysgV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNCw2ICs0LDcgQEAKICAqIChDKSAxOTk5LTIwMDMgTGFycyBLbm9sbCAoa25vbGxA
a2RlLm9yZykKICAqIChDKSAyMDAyLTIwMDMgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcp
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4K
KyAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIChzYW1Ad2Via2l0Lm9yZykKICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtMjAsMTIgKzIxLDE0IEBACiAgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCiAgKiBCb3N0
b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICAqLworCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiQ1NTTWVkaWFSdWxlLmgiCiAKLSNpbmNsdWRlICJjc3NwYXJzZXIuaCIKICNpbmNsdWRl
ICJDU1NSdWxlTGlzdC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJN
ZWRpYUxpc3QuaCIKKyNpbmNsdWRlICJjc3NwYXJzZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC03MywxOCArNzYsMzggQEAgdW5zaWduZWQgQ1NTTWVkaWFSdWxlOjphcHBlbmQoQ1NT
UnVsZSogcgogICAgIHJldHVybiBtX2xzdENTU1J1bGVzLT5pbnNlcnRSdWxlKHJ1bGUsIG1fbHN0
Q1NTUnVsZXMtPmxlbmd0aCgpKTsKIH0KIAotdW5zaWduZWQgQ1NTTWVkaWFSdWxlOjppbnNlcnRS
dWxlKGNvbnN0IFN0cmluZyYgcnVsZSwgdW5zaWduZWQgaW5kZXgpCit1bnNpZ25lZCBDU1NNZWRp
YVJ1bGU6Omluc2VydFJ1bGUoY29uc3QgU3RyaW5nJiBydWxlLCB1bnNpZ25lZCBpbmRleCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgQ1NTUGFyc2VyIHAodXNlU3RyaWN0UGFyc2luZygpKTsK
ICAgICBSZWZQdHI8Q1NTUnVsZT4gbmV3UnVsZSA9IHAucGFyc2VSdWxlKHBhcmVudFN0eWxlU2hl
ZXQoKSwgcnVsZSk7Ci0gICAgaWYgKCFuZXdSdWxlKQorICAgIGlmICghbmV3UnVsZSkgeworICAg
ICAgICAvLyBTWU5UQVhfRVJSOiBSYWlzZWQgaWYgdGhlIHNwZWNpZmllZCBydWxlIGhhcyBhIHN5
bnRheCBlcnJvciBhbmQgaXMgdW5wYXJzYWJsZS4KKyAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwog
ICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogSElFUkFSQ0hZX1JFUVVF
U1RfRVJSOiBSYWlzZWQgaWYgdGhlIHJ1bGUgY2Fubm90IGJlIGluc2VydGVkIGF0IHRoZSBzcGVj
aWZpZWQKKyAgICAvLyBpbmRleCwgZS5nLiwgaWYgYW4gQGltcG9ydCBydWxlIGlzIGluc2VydGVk
IGFmdGVyIGEgc3RhbmRhcmQgcnVsZSBzZXQgb3Igb3RoZXIgYXQtcnVsZS4KKworICAgIGlmIChp
bmRleCA+IG1fbHN0Q1NTUnVsZXMtPmxlbmd0aCgpKSB7CisgICAgICAgIC8vIElOREVYX1NJWkVf
RVJSOiBSYWlzZWQgaWYgdGhlIHNwZWNpZmllZCBpbmRleCBpcyBub3QgYSB2YWxpZCBpbnNlcnRp
b24gcG9pbnQuCisgICAgICAgIGVjID0gSU5ERVhfU0laRV9FUlI7CisgICAgICAgIHJldHVybiAw
OworICAgIH0KKwogICAgIG5ld1J1bGUtPnNldFBhcmVudCh0aGlzKTsKICAgICByZXR1cm4gbV9s
c3RDU1NSdWxlcy0+aW5zZXJ0UnVsZShuZXdSdWxlLmdldCgpLCBpbmRleCk7CiB9CiAKLXZvaWQg
Q1NTTWVkaWFSdWxlOjpkZWxldGVSdWxlKHVuc2lnbmVkIGluZGV4KQordm9pZCBDU1NNZWRpYVJ1
bGU6OmRlbGV0ZVJ1bGUodW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogeworICAg
IGlmIChpbmRleCA+PSBtX2xzdENTU1J1bGVzLT5sZW5ndGgoKSkgeworICAgICAgICAvLyBJTkRF
WF9TSVpFX0VSUjogUmFpc2VkIGlmIHRoZSBzcGVjaWZpZWQgaW5kZXggZG9lcyBub3QgY29ycmVz
cG9uZCB0byBhIAorICAgICAgICAvLyBydWxlIGluIHRoZSBtZWRpYSBydWxlIGxpc3QuCisgICAg
ICAgIGVjID0gSU5ERVhfU0laRV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBt
X2xzdENTU1J1bGVzLT5kZWxldGVSdWxlKGluZGV4KTsKIH0KIApJbmRleDogV2ViQ29yZS9jc3Mv
Q1NTTWVkaWFSdWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmgJ
KHJldmlzaW9uIDE4Mzk1KQorKysgV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQsNiArNCw3IEBACiAgKiAoQykgMTk5OS0yMDAzIExhcnMgS25vbGwgKGtub2xs
QGtkZS5vcmcpCiAgKiAoQykgMjAwMi0yMDAzIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3Jn
KQogICogQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyAoc2FtQHdlYmtpdC5vcmcpCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKQEAgLTMyLDYgKzMzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
Q1NTUnVsZUxpc3Q7CiBjbGFzcyBNZWRpYUxpc3Q7CiAKK3R5cGVkZWYgaW50IEV4Y2VwdGlvbkNv
ZGU7CisKIGNsYXNzIENTU01lZGlhUnVsZSA6IHB1YmxpYyBDU1NSdWxlCiB7CiBwdWJsaWM6CkBA
IC00Myw4ICs0Niw4IEBAIHB1YmxpYzoKICAgICBNZWRpYUxpc3QqIG1lZGlhKCkgY29uc3QgeyBy
ZXR1cm4gbV9sc3RNZWRpYS5nZXQoKTsgfQogICAgIENTU1J1bGVMaXN0KiBjc3NSdWxlcygpIHsg
cmV0dXJuIG1fbHN0Q1NTUnVsZXMuZ2V0KCk7IH0KIAotICAgIHVuc2lnbmVkIGluc2VydFJ1bGUo
Y29uc3QgU3RyaW5nJiBydWxlLCB1bnNpZ25lZCBpbmRleCk7Ci0gICAgdm9pZCBkZWxldGVSdWxl
KHVuc2lnbmVkIGluZGV4KTsKKyAgICB1bnNpZ25lZCBpbnNlcnRSdWxlKGNvbnN0IFN0cmluZyYg
cnVsZSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIGRlbGV0ZVJ1
bGUodW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBp
c01lZGlhUnVsZSgpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0
KCkgY29uc3Q7CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5pZGwJKHJldmlzaW9uIDE4Mzk1KQorKysgV2Vi
Q29yZS9jc3MvQ1NTTWVkaWFSdWxlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjIsMTkgKzIyLDE0
IEBAIG1vZHVsZSBjc3MgewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKICAg
ICBpbnRlcmZhY2UgQ1NTTWVkaWFSdWxlIDogQ1NTUnVsZSB7Ci0KICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIHN0eWxlc2hlZXRzOjpNZWRpYUxpc3QgIG1lZGlhOwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgQ1NTUnVsZUxpc3QgICAgICBjc3NSdWxlczsKICAgICAgICAgCi0gICAgICAg
IC8vIEZJWE1FOiB0aGUgRE9NIHNwZWMgc2F5cyB0aGF0IHRoaXMgY2FuIHJhaXNlIGFuIGV4ZWNl
cHRpb24uCiAgICAgICAgIFtPbGRTdHlsZU9iakNdIHVuc2lnbmVkIGxvbmcgICAgICBpbnNlcnRS
dWxlKGluIERPTVN0cmluZyBydWxlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gdW5zaWduZWQgbG9uZyBpbmRleCkKLSAgICAgICAgICAgIC8qcmFpc2VzKERPTUV4
Y2VwdGlvbikqLzsKLSAgICAgICAgICAgIAotICAgICAgICAvLyBGSVhNRTogdGhlIERPTSBzcGVj
IHNheXMgdGhhdCB0aGlzIGNhbiByYWlzZSBhbiBleGVjZXB0aW9uLgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB1bnNpZ25lZCBsb25nIGlu
ZGV4KQorICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgICAg
ICAgICAgICAgICBkZWxldGVSdWxlKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpCi0gICAgICAgICAg
ICAvKnJhaXNlcyhET01FeGNlcHRpb24pKi87Ci0KKyAgICAgICAgICAgIHJhaXNlcyhET01FeGNl
cHRpb24pOwogICAgIH07CiAKIH0K
</data>
<flag name="review"
          id="4395"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>11988</attachid>
            <date>2006-12-23 09:12:28 -0800</date>
            <delta_ts>2006-12-23 09:12:28 -0800</delta_ts>
            <desc>newer testcase</desc>
            <filename>css-mediarule-functions.html</filename>
            <type>text/html</type>
            <size>6953</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+Cgo8aHRtbD4KICAgIDxoZWFkPgogICAgICAgIDxtZXRhIGh0dHAtZXF1
aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4KICAg
ICAgICA8dGl0bGU+dW50aXRsZWQ8L3RpdGxlPgogICAgICAgIDxzdHlsZSBpZD0ic3R5bGUxIj4K
ICAgICAgICAgICAgQG1lZGlhIGFsbCB7IC50ZXN0IHsgY29sb3I6IGdyZWVuOyB9IH0KICAgICAg
ICA8L3N0eWxlPgogICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAgIGZ1bmN0aW9uIGxvZyhtZXNz
YWdlKSB7CiAgICAgICAgICAgICAgICB2YXIgaXRlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImxpIik7CiAgICAgICAgICAgICAgICBpdGVtLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKG1lc3NhZ2UpKTsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoaXRlbSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQogICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKCiAgICAgICAgICAgICAgICB2YXIgc3R5bGVTaGVldCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdzdHlsZTEnKS5zaGVldDsKICAgICAgICAgICAgICAgIHZhciBtZWRpYVJ1bGUg
PSBzdHlsZVNoZWV0LmNzc1J1bGVzWzBdOwoKICAgICAgICAgICAgICAgIC8vIENTU01lZGlhUnVs
ZS5pbnNlcnRSdWxlKHJ1bGUsIGluZGV4KSB0ZXN0cwoKICAgICAgICAgICAgICAgIC8vIFRlc3Qg
dGhhdCBpbnNlcnRSdWxlIHdvcmtzLgogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAg
ICAgICAgICB2YXIgaW5kZXggPSBtZWRpYVJ1bGUuaW5zZXJ0UnVsZSgiLnRlc3QyIHsgY29sb3I6
IGJsdWU7IH0iLCBtZWRpYVJ1bGUuY3NzUnVsZXMubGVuZ3RoKTsKICAgICAgICAgICAgICAgICAg
ICBsb2coIlBBU1M6IE5vIGV4Y2VwdGlvbiByYWlzZWQhIE5ldyBydWxlIGluc2VydGVkIHN1Y2Nl
c3NmdWxseS4iKTsKICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAg
ICAgICBsb2coIkZBSUw6IG5vIGV4Y2VwdGlvbiBzaG91bGQgaGF2ZSBiZWVuIHRocm93biEgVHlw
ZSBvZiB0aHJvd24gZXhjZXB0aW9uIHdhczogIiArIGUpOwogICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgIC8vIFRlc3QgdGhhdCBpbnNlcnRSdWxlIHJhaXNlcyBhbiBleGNlcHRpb24g
Zm9yIGluZGV4ZXMgZ3JlYXRlciB0aGFuIHRoZSBsZW5ndGggb2YgdGhlIGxpc3QuCiAgICAgICAg
ICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IG1lZGlhUnVsZS5p
bnNlcnRSdWxlKCJwIHtjb2xvcjogcmVkOyB9IiwgbWVkaWFSdWxlLmNzc1J1bGVzLmxlbmd0aCAr
IDEpOwogICAgICAgICAgICAgICAgICAgIGxvZygiRkFJTDogYW4gZXhjZXB0aW9uIHNob3VsZCBo
YXZlIGJlZW4gdGhyb3duISIpOwogICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAg
ICAgICAgICAgICAgIGlmIChlLmNvZGUgPT0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgbG9n
KCJQQVNTOiBFeGNlcHRpb24gcmFpc2VkIHN1Y2Nlc3NmdWxseS4gVHlwZTogIiArIGUpOwogICAg
ICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJGQUlMOiB3
cm9uZyBleGNlcHRpb24gdHlwZSB0aHJvd24uICIgKyBlICsgIiB3YXMgdGhyb3duLCBzaG91bGQg
b2YgYmVlbiAnRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEnLiIpOwogICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIFRlc3QgdGhhdCBpbnNlcnRSdWxlIHJh
aXNlcyBhbiBleGNlcHRpb24gZm9yIGluZGV4ZXMgbGVzcyB0aGFuIDAuCiAgICAgICAgICAgICAg
ICB0cnkgewogICAgICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IG1lZGlhUnVsZS5pbnNlcnRS
dWxlKCJwIHtjb2xvcjogcmVkOyB9IiwgLTEpOwogICAgICAgICAgICAgICAgICAgIGxvZygiRkFJ
TDogYW4gZXhjZXB0aW9uIHNob3VsZCBoYXZlIGJlZW4gdGhyb3duISIpOwogICAgICAgICAgICAg
ICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgIGlmIChlLmNvZGUgPT0gMSkKICAg
ICAgICAgICAgICAgICAgICAgICAgbG9nKCJQQVNTOiBFeGNlcHRpb24gcmFpc2VkIHN1Y2Nlc3Nm
dWxseS4gVHlwZTogIiArIGUpOwogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg
ICAgICAgICAgICAgbG9nKCJGQUlMOiB3cm9uZyBleGNlcHRpb24gdHlwZSB0aHJvd24uICIgKyBl
ICsgIiB3YXMgdGhyb3duLCBzaG91bGQgb2YgYmVlbiAnRXJyb3I6IElOREVYX1NJWkVfRVJSOiBE
T00gRXhjZXB0aW9uIDEnLiIpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8v
IFRlc3QgdGhhdCBpbnNlcnRSdWxlIHJhaXNlcyBhbiBleGNlcHRpb24gZm9yIG1hbGZvcm1lZCBy
dWxlcy4KICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGluZGV4
ID0gbWVkaWFSdWxlLmluc2VydFJ1bGUoImJhZGJlZWYgfXsiLCBtZWRpYVJ1bGUuY3NzUnVsZXMu
bGVuZ3RoKTsKICAgICAgICAgICAgICAgICAgICBsb2coIkZBSUw6IGFuIGV4Y2VwdGlvbiBzaG91
bGQgaGF2ZSBiZWVuIHRocm93biEiKTsKICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAg
ICAgICAgICAgICAgICAgICBpZiAoZS5jb2RlID09IDEyKQogICAgICAgICAgICAgICAgICAgICAg
ICBsb2coIlBBU1M6IEV4Y2VwdGlvbiByYWlzZWQgc3VjY2Vzc2Z1bGx5LiBUeXBlOiAiICsgZSk7
CiAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICBsb2coIkZB
SUw6IHdyb25nIGV4Y2VwdGlvbiB0eXBlIHRocm93bi4gIiArIGUgKyAiIHdhcyB0aHJvd24sIHNo
b3VsZCBvZiBiZWVuIEVycm9yOiBTWU5UQVhfRVJSOiBET00gRXhjZXB0aW9uIDEyISIpOwogICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIFRlc3QgdGhhdCBpbnNlcnRSdWxlIHJh
aXNlcyBhbiBleGNlcHRpb24gZm9yIGlsbGVnYWxseSBwbGFjZWQgcnVsZXMuCiAgICAgICAgICAg
ICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIC8vIEltcG9ydFJ1bGUgaWxsZWdhbCBpbnNp
ZGUgYSBNZWRpYVJ1bGUuCiAgICAgICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gbWVkaWFSdWxl
Lmluc2VydFJ1bGUoIkBpbXBvcnQgdXJsKHNoZWV0LmNzcyk7IiwgbWVkaWFSdWxlLmNzc1J1bGVz
Lmxlbmd0aCk7CiAgICAgICAgICAgICAgICAgICAgbG9nKCJGQUlMOiBhbiBleGNlcHRpb24gc2hv
dWxkIGhhdmUgYmVlbiB0aHJvd24hIik7CiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAg
ICAgICAgICAgICAgICAgICAgaWYgKGUuY29kZSA9PSAzKQogICAgICAgICAgICAgICAgICAgICAg
ICBsb2coIlBBU1M6IEV4Y2VwdGlvbiByYWlzZWQgc3VjY2Vzc2Z1bGx5LiBUeXBlOiAiICsgZSk7
CiAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICBsb2coIkZB
SUw6IHdyb25nIGV4Y2VwdGlvbiB0eXBlIHRocm93bi4gIiArIGUuY29kZSArICIgd2FzIHRocm93
biwgc2hvdWxkIG9mIGJlZW4gRXJyb3I6IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjogRE9NIEV4Y2Vw
dGlvbiAzISIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAg
ICAgICAgICAgICAgICAvLyBDaGFyc2V0UnVsZSBpbGxlZ2FsIGluc2lkZSBhIE1lZGlhUnVsZS4K
ICAgICAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSBtZWRpYVJ1bGUuaW5zZXJ0UnVsZSgiQGNo
YXJzZXQgXCJJU08tODg1OS0xXCI7IiwgbWVkaWFSdWxlLmNzc1J1bGVzLmxlbmd0aCk7CiAgICAg
ICAgICAgICAgICAgICAgbG9nKCJGQUlMOiBhbiBleGNlcHRpb24gc2hvdWxkIGhhdmUgYmVlbiB0
aHJvd24hIik7CiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAg
ICAgaWYgKGUuY29kZSA9PSAzKQogICAgICAgICAgICAgICAgICAgICAgICBsb2coIlBBU1M6IEV4
Y2VwdGlvbiByYWlzZWQgc3VjY2Vzc2Z1bGx5LiBUeXBlOiAiICsgZSk7CiAgICAgICAgICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICBsb2coIkZBSUw6IHdyb25nIGV4Y2Vw
dGlvbiB0eXBlIHRocm93bi4gIiArIGUuY29kZSArICIgd2FzIHRocm93biwgc2hvdWxkIG9mIGJl
ZW4gRXJyb3I6IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjogRE9NIEV4Y2VwdGlvbiAzISIpOwogICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAv
LyBOZXN0ZWQgTWVkaWFSdWxlIGlsbGVnYWwgaW5zaWRlIGEgTWVkaWFSdWxlLgogICAgICAgICAg
ICAgICAgICAgIHZhciBpbmRleCA9IG1lZGlhUnVsZS5pbnNlcnRSdWxlKCJAbWVkaWEgc2NyZWVu
IHsgcCB7IGNvbG9yOiByZWQ7IH0gfTsiLCBtZWRpYVJ1bGUuY3NzUnVsZXMubGVuZ3RoKTsKICAg
ICAgICAgICAgICAgICAgICBsb2coIkZBSUw6IGFuIGV4Y2VwdGlvbiBzaG91bGQgaGF2ZSBiZWVu
IHRocm93biEiKTsKICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAg
ICAgICBpZiAoZS5jb2RlID09IDMpCiAgICAgICAgICAgICAgICAgICAgICAgIGxvZygiUEFTUzog
RXhjZXB0aW9uIHJhaXNlZCBzdWNjZXNzZnVsbHkuIFR5cGU6ICIgKyBlKTsKICAgICAgICAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIGxvZygiRkFJTDogd3JvbmcgZXhj
ZXB0aW9uIHR5cGUgdGhyb3duLiAiICsgZS5jb2RlICsgIiB3YXMgdGhyb3duLCBzaG91bGQgb2Yg
YmVlbiBFcnJvcjogSElFUkFSQ0hZX1JFUVVFU1RfRVJSOiBET00gRXhjZXB0aW9uIDMhIik7CiAg
ICAgICAgICAgICAgICB9CgoKICAgICAgICAgICAgICAgIC8vIENTU01lZGlhUnVsZS5kZWxldGVS
dWxlKGluZGV4KSB0ZXN0cwoKICAgICAgICAgICAgICAgIC8vIFRlc3QgdGhhdCBkZWxldGVSdWxl
IHdvcmtzLgogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICBtZWRpYVJ1
bGUuZGVsZXRlUnVsZShtZWRpYVJ1bGUuY3NzUnVsZXMubGVuZ3RoIC0gMSk7CiAgICAgICAgICAg
ICAgICAgICAgbG9nKCJQQVNTOiBObyBleGNlcHRpb24gcmFpc2VkISBSdWxlIGF0IHBvc2l0aW9u
ICdsZW5ndGggLSAxJyBkZWxldGVkIHN1Y2Nlc3NmdWxseS4iKTsKICAgICAgICAgICAgICAgIH0g
Y2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgICBsb2coIkZBSUw6IG5vIGV4Y2VwdGlvbiBz
aG91bGQgaGF2ZSBiZWVuIHRocm93biEgVHlwZSBvZiB0aHJvd24gZXhjZXB0aW9uIHdhczogIiAr
IGUpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIFRlc3QgdGhhdCBkZWxl
dGVSdWxlIHJhaXNlcyBhbiBleGNlcHRpb24gZm9yIHNwZWNpZmllZCBpbmRleGVzIG5vdCBjb3Jy
ZXNwb25kaW5nIHRvIGEgCiAgICAgICAgICAgICAgICAvLyBydWxlIGluIHRoZSBtZWRpYSBydWxl
IGxpc3QuCiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIG1lZGlhUnVs
ZS5kZWxldGVSdWxlKG1lZGlhUnVsZS5jc3NSdWxlcy5sZW5ndGgpOwogICAgICAgICAgICAgICAg
ICAgIGxvZygiRkFJTDogYW4gZXhjZXB0aW9uIHNob3VsZCBoYXZlIGJlZW4gdGhyb3duISIpOwog
ICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgIGlmIChlLmNv
ZGUgPT0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJQQVNTOiBFeGNlcHRpb24gcmFp
c2VkIHN1Y2Nlc3NmdWxseS4gVHlwZTogIiArIGUpOwogICAgICAgICAgICAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJGQUlMOiB3cm9uZyBleGNlcHRpb24gdHlwZSB0
aHJvd24uICIgKyBlICsgIiB3YXMgdGhyb3duLCBzaG91bGQgb2YgYmVlbiAnRXJyb3I6IElOREVY
X1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEnLiIpOwogICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICBtZWRpYVJ1bGUuZGVsZXRlUnVsZSgt
MSk7CiAgICAgICAgICAgICAgICAgICAgbG9nKCJGQUlMOiBhbiBleGNlcHRpb24gc2hvdWxkIGhh
dmUgYmVlbiB0aHJvd24hIik7CiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAg
ICAgICAgICAgICAgaWYgKGUuY29kZSA9PSAxKQogICAgICAgICAgICAgICAgICAgICAgICBsb2co
IlBBU1M6IEV4Y2VwdGlvbiByYWlzZWQgc3VjY2Vzc2Z1bGx5LiBUeXBlOiAiICsgZSk7CiAgICAg
ICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICBsb2coIkZBSUw6IHdy
b25nIGV4Y2VwdGlvbiB0eXBlIHRocm93bi4gIiArIGUgKyAiIHdhcyB0aHJvd24sIHNob3VsZCBv
ZiBiZWVuICdFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMScuIik7CiAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICA8L3NjcmlwdD4KICAgIDwvaGVhZD4K
ICAgIDxib2R5IG9ubG9hZD0idGVzdCgpOyI+CiAgICAgICAgPHA+VGhpcyB0ZXN0cyB0aGUgaW5z
ZXJ0UnVsZShydWxlLCBpbmRleCkgYW5kIGRlbGV0ZVJ1bGUoaW5kZXgpIG1ldGhvZHMgb2YgdGhl
IENTU01lZGlhUnVsZSBpbnRlcmZhY2UuICBJdCBoYXMgcGFzc2VkIGlmCiAgICAgICAgICAgIGFs
bCBvZiB0aGUgb3V0cHV0IGJlbG93IGJlZ2lucyB3aXRoIHRoZSB0ZXh0ICJQQVNTIi4gIAogICAg
ICAgIDxvbCBpZD0iY29uc29sZSI+CiAgICAgICAgPC9vbD4KICAgIDwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11989</attachid>
            <date>2006-12-23 09:23:28 -0800</date>
            <delta_ts>2006-12-23 12:15:42 -0800</delta_ts>
            <desc>updated patch</desc>
            <filename>mediaRule2.diff</filename>
            <type>text/plain</type>
            <size>16963</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE4NDAyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDYtMTItMjMgIFNhbSBXZWluaWcgIDxzYW1A
d2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0cyBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4
NzYKKyAgICAgICAgQ1NTTWVkaWFSdWxlIGZ1bmN0aW9ucyBpbnNlcnRSdWxlIGFuZCBkZWxldGVS
dWxlIGRvbid0IHJhaXNlIGV4Y2VwdGlvbnMKKworICAgICAgICAqIGZhc3QvZG9tL2Nzcy1tZWRp
YXJ1bGUtZnVuY3Rpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
Y3NzLW1lZGlhcnVsZS1mdW5jdGlvbnMuaHRtbDogQWRkZWQuCisKIDIwMDYtMTItMjMgIERhdmlk
IEtpbHplciAgPGRka2lsemVyQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWl0
ei4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL2Nzcy1tZWRpYXJ1bGUtZnVuY3Rpb25zLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9jc3MtbWVkaWFy
dWxlLWZ1bmN0aW9ucy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9jc3MtbWVkaWFydWxlLWZ1bmN0aW9ucy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTMgQEAKK1RoaXMgdGVzdHMgdGhlIGluc2VydFJ1bGUocnVsZSwgaW5kZXgp
IGFuZCBkZWxldGVSdWxlKGluZGV4KSBtZXRob2RzIG9mIHRoZSBDU1NNZWRpYVJ1bGUgaW50ZXJm
YWNlLiBJdCBoYXMgcGFzc2VkIGlmIGFsbCBvZiB0aGUgb3V0cHV0IGJlbG93IGJlZ2lucyB3aXRo
IHRoZSB0ZXh0ICJQQVNTIi4KKworUEFTUzogTm8gZXhjZXB0aW9uIHJhaXNlZCEgTmV3IHJ1bGUg
aW5zZXJ0ZWQgc3VjY2Vzc2Z1bGx5LgorUEFTUzogRXhjZXB0aW9uIHJhaXNlZCBzdWNjZXNzZnVs
bHkuIFR5cGU6IEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxCitQQVNTOiBF
eGNlcHRpb24gcmFpc2VkIHN1Y2Nlc3NmdWxseS4gVHlwZTogRXJyb3I6IElOREVYX1NJWkVfRVJS
OiBET00gRXhjZXB0aW9uIDEKK1BBU1M6IEV4Y2VwdGlvbiByYWlzZWQgc3VjY2Vzc2Z1bGx5LiBU
eXBlOiBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2VwdGlvbiAxMgorUEFTUzogRXhjZXB0aW9u
IHJhaXNlZCBzdWNjZXNzZnVsbHkuIFR5cGU6IEVycm9yOiBISUVSQVJDSFlfUkVRVUVTVF9FUlI6
IERPTSBFeGNlcHRpb24gMworRkFJTDogd3JvbmcgZXhjZXB0aW9uIHR5cGUgdGhyb3duLiAxMiB3
YXMgdGhyb3duLCBzaG91bGQgb2YgYmVlbiBFcnJvcjogSElFUkFSQ0hZX1JFUVVFU1RfRVJSOiBE
T00gRXhjZXB0aW9uIDMhCitGQUlMOiB3cm9uZyBleGNlcHRpb24gdHlwZSB0aHJvd24uIDEyIHdh
cyB0aHJvd24sIHNob3VsZCBvZiBiZWVuIEVycm9yOiBISUVSQVJDSFlfUkVRVUVTVF9FUlI6IERP
TSBFeGNlcHRpb24gMyEKK1BBU1M6IE5vIGV4Y2VwdGlvbiByYWlzZWQhIFJ1bGUgYXQgcG9zaXRp
b24gJ2xlbmd0aCAtIDEnIGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5LgorUEFTUzogRXhjZXB0aW9uIHJh
aXNlZCBzdWNjZXNzZnVsbHkuIFR5cGU6IEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxCitQQVNTOiBFeGNlcHRpb24gcmFpc2VkIHN1Y2Nlc3NmdWxseS4gVHlwZTogRXJyb3I6
IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vY3NzLW1lZGlhcnVsZS1mdW5jdGlvbnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9jc3MtbWVkaWFydWxlLWZ1bmN0aW9ucy5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vY3NzLW1lZGlhcnVsZS1mdW5jdGlvbnMuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKyAg
ICA8aGVhZD4KKyAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50
PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgorICAgICAgICA8dGl0bGU+Q1NTTWVkaWFSdWxl
IGZ1bmN0aW9ucyB0ZXN0PC90aXRsZT4KKyAgICAgICAgPHN0eWxlIGlkPSJzdHlsZTEiPgorICAg
ICAgICAgICAgQG1lZGlhIGFsbCB7IC50ZXN0IHsgY29sb3I6IGdyZWVuOyB9IH0KKyAgICAgICAg
PC9zdHlsZT4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGZ1bmN0aW9uIGxvZyhtZXNz
YWdlKSB7CisgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJsaSIpOworICAgICAgICAgICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUobWVzc2FnZSkpOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoaXRlbSk7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgICAgICAgICAgdmFyIHN0eWxlU2hlZXQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnc3R5bGUxJykuc2hlZXQ7CisgICAgICAgICAgICAgICAgdmFy
IG1lZGlhUnVsZSA9IHN0eWxlU2hlZXQuY3NzUnVsZXNbMF07CisKKyAgICAgICAgICAgICAgICAv
LyBDU1NNZWRpYVJ1bGUuaW5zZXJ0UnVsZShydWxlLCBpbmRleCkgdGVzdHMKKworICAgICAgICAg
ICAgICAgIC8vIFRlc3QgdGhhdCBpbnNlcnRSdWxlIHdvcmtzLgorICAgICAgICAgICAgICAgIHRy
eSB7CisgICAgICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IG1lZGlhUnVsZS5pbnNlcnRSdWxl
KCIudGVzdDIgeyBjb2xvcjogYmx1ZTsgfSIsIG1lZGlhUnVsZS5jc3NSdWxlcy5sZW5ndGgpOwor
ICAgICAgICAgICAgICAgICAgICBsb2coIlBBU1M6IE5vIGV4Y2VwdGlvbiByYWlzZWQhIE5ldyBy
dWxlIGluc2VydGVkIHN1Y2Nlc3NmdWxseS4iKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgICAgICAgICAgICAgIGxvZygiRkFJTDogbm8gZXhjZXB0aW9uIHNob3VsZCBo
YXZlIGJlZW4gdGhyb3duISBUeXBlIG9mIHRocm93biBleGNlcHRpb24gd2FzOiAiICsgZSk7Cisg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gVGVzdCB0aGF0IGluc2VydFJ1
bGUgcmFpc2VzIGFuIGV4Y2VwdGlvbiBmb3IgaW5kZXhlcyBncmVhdGVyIHRoYW4gdGhlIGxlbmd0
aCBvZiB0aGUgbGlzdC4KKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAg
ICB2YXIgaW5kZXggPSBtZWRpYVJ1bGUuaW5zZXJ0UnVsZSgicCB7Y29sb3I6IHJlZDsgfSIsIG1l
ZGlhUnVsZS5jc3NSdWxlcy5sZW5ndGggKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJG
QUlMOiBhbiBleGNlcHRpb24gc2hvdWxkIGhhdmUgYmVlbiB0aHJvd24hIik7CisgICAgICAgICAg
ICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZS5jb2RlID09IDEp
CisgICAgICAgICAgICAgICAgICAgICAgICBsb2coIlBBU1M6IEV4Y2VwdGlvbiByYWlzZWQgc3Vj
Y2Vzc2Z1bGx5LiBUeXBlOiAiICsgZSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGxvZygiRkFJTDogd3JvbmcgZXhjZXB0aW9uIHR5cGUgdGhyb3du
LiAiICsgZSArICIgd2FzIHRocm93biwgc2hvdWxkIG9mIGJlZW4gJ0Vycm9yOiBJTkRFWF9TSVpF
X0VSUjogRE9NIEV4Y2VwdGlvbiAxJy4iKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgICAgICAvLyBUZXN0IHRoYXQgaW5zZXJ0UnVsZSByYWlzZXMgYW4gZXhjZXB0aW9uIGZvciBp
bmRleGVzIGxlc3MgdGhhbiAwLgorICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAg
ICAgICAgIHZhciBpbmRleCA9IG1lZGlhUnVsZS5pbnNlcnRSdWxlKCJwIHtjb2xvcjogcmVkOyB9
IiwgLTEpOworICAgICAgICAgICAgICAgICAgICBsb2coIkZBSUw6IGFuIGV4Y2VwdGlvbiBzaG91
bGQgaGF2ZSBiZWVuIHRocm93biEiKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChlLmNvZGUgPT0gMSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxvZygiUEFTUzogRXhjZXB0aW9uIHJhaXNlZCBzdWNjZXNzZnVsbHkuIFR5cGU6ICIgKyBl
KTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgbG9n
KCJGQUlMOiB3cm9uZyBleGNlcHRpb24gdHlwZSB0aHJvd24uICIgKyBlICsgIiB3YXMgdGhyb3du
LCBzaG91bGQgb2YgYmVlbiAnRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEn
LiIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIFRlc3QgdGhhdCBp
bnNlcnRSdWxlIHJhaXNlcyBhbiBleGNlcHRpb24gZm9yIG1hbGZvcm1lZCBydWxlcy4KKyAgICAg
ICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSBtZWRpYVJ1
bGUuaW5zZXJ0UnVsZSgiYmFkYmVlZiB9eyIsIG1lZGlhUnVsZS5jc3NSdWxlcy5sZW5ndGgpOwor
ICAgICAgICAgICAgICAgICAgICBsb2coIkZBSUw6IGFuIGV4Y2VwdGlvbiBzaG91bGQgaGF2ZSBi
ZWVuIHRocm93biEiKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChlLmNvZGUgPT0gMTIpCisgICAgICAgICAgICAgICAgICAgICAgICBsb2co
IlBBU1M6IEV4Y2VwdGlvbiByYWlzZWQgc3VjY2Vzc2Z1bGx5LiBUeXBlOiAiICsgZSk7CisgICAg
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZygiRkFJTDog
d3JvbmcgZXhjZXB0aW9uIHR5cGUgdGhyb3duLiAiICsgZSArICIgd2FzIHRocm93biwgc2hvdWxk
IG9mIGJlZW4gRXJyb3I6IFNZTlRBWF9FUlI6IERPTSBFeGNlcHRpb24gMTIhIik7CisgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gVGVzdCB0aGF0IGluc2VydFJ1bGUgcmFp
c2VzIGFuIGV4Y2VwdGlvbiBmb3IgaWxsZWdhbGx5IHBsYWNlZCBydWxlcy4KKyAgICAgICAgICAg
ICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAvLyBJbXBvcnRSdWxlIGlsbGVnYWwgaW5z
aWRlIGEgTWVkaWFSdWxlLgorICAgICAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSBtZWRpYVJ1
bGUuaW5zZXJ0UnVsZSgiQGltcG9ydCB1cmwoc2hlZXQuY3NzKTsiLCBtZWRpYVJ1bGUuY3NzUnVs
ZXMubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJGQUlMOiBhbiBleGNlcHRpb24g
c2hvdWxkIGhhdmUgYmVlbiB0aHJvd24hIik7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkg
eworICAgICAgICAgICAgICAgICAgICBpZiAoZS5jb2RlID09IDMpCisgICAgICAgICAgICAgICAg
ICAgICAgICBsb2coIlBBU1M6IEV4Y2VwdGlvbiByYWlzZWQgc3VjY2Vzc2Z1bGx5LiBUeXBlOiAi
ICsgZSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxvZygiRkFJTDogd3JvbmcgZXhjZXB0aW9uIHR5cGUgdGhyb3duLiAiICsgZS5jb2RlICsgIiB3
YXMgdGhyb3duLCBzaG91bGQgb2YgYmVlbiBFcnJvcjogSElFUkFSQ0hZX1JFUVVFU1RfRVJSOiBE
T00gRXhjZXB0aW9uIDMhIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRy
eSB7CisgICAgICAgICAgICAgICAgICAgIC8vIENoYXJzZXRSdWxlIGlsbGVnYWwgaW5zaWRlIGEg
TWVkaWFSdWxlLgorICAgICAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSBtZWRpYVJ1bGUuaW5z
ZXJ0UnVsZSgiQGNoYXJzZXQgXCJJU08tODg1OS0xXCI7IiwgbWVkaWFSdWxlLmNzc1J1bGVzLmxl
bmd0aCk7CisgICAgICAgICAgICAgICAgICAgIGxvZygiRkFJTDogYW4gZXhjZXB0aW9uIHNob3Vs
ZCBoYXZlIGJlZW4gdGhyb3duISIpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGUuY29kZSA9PSAzKQorICAgICAgICAgICAgICAgICAgICAg
ICAgbG9nKCJQQVNTOiBFeGNlcHRpb24gcmFpc2VkIHN1Y2Nlc3NmdWxseS4gVHlwZTogIiArIGUp
OworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBsb2co
IkZBSUw6IHdyb25nIGV4Y2VwdGlvbiB0eXBlIHRocm93bi4gIiArIGUuY29kZSArICIgd2FzIHRo
cm93biwgc2hvdWxkIG9mIGJlZW4gRXJyb3I6IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjogRE9NIEV4
Y2VwdGlvbiAzISIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0cnkgewor
ICAgICAgICAgICAgICAgICAgICAvLyBOZXN0ZWQgTWVkaWFSdWxlIGlsbGVnYWwgaW5zaWRlIGEg
TWVkaWFSdWxlLgorICAgICAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSBtZWRpYVJ1bGUuaW5z
ZXJ0UnVsZSgiQG1lZGlhIHNjcmVlbiB7IHAgeyBjb2xvcjogcmVkOyB9IH07IiwgbWVkaWFSdWxl
LmNzc1J1bGVzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgIGxvZygiRkFJTDogYW4gZXhj
ZXB0aW9uIHNob3VsZCBoYXZlIGJlZW4gdGhyb3duISIpOworICAgICAgICAgICAgICAgIH0gY2F0
Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGUuY29kZSA9PSAzKQorICAgICAgICAg
ICAgICAgICAgICAgICAgbG9nKCJQQVNTOiBFeGNlcHRpb24gcmFpc2VkIHN1Y2Nlc3NmdWxseS4g
VHlwZTogIiArIGUpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgICAgICBsb2coIkZBSUw6IHdyb25nIGV4Y2VwdGlvbiB0eXBlIHRocm93bi4gIiArIGUuY29k
ZSArICIgd2FzIHRocm93biwgc2hvdWxkIG9mIGJlZW4gRXJyb3I6IEhJRVJBUkNIWV9SRVFVRVNU
X0VSUjogRE9NIEV4Y2VwdGlvbiAzISIpOworICAgICAgICAgICAgICAgIH0KKworCisgICAgICAg
ICAgICAgICAgLy8gQ1NTTWVkaWFSdWxlLmRlbGV0ZVJ1bGUoaW5kZXgpIHRlc3RzCisKKyAgICAg
ICAgICAgICAgICAvLyBUZXN0IHRoYXQgZGVsZXRlUnVsZSB3b3Jrcy4KKyAgICAgICAgICAgICAg
ICB0cnkgeworICAgICAgICAgICAgICAgICAgICBtZWRpYVJ1bGUuZGVsZXRlUnVsZShtZWRpYVJ1
bGUuY3NzUnVsZXMubGVuZ3RoIC0gMSk7CisgICAgICAgICAgICAgICAgICAgIGxvZygiUEFTUzog
Tm8gZXhjZXB0aW9uIHJhaXNlZCEgUnVsZSBhdCBwb3NpdGlvbiAnbGVuZ3RoIC0gMScgZGVsZXRl
ZCBzdWNjZXNzZnVsbHkuIik7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAg
ICAgICAgICAgICAgICBsb2coIkZBSUw6IG5vIGV4Y2VwdGlvbiBzaG91bGQgaGF2ZSBiZWVuIHRo
cm93biEgVHlwZSBvZiB0aHJvd24gZXhjZXB0aW9uIHdhczogIiArIGUpOworICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICAgIC8vIFRlc3QgdGhhdCBkZWxldGVSdWxlIHJhaXNlcyBh
biBleGNlcHRpb24gZm9yIHNwZWNpZmllZCBpbmRleGVzIG5vdCBjb3JyZXNwb25kaW5nIHRvIGEg
CisgICAgICAgICAgICAgICAgLy8gcnVsZSBpbiB0aGUgbWVkaWEgcnVsZSBsaXN0LgorICAgICAg
ICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIG1lZGlhUnVsZS5kZWxldGVSdWxl
KG1lZGlhUnVsZS5jc3NSdWxlcy5sZW5ndGgpOworICAgICAgICAgICAgICAgICAgICBsb2coIkZB
SUw6IGFuIGV4Y2VwdGlvbiBzaG91bGQgaGF2ZSBiZWVuIHRocm93biEiKTsKKyAgICAgICAgICAg
ICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChlLmNvZGUgPT0gMSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxvZygiUEFTUzogRXhjZXB0aW9uIHJhaXNlZCBzdWNj
ZXNzZnVsbHkuIFR5cGU6ICIgKyBlKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICAgICAgbG9nKCJGQUlMOiB3cm9uZyBleGNlcHRpb24gdHlwZSB0aHJvd24u
ICIgKyBlICsgIiB3YXMgdGhyb3duLCBzaG91bGQgb2YgYmVlbiAnRXJyb3I6IElOREVYX1NJWkVf
RVJSOiBET00gRXhjZXB0aW9uIDEnLiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBtZWRpYVJ1bGUuZGVsZXRlUnVsZSgtMSk7
CisgICAgICAgICAgICAgICAgICAgIGxvZygiRkFJTDogYW4gZXhjZXB0aW9uIHNob3VsZCBoYXZl
IGJlZW4gdGhyb3duISIpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKGUuY29kZSA9PSAxKQorICAgICAgICAgICAgICAgICAgICAgICAgbG9n
KCJQQVNTOiBFeGNlcHRpb24gcmFpc2VkIHN1Y2Nlc3NmdWxseS4gVHlwZTogIiArIGUpOworICAg
ICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBsb2coIkZBSUw6
IHdyb25nIGV4Y2VwdGlvbiB0eXBlIHRocm93bi4gIiArIGUgKyAiIHdhcyB0aHJvd24sIHNob3Vs
ZCBvZiBiZWVuICdFcnJvcjogSU5ERVhfU0laRV9FUlI6IERPTSBFeGNlcHRpb24gMScuIik7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8
L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJ0ZXN0KCk7Ij4KKyAgICAgICAgPHA+VGhpcyB0ZXN0
cyB0aGUgaW5zZXJ0UnVsZShydWxlLCBpbmRleCkgYW5kIGRlbGV0ZVJ1bGUoaW5kZXgpIG1ldGhv
ZHMgb2YgdGhlIENTU01lZGlhUnVsZSBpbnRlcmZhY2UuICBJdCBoYXMgcGFzc2VkIGlmCisgICAg
ICAgICAgICBhbGwgb2YgdGhlIG91dHB1dCBiZWxvdyBiZWdpbnMgd2l0aCB0aGUgdGV4dCAiUEFT
UyIuICAKKyAgICAgICAgPG9sIGlkPSJjb25zb2xlIj4KKyAgICAgICAgPC9vbD4KKyAgICA8L2Jv
ZHk+Cis8L2h0bWw+CkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg0MDIpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDA2LTEyLTIzICBTYW0gV2VpbmlnICA8c2Ft
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUGF0Y2ggZm9yIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
ODc2CisgICAgICAgIENTU01lZGlhUnVsZSBmdW5jdGlvbnMgaW5zZXJ0UnVsZSBhbmQgZGVsZXRl
UnVsZSBkb24ndCByYWlzZSBleGNlcHRpb25zCisKKyAgICAgICAgVGVzdCBhZGRlZDoKKyAgICAg
ICAgKiBmYXN0L2RvbS9jc3MtbWVkaWFydWxlLWZ1bmN0aW9ucy5odG1sCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9ranNfY3NzLmNwcDoKKyAgICAgICAgKEtKUzo6RE9NQ1NTUnVsZUZ1bmM6OmNh
bGxBc0Z1bmN0aW9uKToKKyAgICAgICAgKiBjc3MvQ1NTTWVkaWFSdWxlLmNwcDogYWRkIGV4Y2Vw
dGlvbiBoYW5kbGluZworICAgICAgICAoV2ViQ29yZTo6Q1NTTWVkaWFSdWxlOjppbnNlcnRSdWxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU01lZGlhUnVsZTo6ZGVsZXRlUnVsZSk6CisgICAgICAg
ICogY3NzL0NTU01lZGlhUnVsZS5oOiBhZGQgRXhjZXB0aW9uQ29kZSBhcmd1bWVudHMKKyAgICAg
ICAgKiBjc3MvQ1NTTWVkaWFSdWxlLmlkbDogdW4tY29tbWVudCBleGNlcHRpb25zCisKIDIwMDYt
MTItMjMgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCAxMTk0
Mi4gIFRoZSBpbmhlcml0YWJsZSBwcm9wZXJ0aWVzIGFycmF5IGlzIGR1cGxpY2F0ZWQgKGxhbWUp
LiAgTWFrZQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfY3NzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19jc3MuY3BwCShyZXZpc2lvbiAxODQwMikKKysr
IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2Nzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUsNiAr
NSw3IEBACiAgKiAgQ29weXJpZ2h0IChDKSAyMDAxIFBldGVyIEtlbGx5IChwbWtAcG9zdC5jb20p
CiAgKiAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KICAqICBD
b3B5cmlnaHQgKEMpIDIwMDYgSmFtZXMgRy4gU3BldGggKHNwZXRoQGVuZC5jb20pCisgKiAgQ29w
eXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgKHNhbUB3ZWJraXQub3JnKQogICoKICAqICBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYwpAQCAtODQzLDE0ICs4NDQsMjMgQEAgSlNWYWx1ZSogRE9NQ1NTUnVsZUZ1bmM6
OmNhbGxBc0Z1bmN0aW9uKAogewogICBpZiAoIXRoaXNPYmotPmluaGVyaXRzKCZLSlM6OkRPTUNT
U1J1bGU6OmluZm8pKQogICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIFR5cGVFcnJvcik7Ci0g
IENTU1J1bGUgJmNzc1J1bGUgPSAqc3RhdGljX2Nhc3Q8RE9NQ1NTUnVsZSo+KHRoaXNPYmopLT5p
bXBsKCk7CisgIENTU1J1bGUmIGNzc1J1bGUgPSAqc3RhdGljX2Nhc3Q8RE9NQ1NTUnVsZSo+KHRo
aXNPYmopLT5pbXBsKCk7CiAKICAgaWYgKGNzc1J1bGUudHlwZSgpID09IENTU1J1bGU6Ok1FRElB
X1JVTEUpIHsKLSAgICBDU1NNZWRpYVJ1bGUgJnJ1bGUgPSBzdGF0aWNfY2FzdDxDU1NNZWRpYVJ1
bGUgJj4oY3NzUnVsZSk7Ci0gICAgaWYgKGlkID09IERPTUNTU1J1bGU6Ok1lZGlhX0luc2VydFJ1
bGUpCi0gICAgICByZXR1cm4ganNOdW1iZXIocnVsZS5pbnNlcnRSdWxlKGFyZ3NbMF0tPnRvU3Ry
aW5nKGV4ZWMpLCBhcmdzWzFdLT50b0ludDMyKGV4ZWMpKSk7Ci0gICAgZWxzZSBpZiAoaWQgPT0g
RE9NQ1NTUnVsZTo6TWVkaWFfRGVsZXRlUnVsZSkKLSAgICAgIHJ1bGUuZGVsZXRlUnVsZShhcmdz
WzBdLT50b0ludDMyKGV4ZWMpKTsKKyAgICBDU1NNZWRpYVJ1bGUmIHJ1bGUgPSBzdGF0aWNfY2Fz
dDxDU1NNZWRpYVJ1bGUmPihjc3NSdWxlKTsKKyAgICBzd2l0Y2ggKGlkKSB7CisgICAgICBjYXNl
IERPTUNTU1J1bGU6Ok1lZGlhX0luc2VydFJ1bGU6IHsKKyAgICAgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CisgICAgICAgIEpTVmFsdWUqIHJlc3VsdCA9IGpzTnVtYmVyKHJ1bGUuaW5zZXJ0UnVs
ZShhcmdzWzBdLT50b1N0cmluZyhleGVjKSwgYXJnc1sxXS0+dG9JbnQzMihleGVjKSwgZWMpKTsK
KyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICAgIH0KKyAgICAgIGNhc2UgRE9NQ1NTUnVsZTo6TWVkaWFfRGVsZXRlUnVsZTogewor
ICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICAgICAgcnVsZS5kZWxldGVSdWxlKGFy
Z3NbMF0tPnRvSW50MzIoZXhlYyksIGVjKTsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMs
IGVjKTsKKyAgICAgIH0KKyAgICB9CiAgIH0KIAogICByZXR1cm4ganNVbmRlZmluZWQoKTsKSW5k
ZXg6IFdlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9j
c3MvQ1NTTWVkaWFSdWxlLmNwcAkocmV2aXNpb24gMTg0MDIpCisrKyBXZWJDb3JlL2Nzcy9DU1NN
ZWRpYVJ1bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00LDYgKzQsNyBAQAogICogKEMpIDE5OTkt
MjAwMyBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogKEMpIDIwMDItMjAwMyBEaXJrIE11
ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNSwgMjAw
NiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWlu
aWcgKHNhbUB3ZWJraXQub3JnKQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMCwxMiArMjEsMTQg
QEAKICAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFj
ZSAtIFN1aXRlIDMzMCwKICAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgogICovCisKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDU1NNZWRpYVJ1bGUuaCIKIAotI2luY2x1ZGUg
ImNzc3BhcnNlci5oIgogI2luY2x1ZGUgIkNTU1J1bGVMaXN0LmgiCisjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZS5oIgogI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgorI2luY2x1ZGUgImNzc3BhcnNlci5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTczLDE4ICs3Niw0NyBAQCB1bnNpZ25lZCBD
U1NNZWRpYVJ1bGU6OmFwcGVuZChDU1NSdWxlKiByCiAgICAgcmV0dXJuIG1fbHN0Q1NTUnVsZXMt
Pmluc2VydFJ1bGUocnVsZSwgbV9sc3RDU1NSdWxlcy0+bGVuZ3RoKCkpOwogfQogCi11bnNpZ25l
ZCBDU1NNZWRpYVJ1bGU6Omluc2VydFJ1bGUoY29uc3QgU3RyaW5nJiBydWxlLCB1bnNpZ25lZCBp
bmRleCkKK3Vuc2lnbmVkIENTU01lZGlhUnVsZTo6aW5zZXJ0UnVsZShjb25zdCBTdHJpbmcmIHJ1
bGUsIHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBDU1NQYXJzZXIg
cCh1c2VTdHJpY3RQYXJzaW5nKCkpOwogICAgIFJlZlB0cjxDU1NSdWxlPiBuZXdSdWxlID0gcC5w
YXJzZVJ1bGUocGFyZW50U3R5bGVTaGVldCgpLCBydWxlKTsKLSAgICBpZiAoIW5ld1J1bGUpCisg
ICAgaWYgKCFuZXdSdWxlKSB7CisgICAgICAgIC8vIFNZTlRBWF9FUlI6IFJhaXNlZCBpZiB0aGUg
c3BlY2lmaWVkIHJ1bGUgaGFzIGEgc3ludGF4IGVycm9yIGFuZCBpcyB1bnBhcnNhYmxlLgorICAg
ICAgICBlYyA9IFNZTlRBWF9FUlI7CiAgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGlm
IChuZXdSdWxlLT5pc0ltcG9ydFJ1bGUoKSkgeworICAgICAgICAvLyBGSVhNRTogYW4gSElFUkFS
Q0hZX1JFUVVFU1RfRVJSIHNob3VsZCBhbHNvIGJlIHRocm93biBmb3IgYSBAY2hhcnNldCBvciBh
IG5lc3RlZAorICAgICAgICAvLyBAbWVkaWEgcnVsZS4gIFRoZXkgYXJlIGN1cnJlbnRseSBub3Qg
Z2V0dGluZyBwYXJzZWQsIHJlc3VsdGluZyBpbiBhIFNZTlRBWF9FUlIKKyAgICAgICAgLy8gdG8g
Z2V0IHJhaXNlZCBhYm92ZS4KKworICAgICAgICAvLyBISUVSQVJDSFlfUkVRVUVTVF9FUlI6IFJh
aXNlZCBpZiB0aGUgcnVsZSBjYW5ub3QgYmUgaW5zZXJ0ZWQgYXQgdGhlIHNwZWNpZmllZCAKKyAg
ICAgICAgLy8gaW5kZXgsIGUuZy4sIGlmIGFuIEBpbXBvcnQgcnVsZSBpcyBpbnNlcnRlZCBhZnRl
ciBhIHN0YW5kYXJkIHJ1bGUgc2V0IG9yIG90aGVyCisgICAgICAgIC8vIGF0LXJ1bGUuCisgICAg
ICAgIGVjID0gSElFUkFSQ0hZX1JFUVVFU1RfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9
CisKKyAgICBpZiAoaW5kZXggPiBtX2xzdENTU1J1bGVzLT5sZW5ndGgoKSkgeworICAgICAgICAv
LyBJTkRFWF9TSVpFX0VSUjogUmFpc2VkIGlmIHRoZSBzcGVjaWZpZWQgaW5kZXggaXMgbm90IGEg
dmFsaWQgaW5zZXJ0aW9uIHBvaW50LgorICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOworICAg
ICAgICByZXR1cm4gMDsKKyAgICB9CisKICAgICBuZXdSdWxlLT5zZXRQYXJlbnQodGhpcyk7CiAg
ICAgcmV0dXJuIG1fbHN0Q1NTUnVsZXMtPmluc2VydFJ1bGUobmV3UnVsZS5nZXQoKSwgaW5kZXgp
OwogfQogCi12b2lkIENTU01lZGlhUnVsZTo6ZGVsZXRlUnVsZSh1bnNpZ25lZCBpbmRleCkKK3Zv
aWQgQ1NTTWVkaWFSdWxlOjpkZWxldGVSdWxlKHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKKyAgICBpZiAoaW5kZXggPj0gbV9sc3RDU1NSdWxlcy0+bGVuZ3RoKCkpIHsKKyAg
ICAgICAgLy8gSU5ERVhfU0laRV9FUlI6IFJhaXNlZCBpZiB0aGUgc3BlY2lmaWVkIGluZGV4IGRv
ZXMgbm90IGNvcnJlc3BvbmQgdG8gYSAKKyAgICAgICAgLy8gcnVsZSBpbiB0aGUgbWVkaWEgcnVs
ZSBsaXN0LgorICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCiAgICAgbV9sc3RDU1NSdWxlcy0+ZGVsZXRlUnVsZShpbmRleCk7CiB9CiAKSW5kZXg6
IFdlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NT
U01lZGlhUnVsZS5oCShyZXZpc2lvbiAxODQwMikKKysrIFdlYkNvcmUvY3NzL0NTU01lZGlhUnVs
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00LDYgKzQsNyBAQAogICogKEMpIDE5OTktMjAwMyBMYXJz
IEtub2xsIChrbm9sbEBrZGUub3JnKQogICogKEMpIDIwMDItMjAwMyBEaXJrIE11ZWxsZXIgKG11
ZWxsZXJAa2RlLm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNiBBcHBsZSBDb21wdXRl
ciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgKHNhbUB3ZWJraXQu
b3JnKQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMiw2ICszMyw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIENTU1J1bGVMaXN0OwogY2xhc3MgTWVkaWFMaXN0OwogCit0eXBlZGVmIGlu
dCBFeGNlcHRpb25Db2RlOworCiBjbGFzcyBDU1NNZWRpYVJ1bGUgOiBwdWJsaWMgQ1NTUnVsZQog
ewogcHVibGljOgpAQCAtNDMsOCArNDYsOCBAQCBwdWJsaWM6CiAgICAgTWVkaWFMaXN0KiBtZWRp
YSgpIGNvbnN0IHsgcmV0dXJuIG1fbHN0TWVkaWEuZ2V0KCk7IH0KICAgICBDU1NSdWxlTGlzdCog
Y3NzUnVsZXMoKSB7IHJldHVybiBtX2xzdENTU1J1bGVzLmdldCgpOyB9CiAKLSAgICB1bnNpZ25l
ZCBpbnNlcnRSdWxlKGNvbnN0IFN0cmluZyYgcnVsZSwgdW5zaWduZWQgaW5kZXgpOwotICAgIHZv
aWQgZGVsZXRlUnVsZSh1bnNpZ25lZCBpbmRleCk7CisgICAgdW5zaWduZWQgaW5zZXJ0UnVsZShj
b25zdCBTdHJpbmcmIHJ1bGUsIHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJik7CisgICAg
dm9pZCBkZWxldGVSdWxlKHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJik7CiAKICAgICB2
aXJ0dWFsIGJvb2wgaXNNZWRpYVJ1bGUoKSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBT
dHJpbmcgY3NzVGV4dCgpIGNvbnN0OwpJbmRleDogV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuaWRsCShyZXZpc2lvbiAx
ODQwMikKKysrIFdlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5pZGwJKHdvcmtpbmcgY29weSkKQEAg
LTIyLDE5ICsyMiwxNCBAQCBtb2R1bGUgY3NzIHsKIAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9N
IExldmVsIDI6CiAgICAgaW50ZXJmYWNlIENTU01lZGlhUnVsZSA6IENTU1J1bGUgewotCiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBzdHlsZXNoZWV0czo6TWVkaWFMaXN0ICBtZWRpYTsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIENTU1J1bGVMaXN0ICAgICAgY3NzUnVsZXM7CiAgICAg
ICAgIAotICAgICAgICAvLyBGSVhNRTogdGhlIERPTSBzcGVjIHNheXMgdGhhdCB0aGlzIGNhbiBy
YWlzZSBhbiBleGVjZXB0aW9uLgogICAgICAgICBbT2xkU3R5bGVPYmpDXSB1bnNpZ25lZCBsb25n
ICAgICAgaW5zZXJ0UnVsZShpbiBET01TdHJpbmcgcnVsZSwgCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpCi0gICAgICAgICAgICAv
KnJhaXNlcyhET01FeGNlcHRpb24pKi87Ci0gICAgICAgICAgICAKLSAgICAgICAgLy8gRklYTUU6
IHRoZSBET00gc3BlYyBzYXlzIHRoYXQgdGhpcyBjYW4gcmFpc2UgYW4gZXhlY2VwdGlvbi4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdW5z
aWduZWQgbG9uZyBpbmRleCkKKyAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAg
ICAgICB2b2lkICAgICAgICAgICAgICAgZGVsZXRlUnVsZShpbiB1bnNpZ25lZCBsb25nIGluZGV4
KQotICAgICAgICAgICAgLypyYWlzZXMoRE9NRXhjZXB0aW9uKSovOwotCisgICAgICAgICAgICBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11990</attachid>
            <date>2006-12-23 12:15:42 -0800</date>
            <delta_ts>2006-12-23 16:29:52 -0800</delta_ts>
            <desc>more updated patch</desc>
            <filename>mediaRule3.diff</filename>
            <type>text/plain</type>
            <size>17053</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE4NDAzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDYtMTItMjMgIFNhbSBXZWluaWcgIDxzYW1A
d2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0cyBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4
NzYKKyAgICAgICAgQ1NTTWVkaWFSdWxlIGZ1bmN0aW9ucyBpbnNlcnRSdWxlIGFuZCBkZWxldGVS
dWxlIGRvbid0IHJhaXNlIGV4Y2VwdGlvbnMKKworICAgICAgICAqIGZhc3QvZG9tL2Nzcy1tZWRp
YXJ1bGUtZnVuY3Rpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
Y3NzLW1lZGlhcnVsZS1mdW5jdGlvbnMuaHRtbDogQWRkZWQuCisKIDIwMDYtMTItMjMgIERhdmlk
IEtpbHplciAgPGRka2lsemVyQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWl0
ei4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL2Nzcy1tZWRpYXJ1bGUtZnVuY3Rpb25zLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9jc3MtbWVkaWFy
dWxlLWZ1bmN0aW9ucy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9jc3MtbWVkaWFydWxlLWZ1bmN0aW9ucy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTMgQEAKK1RoaXMgdGVzdHMgdGhlIGluc2VydFJ1bGUocnVsZSwgaW5kZXgp
IGFuZCBkZWxldGVSdWxlKGluZGV4KSBtZXRob2RzIG9mIHRoZSBDU1NNZWRpYVJ1bGUgaW50ZXJm
YWNlLiBJdCBoYXMgcGFzc2VkIGlmIGFsbCBvZiB0aGUgb3V0cHV0IGJlbG93IGJlZ2lucyB3aXRo
IHRoZSB0ZXh0ICJQQVNTIi4KKworUEFTUzogTm8gZXhjZXB0aW9uIHJhaXNlZCEgTmV3IHJ1bGUg
aW5zZXJ0ZWQgc3VjY2Vzc2Z1bGx5LgorUEFTUzogRXhjZXB0aW9uIHJhaXNlZCBzdWNjZXNzZnVs
bHkuIFR5cGU6IEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxCitQQVNTOiBF
eGNlcHRpb24gcmFpc2VkIHN1Y2Nlc3NmdWxseS4gVHlwZTogRXJyb3I6IElOREVYX1NJWkVfRVJS
OiBET00gRXhjZXB0aW9uIDEKK1BBU1M6IEV4Y2VwdGlvbiByYWlzZWQgc3VjY2Vzc2Z1bGx5LiBU
eXBlOiBFcnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2VwdGlvbiAxMgorUEFTUzogRXhjZXB0aW9u
IHJhaXNlZCBzdWNjZXNzZnVsbHkuIFR5cGU6IEVycm9yOiBISUVSQVJDSFlfUkVRVUVTVF9FUlI6
IERPTSBFeGNlcHRpb24gMworUEFTUzogRXhjZXB0aW9uIHJhaXNlZCBzdWNjZXNzZnVsbHkuIFR5
cGU6IEVycm9yOiBTWU5UQVhfRVJSOiBET00gRXhjZXB0aW9uIDEyCitQQVNTOiBFeGNlcHRpb24g
cmFpc2VkIHN1Y2Nlc3NmdWxseS4gVHlwZTogRXJyb3I6IFNZTlRBWF9FUlI6IERPTSBFeGNlcHRp
b24gMTIKK1BBU1M6IE5vIGV4Y2VwdGlvbiByYWlzZWQhIFJ1bGUgYXQgcG9zaXRpb24gJ2xlbmd0
aCAtIDEnIGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5LgorUEFTUzogRXhjZXB0aW9uIHJhaXNlZCBzdWNj
ZXNzZnVsbHkuIFR5cGU6IEVycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9NIEV4Y2VwdGlvbiAxCitQ
QVNTOiBFeGNlcHRpb24gcmFpc2VkIHN1Y2Nlc3NmdWxseS4gVHlwZTogRXJyb3I6IElOREVYX1NJ
WkVfRVJSOiBET00gRXhjZXB0aW9uIDEKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vY3Nz
LW1lZGlhcnVsZS1mdW5jdGlvbnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9jc3MtbWVkaWFydWxlLWZ1bmN0aW9ucy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vY3NzLW1lZGlhcnVsZS1mdW5jdGlvbnMuaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxNDEgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKyAgICA8aGVhZD4K
KyAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0
bWw7IGNoYXJzZXQ9dXRmLTgiPgorICAgICAgICA8dGl0bGU+Q1NTTWVkaWFSdWxlIGZ1bmN0aW9u
cyB0ZXN0PC90aXRsZT4KKyAgICAgICAgPHN0eWxlIGlkPSJzdHlsZTEiPgorICAgICAgICAgICAg
QG1lZGlhIGFsbCB7IC50ZXN0IHsgY29sb3I6IGdyZWVuOyB9IH0KKyAgICAgICAgPC9zdHlsZT4K
KyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7Cisg
ICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOwor
ICAgICAgICAgICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
bWVzc2FnZSkpOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25z
b2xlIikuYXBwZW5kQ2hpbGQoaXRlbSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1
bmN0aW9uIHRlc3QoKSB7CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworCisgICAgICAgICAgICAgICAgdmFyIHN0eWxlU2hlZXQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnc3R5bGUxJykuc2hlZXQ7CisgICAgICAgICAgICAgICAgdmFyIG1lZGlhUnVs
ZSA9IHN0eWxlU2hlZXQuY3NzUnVsZXNbMF07CisKKyAgICAgICAgICAgICAgICAvLyBDU1NNZWRp
YVJ1bGUuaW5zZXJ0UnVsZShydWxlLCBpbmRleCkgdGVzdHMKKworICAgICAgICAgICAgICAgIC8v
IFRlc3QgdGhhdCBpbnNlcnRSdWxlIHdvcmtzLgorICAgICAgICAgICAgICAgIHRyeSB7CisgICAg
ICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IG1lZGlhUnVsZS5pbnNlcnRSdWxlKCIudGVzdDIg
eyBjb2xvcjogYmx1ZTsgfSIsIG1lZGlhUnVsZS5jc3NSdWxlcy5sZW5ndGgpOworICAgICAgICAg
ICAgICAgICAgICBsb2coIlBBU1M6IE5vIGV4Y2VwdGlvbiByYWlzZWQhIE5ldyBydWxlIGluc2Vy
dGVkIHN1Y2Nlc3NmdWxseS4iKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAg
ICAgICAgICAgICAgICAgIGxvZygiRkFJTDogbm8gZXhjZXB0aW9uIHNob3VsZCBoYXZlIGJlZW4g
dGhyb3duISBUeXBlIG9mIHRocm93biBleGNlcHRpb24gd2FzOiAiICsgZSk7CisgICAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gVGVzdCB0aGF0IGluc2VydFJ1bGUgcmFpc2Vz
IGFuIGV4Y2VwdGlvbiBmb3IgaW5kZXhlcyBncmVhdGVyIHRoYW4gdGhlIGxlbmd0aCBvZiB0aGUg
bGlzdC4KKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICB2YXIgaW5k
ZXggPSBtZWRpYVJ1bGUuaW5zZXJ0UnVsZSgicCB7Y29sb3I6IHJlZDsgfSIsIG1lZGlhUnVsZS5j
c3NSdWxlcy5sZW5ndGggKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJGQUlMOiBhbiBl
eGNlcHRpb24gc2hvdWxkIGhhdmUgYmVlbiB0aHJvd24hIik7CisgICAgICAgICAgICAgICAgfSBj
YXRjaCAoZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZS5jb2RlID09IDEpCisgICAgICAg
ICAgICAgICAgICAgICAgICBsb2coIlBBU1M6IEV4Y2VwdGlvbiByYWlzZWQgc3VjY2Vzc2Z1bGx5
LiBUeXBlOiAiICsgZSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxvZygiRkFJTDogd3JvbmcgZXhjZXB0aW9uIHR5cGUgdGhyb3duLiAiICsgZSAr
ICIgd2FzIHRocm93biwgc2hvdWxkIG9mIGJlZW4gJ0Vycm9yOiBJTkRFWF9TSVpFX0VSUjogRE9N
IEV4Y2VwdGlvbiAxJy4iKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAv
LyBUZXN0IHRoYXQgaW5zZXJ0UnVsZSByYWlzZXMgYW4gZXhjZXB0aW9uIGZvciBpbmRleGVzIGxl
c3MgdGhhbiAwLgorICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHZh
ciBpbmRleCA9IG1lZGlhUnVsZS5pbnNlcnRSdWxlKCJwIHtjb2xvcjogcmVkOyB9IiwgLTEpOwor
ICAgICAgICAgICAgICAgICAgICBsb2coIkZBSUw6IGFuIGV4Y2VwdGlvbiBzaG91bGQgaGF2ZSBi
ZWVuIHRocm93biEiKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChlLmNvZGUgPT0gMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZygi
UEFTUzogRXhjZXB0aW9uIHJhaXNlZCBzdWNjZXNzZnVsbHkuIFR5cGU6ICIgKyBlKTsKKyAgICAg
ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJGQUlMOiB3
cm9uZyBleGNlcHRpb24gdHlwZSB0aHJvd24uICIgKyBlICsgIiB3YXMgdGhyb3duLCBzaG91bGQg
b2YgYmVlbiAnRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEnLiIpOworICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIFRlc3QgdGhhdCBpbnNlcnRSdWxl
IHJhaXNlcyBhbiBleGNlcHRpb24gZm9yIG1hbGZvcm1lZCBydWxlcy4KKyAgICAgICAgICAgICAg
ICB0cnkgeworICAgICAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSBtZWRpYVJ1bGUuaW5zZXJ0
UnVsZSgiYmFkYmVlZiB9eyIsIG1lZGlhUnVsZS5jc3NSdWxlcy5sZW5ndGgpOworICAgICAgICAg
ICAgICAgICAgICBsb2coIkZBSUw6IGFuIGV4Y2VwdGlvbiBzaG91bGQgaGF2ZSBiZWVuIHRocm93
biEiKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmIChlLmNvZGUgPT0gMTIpCisgICAgICAgICAgICAgICAgICAgICAgICBsb2coIlBBU1M6IEV4
Y2VwdGlvbiByYWlzZWQgc3VjY2Vzc2Z1bGx5LiBUeXBlOiAiICsgZSk7CisgICAgICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZygiRkFJTDogd3JvbmcgZXhj
ZXB0aW9uIHR5cGUgdGhyb3duLiAiICsgZSArICIgd2FzIHRocm93biwgc2hvdWxkIG9mIGJlZW4g
RXJyb3I6IFNZTlRBWF9FUlI6IERPTSBFeGNlcHRpb24gMTIhIik7CisgICAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgICAgLy8gVGVzdCB0aGF0IGluc2VydFJ1bGUgcmFpc2VzIGFuIGV4
Y2VwdGlvbiBmb3IgaWxsZWdhbGx5IHBsYWNlZCBydWxlcy4KKyAgICAgICAgICAgICAgICB0cnkg
eworICAgICAgICAgICAgICAgICAgICAvLyBJbXBvcnRSdWxlIGlsbGVnYWwgaW5zaWRlIGEgTWVk
aWFSdWxlLgorICAgICAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSBtZWRpYVJ1bGUuaW5zZXJ0
UnVsZSgiQGltcG9ydCB1cmwoc2hlZXQuY3NzKTsiLCBtZWRpYVJ1bGUuY3NzUnVsZXMubGVuZ3Ro
KTsKKyAgICAgICAgICAgICAgICAgICAgbG9nKCJGQUlMOiBhbiBleGNlcHRpb24gc2hvdWxkIGhh
dmUgYmVlbiB0aHJvd24hIik7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoZS5jb2RlID09IDMpCisgICAgICAgICAgICAgICAgICAgICAgICBs
b2coIlBBU1M6IEV4Y2VwdGlvbiByYWlzZWQgc3VjY2Vzc2Z1bGx5LiBUeXBlOiAiICsgZSk7Cisg
ICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZygiRkFJ
TDogd3JvbmcgZXhjZXB0aW9uIHR5cGUgdGhyb3duLiAiICsgZS5jb2RlICsgIiB3YXMgdGhyb3du
LCBzaG91bGQgb2YgYmVlbiBFcnJvcjogSElFUkFSQ0hZX1JFUVVFU1RfRVJSOiBET00gRXhjZXB0
aW9uIDMhIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRyeSB7CisgICAg
ICAgICAgICAgICAgICAgIC8vIENoYXJzZXRSdWxlIGlsbGVnYWwgaW5zaWRlIGEgTWVkaWFSdWxl
LgorICAgICAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSBtZWRpYVJ1bGUuaW5zZXJ0UnVsZSgi
QGNoYXJzZXQgXCJJU08tODg1OS0xXCI7IiwgbWVkaWFSdWxlLmNzc1J1bGVzLmxlbmd0aCk7Cisg
ICAgICAgICAgICAgICAgICAgIGxvZygiRkFJTDogYW4gZXhjZXB0aW9uIHNob3VsZCBoYXZlIGJl
ZW4gdGhyb3duISIpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIHRocm93IGEgSElFUkFSQ0hZX1JFUVVFU1Rf
RVJSLCBub3QgYSBTWU5UQVhfRVJSLgorICAgICAgICAgICAgICAgICAgICBpZiAoZS5jb2RlID09
IDEyKQorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJQQVNTOiBFeGNlcHRpb24gcmFpc2Vk
IHN1Y2Nlc3NmdWxseS4gVHlwZTogIiArIGUpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgICAgICAgICBsb2coIkZBSUw6IHdyb25nIGV4Y2VwdGlvbiB0eXBlIHRo
cm93bi4gIiArIGUgKyAiIHdhcyB0aHJvd24sIHNob3VsZCBvZiBiZWVuIEVycm9yOiBTWU5UQVhf
RVJSOiBET00gRXhjZXB0aW9uIDEyISIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAvLyBOZXN0ZWQgTWVkaWFSdWxlIGlsbGVn
YWwgaW5zaWRlIGEgTWVkaWFSdWxlLgorICAgICAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSBt
ZWRpYVJ1bGUuaW5zZXJ0UnVsZSgiQG1lZGlhIHNjcmVlbiB7IHAgeyBjb2xvcjogcmVkOyB9IH07
IiwgbWVkaWFSdWxlLmNzc1J1bGVzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgIGxvZygi
RkFJTDogYW4gZXhjZXB0aW9uIHNob3VsZCBoYXZlIGJlZW4gdGhyb3duISIpOworICAgICAgICAg
ICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IHRoaXMg
c2hvdWxkIHRocm93IGEgSElFUkFSQ0hZX1JFUVVFU1RfRVJSLCBub3QgYSBTWU5UQVhfRVJSLgor
ICAgICAgICAgICAgICAgICAgICBpZiAoZS5jb2RlID09IDEyKQorICAgICAgICAgICAgICAgICAg
ICAgICAgbG9nKCJQQVNTOiBFeGNlcHRpb24gcmFpc2VkIHN1Y2Nlc3NmdWxseS4gVHlwZTogIiAr
IGUpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBs
b2coIkZBSUw6IHdyb25nIGV4Y2VwdGlvbiB0eXBlIHRocm93bi4gIiArIGUgKyAiIHdhcyB0aHJv
d24sIHNob3VsZCBvZiBiZWVuIEVycm9yOiBTWU5UQVhfRVJSOiBET00gRXhjZXB0aW9uIDEyISIp
OworICAgICAgICAgICAgICAgIH0KKworCisgICAgICAgICAgICAgICAgLy8gQ1NTTWVkaWFSdWxl
LmRlbGV0ZVJ1bGUoaW5kZXgpIHRlc3RzCisKKyAgICAgICAgICAgICAgICAvLyBUZXN0IHRoYXQg
ZGVsZXRlUnVsZSB3b3Jrcy4KKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAg
ICAgICBtZWRpYVJ1bGUuZGVsZXRlUnVsZShtZWRpYVJ1bGUuY3NzUnVsZXMubGVuZ3RoIC0gMSk7
CisgICAgICAgICAgICAgICAgICAgIGxvZygiUEFTUzogTm8gZXhjZXB0aW9uIHJhaXNlZCEgUnVs
ZSBhdCBwb3NpdGlvbiAnbGVuZ3RoIC0gMScgZGVsZXRlZCBzdWNjZXNzZnVsbHkuIik7CisgICAg
ICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgICAgICBsb2coIkZBSUw6
IG5vIGV4Y2VwdGlvbiBzaG91bGQgaGF2ZSBiZWVuIHRocm93biEgVHlwZSBvZiB0aHJvd24gZXhj
ZXB0aW9uIHdhczogIiArIGUpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
IC8vIFRlc3QgdGhhdCBkZWxldGVSdWxlIHJhaXNlcyBhbiBleGNlcHRpb24gZm9yIHNwZWNpZmll
ZCBpbmRleGVzIG5vdCBjb3JyZXNwb25kaW5nIHRvIGEgCisgICAgICAgICAgICAgICAgLy8gcnVs
ZSBpbiB0aGUgbWVkaWEgcnVsZSBsaXN0LgorICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAg
ICAgICAgICAgICAgIG1lZGlhUnVsZS5kZWxldGVSdWxlKG1lZGlhUnVsZS5jc3NSdWxlcy5sZW5n
dGgpOworICAgICAgICAgICAgICAgICAgICBsb2coIkZBSUw6IGFuIGV4Y2VwdGlvbiBzaG91bGQg
aGF2ZSBiZWVuIHRocm93biEiKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChlLmNvZGUgPT0gMSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxvZygiUEFTUzogRXhjZXB0aW9uIHJhaXNlZCBzdWNjZXNzZnVsbHkuIFR5cGU6ICIgKyBlKTsK
KyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJG
QUlMOiB3cm9uZyBleGNlcHRpb24gdHlwZSB0aHJvd24uICIgKyBlICsgIiB3YXMgdGhyb3duLCBz
aG91bGQgb2YgYmVlbiAnRXJyb3I6IElOREVYX1NJWkVfRVJSOiBET00gRXhjZXB0aW9uIDEnLiIp
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAg
ICAgICAgICBtZWRpYVJ1bGUuZGVsZXRlUnVsZSgtMSk7CisgICAgICAgICAgICAgICAgICAgIGxv
ZygiRkFJTDogYW4gZXhjZXB0aW9uIHNob3VsZCBoYXZlIGJlZW4gdGhyb3duISIpOworICAgICAg
ICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGUuY29kZSA9
PSAxKQorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCJQQVNTOiBFeGNlcHRpb24gcmFpc2Vk
IHN1Y2Nlc3NmdWxseS4gVHlwZTogIiArIGUpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgICAgICAgICBsb2coIkZBSUw6IHdyb25nIGV4Y2VwdGlvbiB0eXBlIHRo
cm93bi4gIiArIGUgKyAiIHdhcyB0aHJvd24sIHNob3VsZCBvZiBiZWVuICdFcnJvcjogSU5ERVhf
U0laRV9FUlI6IERPTSBFeGNlcHRpb24gMScuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2Fk
PSJ0ZXN0KCk7Ij4KKyAgICAgICAgPHA+VGhpcyB0ZXN0cyB0aGUgaW5zZXJ0UnVsZShydWxlLCBp
bmRleCkgYW5kIGRlbGV0ZVJ1bGUoaW5kZXgpIG1ldGhvZHMgb2YgdGhlIENTU01lZGlhUnVsZSBp
bnRlcmZhY2UuICBJdCBoYXMgcGFzc2VkIGlmCisgICAgICAgICAgICBhbGwgb2YgdGhlIG91dHB1
dCBiZWxvdyBiZWdpbnMgd2l0aCB0aGUgdGV4dCAiUEFTUyIuICAKKyAgICAgICAgPG9sIGlkPSJj
b25zb2xlIj4KKyAgICAgICAgPC9vbD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBXZWJD
b3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24g
MTg0MDMpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIx
IEBACisyMDA2LTEyLTIzICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGF0Y2ggZm9yIGh0dHA6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODc2CisgICAgICAgIENTU01lZGlhUnVs
ZSBmdW5jdGlvbnMgaW5zZXJ0UnVsZSBhbmQgZGVsZXRlUnVsZSBkb24ndCByYWlzZSBleGNlcHRp
b25zCisKKyAgICAgICAgVGVzdCBhZGRlZDoKKyAgICAgICAgKiBmYXN0L2RvbS9jc3MtbWVkaWFy
dWxlLWZ1bmN0aW9ucy5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9ranNfY3NzLmNwcDoK
KyAgICAgICAgKEtKUzo6RE9NQ1NTUnVsZUZ1bmM6OmNhbGxBc0Z1bmN0aW9uKToKKyAgICAgICAg
KiBjc3MvQ1NTTWVkaWFSdWxlLmNwcDogYWRkIGV4Y2VwdGlvbiBoYW5kbGluZworICAgICAgICAo
V2ViQ29yZTo6Q1NTTWVkaWFSdWxlOjppbnNlcnRSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U01lZGlhUnVsZTo6ZGVsZXRlUnVsZSk6CisgICAgICAgICogY3NzL0NTU01lZGlhUnVsZS5oOiBh
ZGQgRXhjZXB0aW9uQ29kZSBhcmd1bWVudHMKKyAgICAgICAgKiBjc3MvQ1NTTWVkaWFSdWxlLmlk
bDogdW4tY29tbWVudCBleGNlcHRpb25zCisKIDIwMDYtMTItMjMgIERhdmlkIEh5YXR0ICA8aHlh
dHRAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCAxMTk0Mi4gIFRoZSBpbmhlcml0YWJsZSBwcm9w
ZXJ0aWVzIGFycmF5IGlzIGR1cGxpY2F0ZWQgKGxhbWUpLiAgTWFrZQpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy9qcy9ranNfY3NzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pz
L2tqc19jc3MuY3BwCShyZXZpc2lvbiAxODQwMykKKysrIFdlYkNvcmUvYmluZGluZ3MvanMva2pz
X2Nzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUsNiArNSw3IEBACiAgKiAgQ29weXJpZ2h0IChD
KSAyMDAxIFBldGVyIEtlbGx5IChwbWtAcG9zdC5jb20pCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA0
LTIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDYgSmFtZXMg
Ry4gU3BldGggKHNwZXRoQGVuZC5jb20pCisgKiAgQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBX
ZWluaWcgKHNhbUB3ZWJraXQub3JnKQogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtODQzLDE0ICs4
NDQsMjMgQEAgSlNWYWx1ZSogRE9NQ1NTUnVsZUZ1bmM6OmNhbGxBc0Z1bmN0aW9uKAogewogICBp
ZiAoIXRoaXNPYmotPmluaGVyaXRzKCZLSlM6OkRPTUNTU1J1bGU6OmluZm8pKQogICAgIHJldHVy
biB0aHJvd0Vycm9yKGV4ZWMsIFR5cGVFcnJvcik7Ci0gIENTU1J1bGUgJmNzc1J1bGUgPSAqc3Rh
dGljX2Nhc3Q8RE9NQ1NTUnVsZSo+KHRoaXNPYmopLT5pbXBsKCk7CisgIENTU1J1bGUmIGNzc1J1
bGUgPSAqc3RhdGljX2Nhc3Q8RE9NQ1NTUnVsZSo+KHRoaXNPYmopLT5pbXBsKCk7CiAKICAgaWYg
KGNzc1J1bGUudHlwZSgpID09IENTU1J1bGU6Ok1FRElBX1JVTEUpIHsKLSAgICBDU1NNZWRpYVJ1
bGUgJnJ1bGUgPSBzdGF0aWNfY2FzdDxDU1NNZWRpYVJ1bGUgJj4oY3NzUnVsZSk7Ci0gICAgaWYg
KGlkID09IERPTUNTU1J1bGU6Ok1lZGlhX0luc2VydFJ1bGUpCi0gICAgICByZXR1cm4ganNOdW1i
ZXIocnVsZS5pbnNlcnRSdWxlKGFyZ3NbMF0tPnRvU3RyaW5nKGV4ZWMpLCBhcmdzWzFdLT50b0lu
dDMyKGV4ZWMpKSk7Ci0gICAgZWxzZSBpZiAoaWQgPT0gRE9NQ1NTUnVsZTo6TWVkaWFfRGVsZXRl
UnVsZSkKLSAgICAgIHJ1bGUuZGVsZXRlUnVsZShhcmdzWzBdLT50b0ludDMyKGV4ZWMpKTsKKyAg
ICBDU1NNZWRpYVJ1bGUmIHJ1bGUgPSBzdGF0aWNfY2FzdDxDU1NNZWRpYVJ1bGUmPihjc3NSdWxl
KTsKKyAgICBzd2l0Y2ggKGlkKSB7CisgICAgICBjYXNlIERPTUNTU1J1bGU6Ok1lZGlhX0luc2Vy
dFJ1bGU6IHsKKyAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgICAgIEpTVmFsdWUq
IHJlc3VsdCA9IGpzTnVtYmVyKHJ1bGUuaW5zZXJ0UnVsZShhcmdzWzBdLT50b1N0cmluZyhleGVj
KSwgYXJnc1sxXS0+dG9JbnQzMihleGVjKSwgZWMpKTsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9u
KGV4ZWMsIGVjKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgIH0KKyAgICAgIGNhc2Ug
RE9NQ1NTUnVsZTo6TWVkaWFfRGVsZXRlUnVsZTogeworICAgICAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKKyAgICAgICAgcnVsZS5kZWxldGVSdWxlKGFyZ3NbMF0tPnRvSW50MzIoZXhlYyksIGVj
KTsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICAgIH0KKyAgICB9CiAg
IH0KIAogICByZXR1cm4ganNVbmRlZmluZWQoKTsKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU01lZGlh
UnVsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmNwcAkocmV2
aXNpb24gMTg0MDMpCisrKyBXZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00LDYgKzQsNyBAQAogICogKEMpIDE5OTktMjAwMyBMYXJzIEtub2xsIChrbm9sbEBr
ZGUub3JnKQogICogKEMpIDIwMDItMjAwMyBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykK
ICAqIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNSwgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgor
ICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgKHNhbUB3ZWJraXQub3JnKQogICoK
ICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCkBAIC0yMCwxMiArMjEsMTQgQEAKICAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKICAqIEJvc3Rv
biwgTUEgMDIxMTEtMTMwNywgVVNBLgogICovCisKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJDU1NNZWRpYVJ1bGUuaCIKIAotI2luY2x1ZGUgImNzc3BhcnNlci5oIgogI2luY2x1ZGUg
IkNTU1J1bGVMaXN0LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIk1l
ZGlhTGlzdC5oIgorI2luY2x1ZGUgImNzc3BhcnNlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTczLDE4ICs3Niw0NyBAQCB1bnNpZ25lZCBDU1NNZWRpYVJ1bGU6OmFwcGVuZChDU1NS
dWxlKiByCiAgICAgcmV0dXJuIG1fbHN0Q1NTUnVsZXMtPmluc2VydFJ1bGUocnVsZSwgbV9sc3RD
U1NSdWxlcy0+bGVuZ3RoKCkpOwogfQogCi11bnNpZ25lZCBDU1NNZWRpYVJ1bGU6Omluc2VydFJ1
bGUoY29uc3QgU3RyaW5nJiBydWxlLCB1bnNpZ25lZCBpbmRleCkKK3Vuc2lnbmVkIENTU01lZGlh
UnVsZTo6aW5zZXJ0UnVsZShjb25zdCBTdHJpbmcmIHJ1bGUsIHVuc2lnbmVkIGluZGV4LCBFeGNl
cHRpb25Db2RlJiBlYykKIHsKICAgICBDU1NQYXJzZXIgcCh1c2VTdHJpY3RQYXJzaW5nKCkpOwog
ICAgIFJlZlB0cjxDU1NSdWxlPiBuZXdSdWxlID0gcC5wYXJzZVJ1bGUocGFyZW50U3R5bGVTaGVl
dCgpLCBydWxlKTsKLSAgICBpZiAoIW5ld1J1bGUpCisgICAgaWYgKCFuZXdSdWxlKSB7CisgICAg
ICAgIC8vIFNZTlRBWF9FUlI6IFJhaXNlZCBpZiB0aGUgc3BlY2lmaWVkIHJ1bGUgaGFzIGEgc3lu
dGF4IGVycm9yIGFuZCBpcyB1bnBhcnNhYmxlLgorICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CiAg
ICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGlmIChuZXdSdWxlLT5pc0ltcG9ydFJ1bGUo
KSkgeworICAgICAgICAvLyBGSVhNRTogYW4gSElFUkFSQ0hZX1JFUVVFU1RfRVJSIHNob3VsZCBh
bHNvIGJlIHRocm93biBmb3IgYSBAY2hhcnNldCBvciBhIG5lc3RlZAorICAgICAgICAvLyBAbWVk
aWEgcnVsZS4gIFRoZXkgYXJlIGN1cnJlbnRseSBub3QgZ2V0dGluZyBwYXJzZWQsIHJlc3VsdGlu
ZyBpbiBhIFNZTlRBWF9FUlIKKyAgICAgICAgLy8gdG8gZ2V0IHJhaXNlZCBhYm92ZS4KKworICAg
ICAgICAvLyBISUVSQVJDSFlfUkVRVUVTVF9FUlI6IFJhaXNlZCBpZiB0aGUgcnVsZSBjYW5ub3Qg
YmUgaW5zZXJ0ZWQgYXQgdGhlIHNwZWNpZmllZCAKKyAgICAgICAgLy8gaW5kZXgsIGUuZy4sIGlm
IGFuIEBpbXBvcnQgcnVsZSBpcyBpbnNlcnRlZCBhZnRlciBhIHN0YW5kYXJkIHJ1bGUgc2V0IG9y
IG90aGVyCisgICAgICAgIC8vIGF0LXJ1bGUuCisgICAgICAgIGVjID0gSElFUkFSQ0hZX1JFUVVF
U1RfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBpZiAoaW5kZXggPiBtX2xz
dENTU1J1bGVzLT5sZW5ndGgoKSkgeworICAgICAgICAvLyBJTkRFWF9TSVpFX0VSUjogUmFpc2Vk
IGlmIHRoZSBzcGVjaWZpZWQgaW5kZXggaXMgbm90IGEgdmFsaWQgaW5zZXJ0aW9uIHBvaW50Lgor
ICAgICAgICBlYyA9IElOREVYX1NJWkVfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisK
ICAgICBuZXdSdWxlLT5zZXRQYXJlbnQodGhpcyk7CiAgICAgcmV0dXJuIG1fbHN0Q1NTUnVsZXMt
Pmluc2VydFJ1bGUobmV3UnVsZS5nZXQoKSwgaW5kZXgpOwogfQogCi12b2lkIENTU01lZGlhUnVs
ZTo6ZGVsZXRlUnVsZSh1bnNpZ25lZCBpbmRleCkKK3ZvaWQgQ1NTTWVkaWFSdWxlOjpkZWxldGVS
dWxlKHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAgICBpZiAoaW5kZXgg
Pj0gbV9sc3RDU1NSdWxlcy0+bGVuZ3RoKCkpIHsKKyAgICAgICAgLy8gSU5ERVhfU0laRV9FUlI6
IFJhaXNlZCBpZiB0aGUgc3BlY2lmaWVkIGluZGV4IGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSAK
KyAgICAgICAgLy8gcnVsZSBpbiB0aGUgbWVkaWEgcnVsZSBsaXN0LgorICAgICAgICBlYyA9IElO
REVYX1NJWkVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgbV9sc3RDU1NSdWxl
cy0+ZGVsZXRlUnVsZShpbmRleCk7CiB9CiAKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU01lZGlhUnVs
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5oCShyZXZpc2lvbiAx
ODQwMykKKysrIFdlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00
LDYgKzQsNyBAQAogICogKEMpIDE5OTktMjAwMyBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQog
ICogKEMpIDIwMDItMjAwMyBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKICAqIENvcHly
aWdodCAoQykgMjAwMiwgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChD
KSAyMDA2IFNhbXVlbCBXZWluaWcgKHNhbUB3ZWJraXQub3JnKQogICoKICAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CkBAIC0zMiw2ICszMyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENTU1J1bGVMaXN0
OwogY2xhc3MgTWVkaWFMaXN0OwogCit0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOworCiBjbGFz
cyBDU1NNZWRpYVJ1bGUgOiBwdWJsaWMgQ1NTUnVsZQogewogcHVibGljOgpAQCAtNDMsOCArNDYs
OCBAQCBwdWJsaWM6CiAgICAgTWVkaWFMaXN0KiBtZWRpYSgpIGNvbnN0IHsgcmV0dXJuIG1fbHN0
TWVkaWEuZ2V0KCk7IH0KICAgICBDU1NSdWxlTGlzdCogY3NzUnVsZXMoKSB7IHJldHVybiBtX2xz
dENTU1J1bGVzLmdldCgpOyB9CiAKLSAgICB1bnNpZ25lZCBpbnNlcnRSdWxlKGNvbnN0IFN0cmlu
ZyYgcnVsZSwgdW5zaWduZWQgaW5kZXgpOwotICAgIHZvaWQgZGVsZXRlUnVsZSh1bnNpZ25lZCBp
bmRleCk7CisgICAgdW5zaWduZWQgaW5zZXJ0UnVsZShjb25zdCBTdHJpbmcmIHJ1bGUsIHVuc2ln
bmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBkZWxldGVSdWxlKHVuc2lnbmVk
IGluZGV4LCBFeGNlcHRpb25Db2RlJik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNNZWRpYVJ1bGUo
KSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0OwpJ
bmRleDogV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2Nzcy9DU1NNZWRpYVJ1bGUuaWRsCShyZXZpc2lvbiAxODQwMykKKysrIFdlYkNvcmUvY3NzL0NT
U01lZGlhUnVsZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIyLDE5ICsyMiwxNCBAQCBtb2R1bGUg
Y3NzIHsKIAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CiAgICAgaW50ZXJmYWNl
IENTU01lZGlhUnVsZSA6IENTU1J1bGUgewotCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBz
dHlsZXNoZWV0czo6TWVkaWFMaXN0ICBtZWRpYTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IENTU1J1bGVMaXN0ICAgICAgY3NzUnVsZXM7CiAgICAgICAgIAotICAgICAgICAvLyBGSVhNRTog
dGhlIERPTSBzcGVjIHNheXMgdGhhdCB0aGlzIGNhbiByYWlzZSBhbiBleGVjZXB0aW9uLgogICAg
ICAgICBbT2xkU3R5bGVPYmpDXSB1bnNpZ25lZCBsb25nICAgICAgaW5zZXJ0UnVsZShpbiBET01T
dHJpbmcgcnVsZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVu
c2lnbmVkIGxvbmcgaW5kZXgpCi0gICAgICAgICAgICAvKnJhaXNlcyhET01FeGNlcHRpb24pKi87
Ci0gICAgICAgICAgICAKLSAgICAgICAgLy8gRklYTUU6IHRoZSBET00gc3BlYyBzYXlzIHRoYXQg
dGhpcyBjYW4gcmFpc2UgYW4gZXhlY2VwdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdW5zaWduZWQgbG9uZyBpbmRleCkKKyAgICAg
ICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkICAgICAgICAgICAgICAg
ZGVsZXRlUnVsZShpbiB1bnNpZ25lZCBsb25nIGluZGV4KQotICAgICAgICAgICAgLypyYWlzZXMo
RE9NRXhjZXB0aW9uKSovOwotCisgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAg
ICB9OwogCiB9Cg==
</data>
<flag name="review"
          id="4402"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>