<?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>24368</bug_id>
          
          <creation_ts>2009-03-04 13:54:39 -0800</creation_ts>
          <short_desc>DOM WheelEvent delta conversion inaccurate</short_desc>
          <delta_ts>2009-03-16 15:20:23 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peter Kasting">pkasting</reporter>
          <assigned_to name="Peter Kasting">pkasting</assigned_to>
          <cc>erik.arvidsson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>112279</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-03-04 13:54:39 -0800</bug_when>
    <thetext>The code in WebCore/dom/WheelEvent.cpp that calculates a wheel event&apos;s scroll delta isn&apos;t right.  It tries to convert the provided wheelDeltaX and wheelDeltaY by multiplying by 120 (the value of Windows&apos; WHEEL_DELTA constant).  But the scroll delta is supposed to be the original value supplied by Windows, which isn&apos;t just (delta * WHEEL_DELTA), but more like (delta * WHEEL_DELTA / SPI_GETWHEELSCROLLLINES).

There are two ways to fix.  One is to write more complex code here that reverses everything done up in WebKit (where the native event was transformed into a WebCore one) to recalculate the original native value.  The other way, which is probably better, is to carry the original native delta amount along on the WebCore event, and supply it directly to this function.

I don&apos;t know how the glue code would set this value on non-Windows OSes, but I imagine it could make up something close to what happens now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112280</commentid>
    <comment_count>1</comment_count>
      <attachid>28282</attachid>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-03-04 13:56:18 -0800</bug_when>
    <thetext>Created attachment 28282
Testcase to demonstrate IE vs. WebKit difference

Try running this testcase in IE 7 and Safari/Win or Chrome.  In IE, the result of wheel scrolling over the grey box should basically always be +/-120.  In Safari/Chrome, the result is scaled by your system &quot;lines to scroll per tick&quot; setting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112446</commentid>
    <comment_count>2</comment_count>
      <attachid>28324</attachid>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-03-05 14:18:58 -0800</bug_when>
    <thetext>Created attachment 28324
patch v1

This bug turns out to be a regression since Safari 3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112448</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-03-05 14:21:19 -0800</bug_when>
    <thetext>What do we need the old deltaX/Y for?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112450</commentid>
    <comment_count>4</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-03-05 14:30:30 -0800</bug_when>
    <thetext>deltaX and deltaY and used by the ScrollView in order to decide how far to actually scroll the page.  One wheel tick should generally result in a DOM scroll amount of +/- 120, but may result in differing page scroll amounts based on what the platform convention is, whether this is a page/line scroll, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113204</commentid>
    <comment_count>5</comment_count>
      <attachid>28324</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-03-11 11:53:03 -0700</bug_when>
    <thetext>Comment on attachment 28324
patch v1

I&apos;d like to see a patch that does not force any platform but Windows to write specific code.  Here would be my suggestions:

(1) Do the 120 multiplication in one place (probably in the DOM code).
(2) Instead of a &quot;DOM&quot; member in the wheel event, I&apos;d have a wheel tick member or something, e.g., something that just represents the # of lines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113215</commentid>
    <comment_count>6</comment_count>
      <attachid>28488</attachid>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-03-11 12:48:15 -0700</bug_when>
    <thetext>Created attachment 28488
patch v2

Addresses hyatt&apos;s review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113457</commentid>
    <comment_count>7</comment_count>
      <attachid>28542</attachid>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-03-12 12:50:17 -0700</bug_when>
    <thetext>Created attachment 28542
patch v3

Updated after I landed the fix for bug 24502.  This now sends a shift + wheel event to the DOM as a shift + wheel event, using the correct native sign direction, as discussed with hyatt on IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113930</commentid>
    <comment_count>8</comment_count>
      <attachid>28542</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-03-16 15:07:07 -0700</bug_when>
    <thetext>Comment on attachment 28542
patch v3

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113933</commentid>
    <comment_count>9</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-03-16 15:20:23 -0700</bug_when>
    <thetext>Fixed in r41746.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>28282</attachid>
            <date>2009-03-04 13:56:18 -0800</date>
            <delta_ts>2009-03-05 14:18:58 -0800</delta_ts>
            <desc>Testcase to demonstrate IE vs. WebKit difference</desc>
            <filename>temp.html</filename>
            <type>text/html</type>
            <size>565</size>
            <attacher name="Peter Kasting">pkasting</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPHRpdGxlPjwvdGl0bGU+CjxzdHlsZT4KCiN0
ZXN0IHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOwogIHdpZHRoOiAzMDBweDsKICBoZWlnaHQ6
IDMwMHB4Owp9Cgo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoKPGRpdiBpZD10ZXN0PjwvZGl2PgoK
PHNjcmlwdD4KCnZhciB0ZXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKCnRl
c3Qub25tb3VzZXdoZWVsID0gZnVuY3Rpb24oZSkgewogIGlmICghZSkgZSA9IHdpbmRvdy5ldmVu
dDsKICB0ZXN0LmlubmVySFRNTCA9IGUudHlwZSArICc6ICcgKyBlLndoZWVsRGVsdGE7CiAgcmV0
dXJuIGZhbHNlOwp9OwoKaWYgKHRlc3QuYWRkRXZlbnRMaXN0ZW5lcikgewogIHRlc3QuYWRkRXZl
bnRMaXN0ZW5lcignRE9NTW91c2VTY3JvbGwnLCBmdW5jdGlvbihlKSB7CiAgICB0ZXN0LmlubmVy
SFRNTCA9IGUudHlwZSArICc6ICcgKyBlLmRldGFpbDsKICAgIGUucHJldmVudERlZmF1bHQoKTsK
ICB9LCBmYWxzZSk7Cn0gZWxzZSB7Cgp9Cgo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28324</attachid>
            <date>2009-03-05 14:18:58 -0800</date>
            <delta_ts>2009-03-11 12:48:15 -0700</delta_ts>
            <desc>patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>9224</size>
            <attacher name="Peter Kasting">pkasting</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTQ1OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMDktMDMtMDUgIFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDM2OAorICAgICAgICBX
aGVuIHdoZWVsLXNjcm9sbGluZywgZG9uJ3QgdHJ5IGFuZCByZWNhbGN1bGF0ZSB0aGUgRE9NIHdo
ZWVsIGV2ZW50CisgICAgICAgIHNjcm9sbCBhbW91bnQgZnJvbSB0aGUgbGluZSBkZWx0YSwgYnV0
IGluc3RlYWQgc2V0IHRoZSBhY3R1YWwgRE9NCisgICAgICAgIHNjcm9sbCBhbW91bnQgYXQgdGhl
IHRpbWUgbmF0aXZlIGV2ZW50cyBhcmUgY29udmVydGVkIHRvIFdlYkNvcmUuCisgICAgICAgIFRo
aXMgbWFrZXMgdGhlIERPTSBzY3JvbGwgYW1vdW50cyBjb3JyZWN0IHJlZ2FyZGxlc3Mgb2Ygc3lz
dGVtICJsaW5lcworICAgICAgICBwZXIgd2hlZWwgZGV0ZW50IiBzZXR0aW5nLgorCisgICAgICAg
ICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hXaGVlbEV2
ZW50KToKKyAgICAgICAgKiBkb20vV2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
aGVlbEV2ZW50OjpXaGVlbEV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVdoZWVs
RXZlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudDo6ZG9tRGVsdGFY
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudDo6ZG9tRGVsdGFZKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvV2hlZWxFdmVudEd0ay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL1doZWVsRXZlbnRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdo
ZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vcXQvV2hl
ZWxFdmVudFF0LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vV2hlZWxFdmVudFdpbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVu
dCk6CisgICAgICAgICogcGxhdGZvcm0vd3gvTW91c2VXaGVlbEV2ZW50V3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQpOgorCiAy
MDA5LTAzLTA1ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIFNlaWRlbApJbmRleDogV2ViQ29yZS9kb20vTm9kZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9kb20vTm9kZS5jcHAJKHJldmlzaW9uIDQxNDU3KQorKysgV2ViQ29yZS9k
b20vTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3MDYsMTggKzI3MDYsNyBAQCB2b2lkIE5v
ZGU6OmRpc3BhdGNoV2hlZWxFdmVudChQbGF0Zm9ybVdoCiAgICAgCiAgICAgSW50UG9pbnQgcG9z
ID0gdmlldy0+d2luZG93VG9Db250ZW50cyhlLnBvcygpKTsKICAgICAKLSAgICAvLyBDb252ZXJ0
IHRoZSBkZWx0YXMgZnJvbSBwaXhlbHMgdG8gbGluZXMgaWYgd2UgaGF2ZSBhIHBpeGVsIHNjcm9s
bCBldmVudC4KLSAgICBmbG9hdCBkZWx0YVggPSBlLmRlbHRhWCgpOwotICAgIGZsb2F0IGRlbHRh
WSA9IGUuZGVsdGFZKCk7Ci0gICAgCi0gICAgLy8gRklYTUU6IFNob3VsZCB3ZSBkbyBhbnl0aGlu
ZyB3aXRoIGEgU2Nyb2xsQnlQYWdlV2hlZWxFdmVudCBoZXJlPwotICAgIC8vIEl0IHdpbGwgYmUg
dHJlYXRlZCBsaWtlIGEgbGluZSBzY3JvbGwgb2YgMSByaWdodCBub3cuCi0gICAgaWYgKGUuZ3Jh
bnVsYXJpdHkoKSA9PSBTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCkgewotICAgICAgICBkZWx0YVgg
Lz0gY01vdXNlV2hlZWxQaXhlbHNQZXJMaW5lU3RlcDsKLSAgICAgICAgZGVsdGFZIC89IGNNb3Vz
ZVdoZWVsUGl4ZWxzUGVyTGluZVN0ZXA7Ci0gICAgfQotCi0gICAgUmVmUHRyPFdoZWVsRXZlbnQ+
IHdlID0gV2hlZWxFdmVudDo6Y3JlYXRlKGUuZGVsdGFYKCksIGUuZGVsdGFZKCksCisgICAgUmVm
UHRyPFdoZWVsRXZlbnQ+IHdlID0gV2hlZWxFdmVudDo6Y3JlYXRlKGUuZG9tRGVsdGFYKCksIGUu
ZG9tRGVsdGFZKCksCiAgICAgICAgIGRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksIGUuZ2xvYmFs
WCgpLCBlLmdsb2JhbFkoKSwgcG9zLngoKSwgcG9zLnkoKSwKICAgICAgICAgZS5jdHJsS2V5KCks
IGUuYWx0S2V5KCksIGUuc2hpZnRLZXkoKSwgZS5tZXRhS2V5KCkpOwogICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwpJbmRleDogV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9kb20vV2hlZWxFdmVudC5jcHAJKHJldmlzaW9uIDQxNDU3KQorKysgV2ViQ29y
ZS9kb20vV2hlZWxFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDE0ICs0MCw5IEBAIFdo
ZWVsRXZlbnQ6OldoZWVsRXZlbnQoZmxvYXQgd2hlZWxEZWx0YVgKICAgICA6IE1vdXNlUmVsYXRl
ZEV2ZW50KGV2ZW50TmFtZXMoKS5tb3VzZXdoZWVsRXZlbnQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICB0cnVlLCB0cnVlLCB2aWV3LCAwLCBzY3JlZW5YLCBzY3JlZW5ZLCBwYWdlWCwgcGFnZVks
IAogICAgICAgICAgICAgICAgICAgICAgICAgY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0
YUtleSkKLSAgICAsIG1fd2hlZWxEZWx0YVgobHJvdW5kZih3aGVlbERlbHRhWCkgKiAxMjApCi0g
ICAgLCBtX3doZWVsRGVsdGFZKGxyb3VuZGYod2hlZWxEZWx0YVkpICogMTIwKSAvLyBOb3JtYWxp
emUgdG8gdGhlIFdpbmRvd3MgMTIwIG11bHRpcGxlCisgICAgLCBtX3doZWVsRGVsdGFYKHdoZWVs
RGVsdGFYKQorICAgICwgbV93aGVlbERlbHRhWSh3aGVlbERlbHRhWSkKIHsKLSAgICAvLyBSb3Vu
ZGluZyBkZWx0YSB0byB6ZXJvIG1ha2VzIG5vIHNlbnNlIGFuZCBicmVha3MgR29vZ2xlIE1hcHMs
IDxodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA3OD4uCi0gICAgaWYg
KHdoZWVsRGVsdGFYICYmICFtX3doZWVsRGVsdGFYKQotICAgICAgICBtX3doZWVsRGVsdGFYID0g
KHdoZWVsRGVsdGFYID4gMCkgPyAxMjAgOiAtMTIwOwotICAgIGlmICh3aGVlbERlbHRhWSAmJiAh
bV93aGVlbERlbHRhWSkKLSAgICAgICAgbV93aGVlbERlbHRhWSA9ICh3aGVlbERlbHRhWSA+IDAp
ID8gMTIwIDogLTEyMDsKIH0KIAogdm9pZCBXaGVlbEV2ZW50Ojppbml0V2hlZWxFdmVudChpbnQg
d2hlZWxEZWx0YVgsIGludCB3aGVlbERlbHRhWSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZp
ZXcsCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgJKHJldmlzaW9uIDQx
NDU3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtODQsNiArODQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGZsb2F0
IGRlbHRhWCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVsdGFYOyB9CiAgICAgICAgIGZsb2F0IGRlbHRh
WSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVsdGFZOyB9CiAKKyAgICAgICAgZmxvYXQgZG9tRGVsdGFY
KCkgY29uc3QgeyByZXR1cm4gbV9kb21EZWx0YVg7IH0KKyAgICAgICAgZmxvYXQgZG9tRGVsdGFZ
KCkgY29uc3QgeyByZXR1cm4gbV9kb21EZWx0YVk7IH0KKwogICAgICAgICBQbGF0Zm9ybVdoZWVs
RXZlbnRHcmFudWxhcml0eSBncmFudWxhcml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fZ3JhbnVsYXJp
dHk7IH0KIAogICAgICAgICBib29sIGlzQWNjZXB0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQWNj
ZXB0ZWQ7IH0KQEAgLTEyOSw2ICsxMzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IEludFBvaW50IG1fZ2xvYmFsUG9zaXRpb247CiAgICAgICAgIGZsb2F0IG1fZGVsdGFYOwogICAg
ICAgICBmbG9hdCBtX2RlbHRhWTsKKyAgICAgICAgZmxvYXQgbV9kb21EZWx0YVg7CisgICAgICAg
IGZsb2F0IG1fZG9tRGVsdGFZOwogICAgICAgICBQbGF0Zm9ybVdoZWVsRXZlbnRHcmFudWxhcml0
eSBtX2dyYW51bGFyaXR5OwogICAgICAgICBib29sIG1faXNBY2NlcHRlZDsKICAgICAgICAgYm9v
bCBtX3NoaWZ0S2V5OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvV2hlZWxFdmVudEd0ay5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ndGsvV2hlZWxFdmVudEd0ay5jcHAJ
KHJldmlzaW9uIDQxNDU3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ndGsvV2hlZWxFdmVudEd0ay5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDggQEAgUGxhdGZvcm1XaGVlbEV2ZW50OjpQ
bGF0Zm9ybVdoZWVsRXZlbnQoRwogICAgICAgICAgICAgbV9kZWx0YVggPSBkZWx0YTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBtX2RvbURlbHRhWCA9IG1fZGVsdGFYICogMTIwOyAg
Ly8gQ29udmVydCB0byBXaW5kb3dzIFdIRUVMX0RFTFRBIGJhc2UuCisgICAgbV9kb21EZWx0YVkg
PSBtX2RlbHRhWSAqIDEyMDsKIAogICAgIG1fcG9zaXRpb24gPSBJbnRQb2ludCgoaW50KWV2ZW50
LT54LCAoaW50KWV2ZW50LT55KTsKICAgICBtX2dsb2JhbFBvc2l0aW9uID0gSW50UG9pbnQoKGlu
dClldmVudC0+eF9yb290LCAoaW50KWV2ZW50LT55X3Jvb3QpOwpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvV2hlZWxFdmVudE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L21hYy9XaGVlbEV2ZW50TWFjLm1tCShyZXZpc2lvbiA0MTQ1NykKKysrIFdlYkNvcmUvcGxhdGZv
cm0vbWFjL1doZWVsRXZlbnRNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAK
ICNpbXBvcnQgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogCiAjaW1wb3J0ICJQbGF0Zm9ybU1vdXNl
RXZlbnQuaCIKKyNpbXBvcnQgIlNjcm9sbEJhci5oIgogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUlu
dGVyZmFjZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MywxMCArNDQsMTggQEAgUGxh
dGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQoTgogICAgIEJPT0wgY29udGludW91
czsKICAgICB3a0dldFdoZWVsRXZlbnREZWx0YXMoZXZlbnQsICZtX2RlbHRhWCwgJm1fZGVsdGFZ
LCAmY29udGludW91cyk7CiAgICAgbV9ncmFudWxhcml0eSA9IGNvbnRpbnVvdXMgPyBTY3JvbGxC
eVBpeGVsV2hlZWxFdmVudCA6IFNjcm9sbEJ5TGluZVdoZWVsRXZlbnQ7Ci0gICAgaWYgKG1fZ3Jh
bnVsYXJpdHkgPT0gU2Nyb2xsQnlMaW5lV2hlZWxFdmVudCkgeworICAgIGZsb2F0IGxpbmVzWCwg
bGluZXNZOworICAgIGlmIChtX2dyYW51bGFyaXR5ID09IFNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50
KSB7CisgICAgICAgIGxpbmVzWCA9IG1fZGVsdGFYIC8gKGZsb2F0KWNTY3JvbGxiYXJQaXhlbHNQ
ZXJMaW5lU3RlcDsKKyAgICAgICAgbGluZXNZID0gbV9kZWx0YVkgLyAoZmxvYXQpY1Njcm9sbGJh
clBpeGVsc1BlckxpbmVTdGVwOworICAgIH0gZWxzZSB7CisgICAgICAgIGxpbmVzWCA9IG1fZGVs
dGFYOworICAgICAgICBsaW5lc1kgPSBtX2RlbHRhWTsKICAgICAgICAgbV9kZWx0YVggKj0gaG9y
aXpvbnRhbExpbmVNdWx0aXBsaWVyKCk7CiAgICAgICAgIG1fZGVsdGFZICo9IHZlcnRpY2FsTGlu
ZU11bHRpcGxpZXIoKTsKICAgICB9CisgICAgbV9kb21EZWx0YVggPSBsaW5lc1ggKiAxMjA7ICAv
LyBDb252ZXJ0IHRvIFdpbmRvd3MgV0hFRUxfREVMVEEgYmFzZS4KKyAgICBtX2RvbURlbHRhWSA9
IGxpbmVzWSAqIDEyMDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9XaGVlbEV2ZW50UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vcXQvV2hlZWxFdmVudFF0LmNwcAkocmV2aXNpb24gNDE0NTcpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL3F0L1doZWVsRXZlbnRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDkgKzUxLDEz
IEBAIFBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50KFEKICAgICBpZiAoZS0+
b3JpZW50YXRpb24oKSA9PSBRdDo6SG9yaXpvbnRhbCkgewogICAgICAgICBtX2RlbHRhWCA9IChl
LT5kZWx0YSgpIC8gMTIwKTsKICAgICAgICAgbV9kZWx0YVkgPSAwOworICAgICAgICBtX2RvbURl
bHRhWCA9IGUtPmRlbHRhKCk7CisgICAgICAgIG1fZG9tRGVsdGFZID0gMDsKICAgICB9IGVsc2Ug
ewogICAgICAgICBtX2RlbHRhWCA9IDA7CiAgICAgICAgIG1fZGVsdGFZID0gKGUtPmRlbHRhKCkg
LyAxMjApOworICAgICAgICBtX2RvbURlbHRhWCA9IDA7CisgICAgICAgIG1fZG9tRGVsdGFZID0g
ZS0+ZGVsdGEoKTsKICAgICB9CiAKICAgICBtX2RlbHRhWCAqPSBRQXBwbGljYXRpb246OndoZWVs
U2Nyb2xsTGluZXMoKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vd2luL1doZWVsRXZlbnRXaW4u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vd2luL1doZWVsRXZlbnRXaW4uY3Bw
CShyZXZpc2lvbiA0MTQ1NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vd2luL1doZWVsRXZlbnRXaW4u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MiwxMyArNzIsMTUgQEAgUGxhdGZvcm1XaGVlbEV2ZW50
OjpQbGF0Zm9ybVdoZWVsRXZlbnQoSAogICAgICwgbV9tZXRhS2V5KG1fYWx0S2V5KSAvLyBGSVhN
RTogV2UnbGwgaGF2ZSB0byB0ZXN0IG90aGVyIGJyb3dzZXJzCiB7CiAgICAgc3RhdGljIFVMT05H
IHNjcm9sbExpbmVzLCBzY3JvbGxDaGFyczsKLSAgICBmbG9hdCBkZWx0YSA9IEdFVF9XSEVFTF9E
RUxUQV9XUEFSQU0od1BhcmFtKSAvIChmbG9hdClXSEVFTF9ERUxUQTsKKyAgICBmbG9hdCBkZWx0
YSA9IEdFVF9XSEVFTF9ERUxUQV9XUEFSQU0od1BhcmFtKTsKICAgICBpZiAoaXNIb3Jpem9udGFs
KSB7CiAgICAgICAgIC8vIFdpbmRvd3Mgc2VuZHMgYSBwb3NpdGl2ZSBkZWx0YSBmb3Igc2Nyb2xs
aW5nIHJpZ2h0LCB3aGlsZSBBcHBLaXQKICAgICAgICAgLy8gc2VuZHMgYSBuZWdhdGl2ZSBkZWx0
YS4gRXZlbnRIYW5kbGVyIGV4cGVjdHMgdGhlIEFwcEtpdCB2YWx1ZXMsCiAgICAgICAgIC8vIHNv
IHdlIGhhdmUgdG8gbmVnYXRlIG91ciBob3Jpem9udGFsIGRlbHRhIHRvIG1hdGNoLgotICAgICAg
ICBtX2RlbHRhWCA9IC1kZWx0YSAqIGhvcml6b250YWxMaW5lTXVsdGlwbGllcigpOworICAgICAg
ICBtX2RlbHRhWCA9IC1kZWx0YSAqIChmbG9hdClob3Jpem9udGFsTGluZU11bHRpcGxpZXIoKSAv
IChmbG9hdClXSEVFTF9ERUxUQTsKICAgICAgICAgbV9kZWx0YVkgPSAwOworICAgICAgICBtX2Rv
bURlbHRhWCA9IC1kZWx0YTsKKyAgICAgICAgbV9kb21EZWx0YVkgPSAwOwogICAgICAgICBtX2dy
YW51bGFyaXR5ID0gU2Nyb2xsQnlMaW5lV2hlZWxFdmVudDsKICAgICB9IGVsc2UgewogICAgICAg
ICBtX2RlbHRhWCA9IDA7CkBAIC04OCw2ICs5MCw5IEBAIFBsYXRmb3JtV2hlZWxFdmVudDo6UGxh
dGZvcm1XaGVlbEV2ZW50KEgKICAgICAgICAgbV9ncmFudWxhcml0eSA9ICh2ZXJ0aWNhbE11bHRp
cGxpZXIgPT0gLTEpID8gU2Nyb2xsQnlQYWdlV2hlZWxFdmVudCA6IFNjcm9sbEJ5TGluZVdoZWVs
RXZlbnQ7CiAgICAgICAgIGlmIChtX2dyYW51bGFyaXR5ID09IFNjcm9sbEJ5TGluZVdoZWVsRXZl
bnQpCiAgICAgICAgICAgICBtX2RlbHRhWSAqPSB2ZXJ0aWNhbE11bHRpcGxpZXI7CisgICAgICAg
IG1fZGVsdGFZIC89IChmbG9hdClXSEVFTF9ERUxUQTsKKyAgICAgICAgbV9kb21EZWx0YVggPSAw
OworICAgICAgICBtX2RvbURlbHRhWSA9IGRlbHRhOwogICAgIH0KIH0KIApJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS93eC9Nb3VzZVdoZWVsRXZlbnRXeC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS93eC9Nb3VzZVdoZWVsRXZlbnRXeC5jcHAJKHJldmlzaW9uIDQxNDU3KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS93eC9Nb3VzZVdoZWVsRXZlbnRXeC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQxLDYgKzQxLDggQEAgUGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQo
YwogICAgICwgbV9tZXRhS2V5KGV2ZW50Lk1ldGFEb3duKCkpIC8vIEZJWE1FOiBXZSdsbCBoYXZl
IHRvIHRlc3Qgb3RoZXIgYnJvd3NlcnMKICAgICAsIG1fZGVsdGFYKDApIC8vIHd4IGRvZXNuJ3Qg
c3VwcG9ydCBob3Jpem9udGFsIG1vdXNlIHdoZWVsIHNjcm9sbGluZwogICAgICwgbV9kZWx0YVko
ZXZlbnQuR2V0V2hlZWxSb3RhdGlvbigpIC8gZXZlbnQuR2V0V2hlZWxEZWx0YSgpKQorICAgICwg
bV9kb21EZWx0YVgoMCksCisgICAgLCBtX2RvbURlbHRhWShtX2RlbHRhWSAqIDEyMCksICAvLyBD
b252ZXJ0IHRvIFdpbmRvd3MgV0hFRUxfREVMVEEgYmFzZS4KICAgICAsIG1faXNBY2NlcHRlZChm
YWxzZSkKIHsKICAgICAvLyBGSVhNRTogcmV0cmlldmUgdGhlIHVzZXIgc2V0dGluZyBmb3IgdGhl
IG51bWJlciBvZiBsaW5lcyB0byBzY3JvbGwgb24gZWFjaCB3aGVlbCBldmVudAo=
</data>
<flag name="review"
          id="13867"
          type_id="1"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28488</attachid>
            <date>2009-03-11 12:48:15 -0700</date>
            <delta_ts>2009-03-12 12:50:17 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>patch2</filename>
            <type>text/plain</type>
            <size>9861</size>
            <attacher name="Peter Kasting">pkasting</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTU5MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMDktMDMtMTEgIFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDM2OAorICAgICAgICBE
T00gc2Nyb2xsIGV2ZW50cyBzaG91bGQgYmUgYmFzZWQgb2ZmIHRoZSBhY3R1YWwgbnVtYmVyIG9m
IHdoZWVsCisgICAgICAgIHRpY2tzLCBub3Qgb2ZmIHRoZSBudW1iZXIgb2YgbGluZXMgc2Nyb2xs
ZWQuICBUaGlzIG1hdGNoZXMgSUUuCisKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpOb2RlOjpkaXNwYXRjaFdoZWVsRXZlbnQpOgorICAgICAgICAqIGRvbS9XaGVl
bEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnQ6OldoZWVsRXZlbnQpOgor
ICAgICAgICAqIGRvbS9XaGVlbEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50
OjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50Ojp3aGVlbFRpY2tzWCk6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnQ6OndoZWVsVGlja3NZKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvV2hlZWxFdmVudEd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9y
bVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1doZWVsRXZlbnRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnQ6
OlBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vcXQvV2hlZWxFdmVudFF0
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vV2hlZWxFdmVudFdpbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAg
ICAgICogcGxhdGZvcm0vd3gvTW91c2VXaGVlbEV2ZW50V3guY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQpOgorCiAyMDA5LTAzLTEx
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhbiBCZXJuc3RlaW4KSW5kZXg6IFdlYkNvcmUvZG9tL05vZGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvZG9tL05vZGUuY3BwCShyZXZpc2lvbiA0MTU4OCkKKysrIFdlYkNvcmUv
ZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzA2LDE5ICsyNzA2LDcgQEAgdm9pZCBO
b2RlOjpkaXNwYXRjaFdoZWVsRXZlbnQoUGxhdGZvcm1XaAogICAgIAogICAgIEludFBvaW50IHBv
cyA9IHZpZXctPndpbmRvd1RvQ29udGVudHMoZS5wb3MoKSk7CiAgICAgCi0gICAgLy8gQ29udmVy
dCB0aGUgZGVsdGFzIGZyb20gcGl4ZWxzIHRvIGxpbmVzIGlmIHdlIGhhdmUgYSBwaXhlbCBzY3Jv
bGwgZXZlbnQuCi0gICAgY29uc3QgZmxvYXQgY01vdXNlV2hlZWxQaXhlbHNQZXJMaW5lU3RlcCA9
IDQwLjBmIC8gMy4wZjsKLSAgICBmbG9hdCBkZWx0YVggPSBlLmRlbHRhWCgpOwotICAgIGZsb2F0
IGRlbHRhWSA9IGUuZGVsdGFZKCk7Ci0gICAgCi0gICAgLy8gRklYTUU6IFNob3VsZCB3ZSBkbyBh
bnl0aGluZyB3aXRoIGEgU2Nyb2xsQnlQYWdlV2hlZWxFdmVudCBoZXJlPwotICAgIC8vIEl0IHdp
bGwgYmUgdHJlYXRlZCBsaWtlIGEgbGluZSBzY3JvbGwgb2YgMSByaWdodCBub3cuCi0gICAgaWYg
KGUuZ3JhbnVsYXJpdHkoKSA9PSBTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCkgewotICAgICAgICBk
ZWx0YVggLz0gY01vdXNlV2hlZWxQaXhlbHNQZXJMaW5lU3RlcDsKLSAgICAgICAgZGVsdGFZIC89
IGNNb3VzZVdoZWVsUGl4ZWxzUGVyTGluZVN0ZXA7Ci0gICAgfQotCi0gICAgUmVmUHRyPFdoZWVs
RXZlbnQ+IHdlID0gV2hlZWxFdmVudDo6Y3JlYXRlKGUuZGVsdGFYKCksIGUuZGVsdGFZKCksCisg
ICAgUmVmUHRyPFdoZWVsRXZlbnQ+IHdlID0gV2hlZWxFdmVudDo6Y3JlYXRlKGUud2hlZWxUaWNr
c1goKSwgZS53aGVlbFRpY2tzWSgpLAogICAgICAgICBkb2N1bWVudCgpLT5kZWZhdWx0Vmlldygp
LCBlLmdsb2JhbFgoKSwgZS5nbG9iYWxZKCksIHBvcy54KCksIHBvcy55KCksCiAgICAgICAgIGUu
Y3RybEtleSgpLCBlLmFsdEtleSgpLCBlLnNoaWZ0S2V5KCksIGUubWV0YUtleSgpKTsKICAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKSW5kZXg6IFdlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCShyZXZpc2lvbiA0MTU4OCkK
KysrIFdlYkNvcmUvZG9tL1doZWVsRXZlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCwyMCAr
MzQsMTUgQEAgV2hlZWxFdmVudDo6V2hlZWxFdmVudCgpCiB7CiB9CiAKLVdoZWVsRXZlbnQ6Oldo
ZWVsRXZlbnQoZmxvYXQgd2hlZWxEZWx0YVgsIGZsb2F0IHdoZWVsRGVsdGFZLCBQYXNzUmVmUHRy
PEFic3RyYWN0Vmlldz4gdmlldywKK1doZWVsRXZlbnQ6OldoZWVsRXZlbnQoZmxvYXQgd2hlZWxU
aWNrc1gsIGZsb2F0IHdoZWVsVGlja3NZLCBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4gdmlldywK
ICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFn
ZVgsIGludCBwYWdlWSwKICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29s
IGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5KQogICAgIDogTW91c2VSZWxhdGVk
RXZlbnQoZXZlbnROYW1lcygpLm1vdXNld2hlZWxFdmVudCwKICAgICAgICAgICAgICAgICAgICAg
ICAgIHRydWUsIHRydWUsIHZpZXcsIDAsIHNjcmVlblgsIHNjcmVlblksIHBhZ2VYLCBwYWdlWSwg
CiAgICAgICAgICAgICAgICAgICAgICAgICBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRh
S2V5KQotICAgICwgbV93aGVlbERlbHRhWChscm91bmRmKHdoZWVsRGVsdGFYKSAqIDEyMCkKLSAg
ICAsIG1fd2hlZWxEZWx0YVkobHJvdW5kZih3aGVlbERlbHRhWSkgKiAxMjApIC8vIE5vcm1hbGl6
ZSB0byB0aGUgV2luZG93cyAxMjAgbXVsdGlwbGUKKyAgICAsIG1fd2hlZWxEZWx0YVgobHJvdW5k
Zih3aGVlbFRpY2tzWCAqIDEyMCkpCisgICAgLCBtX3doZWVsRGVsdGFZKGxyb3VuZGYod2hlZWxU
aWNrc1kgKiAxMjApKSAvLyBOb3JtYWxpemUgdG8gdGhlIFdpbmRvd3MgMTIwIG11bHRpcGxlCiB7
Ci0gICAgLy8gUm91bmRpbmcgZGVsdGEgdG8gemVybyBtYWtlcyBubyBzZW5zZSBhbmQgYnJlYWtz
IEdvb2dsZSBNYXBzLCA8aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYw
Nzg+LgotICAgIGlmICh3aGVlbERlbHRhWCAmJiAhbV93aGVlbERlbHRhWCkKLSAgICAgICAgbV93
aGVlbERlbHRhWCA9ICh3aGVlbERlbHRhWCA+IDApID8gMTIwIDogLTEyMDsKLSAgICBpZiAod2hl
ZWxEZWx0YVkgJiYgIW1fd2hlZWxEZWx0YVkpCi0gICAgICAgIG1fd2hlZWxEZWx0YVkgPSAod2hl
ZWxEZWx0YVkgPiAwKSA/IDEyMCA6IC0xMjA7CiB9CiAKIHZvaWQgV2hlZWxFdmVudDo6aW5pdFdo
ZWVsRXZlbnQoaW50IHdoZWVsRGVsdGFYLCBpbnQgd2hlZWxEZWx0YVksIFBhc3NSZWZQdHI8QWJz
dHJhY3RWaWV3PiB2aWV3LApJbmRleDogV2ViQ29yZS9kb20vV2hlZWxFdmVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvZG9tL1doZWVsRXZlbnQuaAkocmV2aXNpb24gNDE1ODgpCisrKyBXZWJD
b3JlL2RvbS9XaGVlbEV2ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDExICszNSwxMSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgV2hlZWxFdmVudCk7CiAgICAgICAgIH0KLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
V2hlZWxFdmVudD4gY3JlYXRlKGZsb2F0IHdoZWVsRGVsdGFYLCBmbG9hdCB3aGVlbERlbHRhWSwg
UGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZpZXcsCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFdoZWVsRXZlbnQ+IGNyZWF0ZShmbG9hdCB3aGVlbFRpY2tzWCwgZmxvYXQgd2hlZWxUaWNrc1ks
IFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LAogICAgICAgICAgICAgaW50IHNjcmVlblgs
IGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKICAgICAgICAgICAgIGJvb2wgY3Ry
bEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKICAgICAgICAg
ewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXaGVlbEV2ZW50KHdoZWVsRGVsdGFY
LCB3aGVlbERlbHRhWSwgdmlldywgc2NyZWVuWCwgc2NyZWVuWSwgcGFnZVgsIHBhZ2VZLAorICAg
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXaGVlbEV2ZW50KHdoZWVsVGlja3NYLCB3aGVl
bFRpY2tzWSwgdmlldywgc2NyZWVuWCwgc2NyZWVuWSwgcGFnZVgsIHBhZ2VZLAogICAgICAgICAg
ICAgICAgIGN0cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIG1ldGFLZXkpKTsKICAgICAgICAgfQog
CkBAIC01Niw3ICs1Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIHByaXZhdGU6CiAg
ICAgICAgIFdoZWVsRXZlbnQoKTsKLSAgICAgICAgV2hlZWxFdmVudChmbG9hdCB3aGVlbERlbHRh
WCwgZmxvYXQgd2hlZWxEZWx0YVksIFBhc3NSZWZQdHI8QWJzdHJhY3RWaWV3PiwKKyAgICAgICAg
V2hlZWxFdmVudChmbG9hdCB3aGVlbFRpY2tzWCwgZmxvYXQgd2hlZWxUaWNrc1ksIFBhc3NSZWZQ
dHI8QWJzdHJhY3RWaWV3PiwKICAgICAgICAgICAgICAgICAgICBpbnQgc2NyZWVuWCwgaW50IHNj
cmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAogICAgICAgICAgICAgICAgICAgIGJvb2wgY3Ry
bEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSk7CiAKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaAkocmV2aXNpb24gNDE1ODgpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03
NCw2ICs3NCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgZmxvYXQgZGVsdGFYKCkg
Y29uc3QgeyByZXR1cm4gbV9kZWx0YVg7IH0KICAgICAgICAgZmxvYXQgZGVsdGFZKCkgY29uc3Qg
eyByZXR1cm4gbV9kZWx0YVk7IH0KIAorICAgICAgICBmbG9hdCB3aGVlbFRpY2tzWCgpIGNvbnN0
IHsgcmV0dXJuIG1fd2hlZWxUaWNrc1g7IH0KKyAgICAgICAgZmxvYXQgd2hlZWxUaWNrc1koKSBj
b25zdCB7IHJldHVybiBtX3doZWVsVGlja3NZOyB9CisKICAgICAgICAgUGxhdGZvcm1XaGVlbEV2
ZW50R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkoKSBjb25zdCB7IHJldHVybiBtX2dyYW51bGFyaXR5
OyB9CiAKICAgICAgICAgYm9vbCBpc0FjY2VwdGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0FjY2Vw
dGVkOyB9CkBAIC0xMTEsNiArMTE0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBJ
bnRQb2ludCBtX2dsb2JhbFBvc2l0aW9uOwogICAgICAgICBmbG9hdCBtX2RlbHRhWDsKICAgICAg
ICAgZmxvYXQgbV9kZWx0YVk7CisgICAgICAgIGZsb2F0IG1fd2hlZWxUaWNrc1g7CisgICAgICAg
IGZsb2F0IG1fd2hlZWxUaWNrc1k7CiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVudEdyYW51bGFy
aXR5IG1fZ3JhbnVsYXJpdHk7CiAgICAgICAgIGJvb2wgbV9pc0FjY2VwdGVkOwogICAgICAgICBi
b29sIG1fc2hpZnRLZXk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9XaGVlbEV2ZW50R3Rr
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2d0ay9XaGVlbEV2ZW50R3RrLmNw
cAkocmV2aXNpb24gNDE1ODgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2d0ay9XaGVlbEV2ZW50R3Rr
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTksNiArNTksOCBAQCBQbGF0Zm9ybVdoZWVsRXZlbnQ6
OlBsYXRmb3JtV2hlZWxFdmVudChHCiAgICAgICAgICAgICBtX2RlbHRhWCA9IC1kZWx0YTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBtX3doZWVsVGlja3NYID0gbV9kZWx0YVg7Cisg
ICAgbV93aGVlbFRpY2tzWSA9IG1fZGVsdGFZOwogCiAgICAgbV9wb3NpdGlvbiA9IEludFBvaW50
KHN0YXRpY19jYXN0PGludD4oZXZlbnQtPngpLCBzdGF0aWNfY2FzdDxpbnQ+KGV2ZW50LT55KSk7
CiAgICAgbV9nbG9iYWxQb3NpdGlvbiA9IEludFBvaW50KHN0YXRpY19jYXN0PGludD4oZXZlbnQt
Pnhfcm9vdCksIHN0YXRpY19jYXN0PGludD4oZXZlbnQtPnlfcm9vdCkpOwpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvV2hlZWxFdmVudE1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL21hYy9XaGVlbEV2ZW50TWFjLm1tCShyZXZpc2lvbiA0MTU4OCkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vbWFjL1doZWVsRXZlbnRNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0
LDEyIEBAIFBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50KE4KIHsKICAgICBC
T09MIGNvbnRpbnVvdXM7CiAgICAgd2tHZXRXaGVlbEV2ZW50RGVsdGFzKGV2ZW50LCAmbV9kZWx0
YVgsICZtX2RlbHRhWSwgJmNvbnRpbnVvdXMpOwotICAgIGlmICghY29udGludW91cykgeworICAg
IGlmIChjb250aW51b3VzKSB7CisgICAgICAgIG1fd2hlZWxUaWNrc1ggPSBtX2RlbHRhWCAvIHN0
YXRpY19jYXN0PGZsb2F0PihjU2Nyb2xsYmFyUGl4ZWxzUGVyTGluZVN0ZXApOworICAgICAgICBt
X3doZWVsVGlja3NZID0gbV9kZWx0YVkgLyBzdGF0aWNfY2FzdDxmbG9hdD4oY1Njcm9sbGJhclBp
eGVsc1BlckxpbmVTdGVwKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtX3doZWVsVGlja3NYID0g
bV9kZWx0YVg7CisgICAgICAgIG1fd2hlZWxUaWNrc1kgPSBtX2RlbHRhWTsKICAgICAgICAgbV9k
ZWx0YVggKj0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNTY3JvbGxiYXJQaXhlbHNQZXJMaW5lU3RlcCk7
CiAgICAgICAgIG1fZGVsdGFZICo9IHN0YXRpY19jYXN0PGZsb2F0PihjU2Nyb2xsYmFyUGl4ZWxz
UGVyTGluZVN0ZXApOwogICAgIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vcXQvV2hlZWxFdmVu
dFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3F0L1doZWVsRXZlbnRRdC5j
cHAJKHJldmlzaW9uIDQxNTg4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9xdC9XaGVlbEV2ZW50UXQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSw4IEBAIFBsYXRmb3JtV2hlZWxFdmVudDo6
UGxhdGZvcm1XaGVlbEV2ZW50KFEKICAgICAgICAgbV9kZWx0YVggPSAwOwogICAgICAgICBtX2Rl
bHRhWSA9IChlLT5kZWx0YSgpIC8gMTIwKTsKICAgICB9CisgICAgbV93aGVlbFRpY2tzWCA9IG1f
ZGVsdGFYOworICAgIG1fd2hlZWxUaWNrc1kgPSBtX2RlbHRhWTsKIAogICAgIC8vIHVzZSB0aGUg
c2FtZSBzaW5nbGUgc2Nyb2xsIHN0ZXAgYXMgUVRleHRFZGl0IChpbgogICAgIC8vIFFUZXh0RWRp
dFByaXZhdGU6OmluaXQgW2gsdl1iYXItPnNldFNpbmdsZVN0ZXAgKQpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS93aW4vV2hlZWxFdmVudFdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS93aW4vV2hlZWxFdmVudFdpbi5jcHAJKHJldmlzaW9uIDQxNTg4KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS93aW4vV2hlZWxFdmVudFdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgzLDEwICs4
MywxNCBAQCBQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudChICiAgICAgaWYg
KGlzSG9yaXpvbnRhbCkgewogICAgICAgICBtX2RlbHRhWCA9IGRlbHRhICogc3RhdGljX2Nhc3Q8
ZmxvYXQ+KGhvcml6b250YWxTY3JvbGxDaGFycygpKSAqIGNTY3JvbGxiYXJQaXhlbHNQZXJMaW5l
OwogICAgICAgICBtX2RlbHRhWSA9IDA7CisgICAgICAgIG1fd2hlZWxUaWNrc1ggPSBkZWx0YTsK
KyAgICAgICAgbV93aGVlbFRpY2tzWSA9IDA7CiAgICAgICAgIG1fZ3JhbnVsYXJpdHkgPSBTY3Jv
bGxCeVBpeGVsV2hlZWxFdmVudDsKICAgICB9IGVsc2UgewogICAgICAgICBtX2RlbHRhWCA9IDA7
CiAgICAgICAgIG1fZGVsdGFZID0gZGVsdGE7CisgICAgICAgIG1fd2hlZWxUaWNrc1ggPSAwOwor
ICAgICAgICBtX3doZWVsVGlja3NZID0gZGVsdGE7CiAgICAgICAgIGludCB2ZXJ0aWNhbE11bHRp
cGxpZXIgPSB2ZXJ0aWNhbFNjcm9sbExpbmVzKCk7CiAgICAgICAgIG1fZ3JhbnVsYXJpdHkgPSAo
dmVydGljYWxNdWx0aXBsaWVyID09IFdIRUVMX1BBR0VTQ1JPTEwpID8gU2Nyb2xsQnlQYWdlV2hl
ZWxFdmVudCA6IFNjcm9sbEJ5UGl4ZWxXaGVlbEV2ZW50OwogICAgICAgICBpZiAobV9ncmFudWxh
cml0eSA9PSBTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
d3gvTW91c2VXaGVlbEV2ZW50V3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
d3gvTW91c2VXaGVlbEV2ZW50V3guY3BwCShyZXZpc2lvbiA0MTU4OCkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vd3gvTW91c2VXaGVlbEV2ZW50V3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0
Miw4IEBAIFBsYXRmb3JtV2hlZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50KGMKICAgICAsIG1f
bWV0YUtleShldmVudC5NZXRhRG93bigpKSAvLyBGSVhNRTogV2UnbGwgaGF2ZSB0byB0ZXN0IG90
aGVyIGJyb3dzZXJzCiAgICAgLCBtX2RlbHRhWCgwKSAvLyB3eCBkb2Vzbid0IHN1cHBvcnQgaG9y
aXpvbnRhbCBtb3VzZSB3aGVlbCBzY3JvbGxpbmcKICAgICAsIG1fZGVsdGFZKGV2ZW50LkdldFdo
ZWVsUm90YXRpb24oKSAvIGV2ZW50LkdldFdoZWVsRGVsdGEoKSkKKyAgICAsIG1fd2hlZWxUaWNr
c1gobV9kZWx0YVgpLAorICAgICwgbV93aGVlbFRpY2tzWShtX2RlbHRhWSksCiAgICAgLCBtX2lz
QWNjZXB0ZWQoZmFsc2UpCiB7CiAgICAgLy8gRklYTUU6IHJldHJpZXZlIHRoZSB1c2VyIHNldHRp
bmcgZm9yIHRoZSBudW1iZXIgb2YgbGluZXMgdG8gc2Nyb2xsIG9uIGVhY2ggd2hlZWwgZXZlbnQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28542</attachid>
            <date>2009-03-12 12:50:17 -0700</date>
            <delta_ts>2009-03-16 15:07:07 -0700</delta_ts>
            <desc>patch v3</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>10356</size>
            <attacher name="Peter Kasting">pkasting</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTY0MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMDktMDMtMTIgIFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDM2OAorICAgICAgICBE
T00gc2Nyb2xsIGV2ZW50cyBzaG91bGQgYmUgYmFzZWQgb2ZmIHRoZSBhY3R1YWwgbnVtYmVyIG9m
IHdoZWVsCisgICAgICAgIHRpY2tzLCBub3Qgb2ZmIHRoZSBudW1iZXIgb2YgbGluZXMgc2Nyb2xs
ZWQuICBUaGlzIG1hdGNoZXMgSUUuCisKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpOb2RlOjpkaXNwYXRjaFdoZWVsRXZlbnQpOgorICAgICAgICAqIGRvbS9XaGVl
bEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldoZWVsRXZlbnQ6OldoZWVsRXZlbnQpOgor
ICAgICAgICAqIGRvbS9XaGVlbEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpXaGVlbEV2ZW50
OjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50Ojp3aGVlbFRpY2tzWCk6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnQ6OndoZWVsVGlja3NZKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvV2hlZWxFdmVudEd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9y
bVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1doZWVsRXZlbnRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnQ6
OlBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vcXQvV2hlZWxFdmVudFF0
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vV2hlZWxFdmVudFdpbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudCk6CisgICAg
ICAgICogcGxhdGZvcm0vd3gvTW91c2VXaGVlbEV2ZW50V3guY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdoZWVsRXZlbnQpOgorCiAyMDA5LTAzLTEy
ICBQZXRlciBLYXN0aW5nICA8cGthc3RpbmdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBGaXNoZXIuCkluZGV4OiBXZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2RvbS9Ob2RlLmNwcAkocmV2aXNpb24gNDE2NDApCisrKyBXZWJDb3JlL2Rv
bS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcwNiwxOSArMjcwNiw3IEBAIHZvaWQgTm9k
ZTo6ZGlzcGF0Y2hXaGVlbEV2ZW50KFBsYXRmb3JtV2gKICAgICAKICAgICBJbnRQb2ludCBwb3Mg
PSB2aWV3LT53aW5kb3dUb0NvbnRlbnRzKGUucG9zKCkpOwogICAgIAotICAgIC8vIENvbnZlcnQg
dGhlIGRlbHRhcyBmcm9tIHBpeGVscyB0byBsaW5lcyBpZiB3ZSBoYXZlIGEgcGl4ZWwgc2Nyb2xs
IGV2ZW50LgotICAgIGNvbnN0IGZsb2F0IGNNb3VzZVdoZWVsUGl4ZWxzUGVyTGluZVN0ZXAgPSA0
MC4wZiAvIDMuMGY7Ci0gICAgZmxvYXQgZGVsdGFYID0gZS5kZWx0YVgoKTsKLSAgICBmbG9hdCBk
ZWx0YVkgPSBlLmRlbHRhWSgpOwotICAgIAotICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgZG8gYW55
dGhpbmcgd2l0aCBhIFNjcm9sbEJ5UGFnZVdoZWVsRXZlbnQgaGVyZT8KLSAgICAvLyBJdCB3aWxs
IGJlIHRyZWF0ZWQgbGlrZSBhIGxpbmUgc2Nyb2xsIG9mIDEgcmlnaHQgbm93LgotICAgIGlmIChl
LmdyYW51bGFyaXR5KCkgPT0gU2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQpIHsKLSAgICAgICAgZGVs
dGFYIC89IGNNb3VzZVdoZWVsUGl4ZWxzUGVyTGluZVN0ZXA7Ci0gICAgICAgIGRlbHRhWSAvPSBj
TW91c2VXaGVlbFBpeGVsc1BlckxpbmVTdGVwOwotICAgIH0KLQotICAgIFJlZlB0cjxXaGVlbEV2
ZW50PiB3ZSA9IFdoZWVsRXZlbnQ6OmNyZWF0ZShlLmRlbHRhWCgpLCBlLmRlbHRhWSgpLAorICAg
IFJlZlB0cjxXaGVlbEV2ZW50PiB3ZSA9IFdoZWVsRXZlbnQ6OmNyZWF0ZShlLndoZWVsVGlja3NY
KCksIGUud2hlZWxUaWNrc1koKSwKICAgICAgICAgZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwg
ZS5nbG9iYWxYKCksIGUuZ2xvYmFsWSgpLCBwb3MueCgpLCBwb3MueSgpLAogICAgICAgICBlLmN0
cmxLZXkoKSwgZS5hbHRLZXkoKSwgZS5zaGlmdEtleSgpLCBlLm1ldGFLZXkoKSk7CiAgICAgRXhj
ZXB0aW9uQ29kZSBlYyA9IDA7CkluZGV4OiBXZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcAkocmV2aXNpb24gNDE2NDApCisr
KyBXZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsMjAgKzM0
LDE1IEBAIFdoZWVsRXZlbnQ6OldoZWVsRXZlbnQoKQogewogfQogCi1XaGVlbEV2ZW50OjpXaGVl
bEV2ZW50KGZsb2F0IHdoZWVsRGVsdGFYLCBmbG9hdCB3aGVlbERlbHRhWSwgUGFzc1JlZlB0cjxB
YnN0cmFjdFZpZXc+IHZpZXcsCitXaGVlbEV2ZW50OjpXaGVlbEV2ZW50KGZsb2F0IHdoZWVsVGlj
a3NYLCBmbG9hdCB3aGVlbFRpY2tzWSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZpZXcsCiAg
ICAgICAgICAgICAgICAgICAgICAgIGludCBzY3JlZW5YLCBpbnQgc2NyZWVuWSwgaW50IHBhZ2VY
LCBpbnQgcGFnZVksCiAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBh
bHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSkKICAgICA6IE1vdXNlUmVsYXRlZEV2
ZW50KGV2ZW50TmFtZXMoKS5tb3VzZXdoZWVsRXZlbnQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICB0cnVlLCB0cnVlLCB2aWV3LCAwLCBzY3JlZW5YLCBzY3JlZW5ZLCBwYWdlWCwgcGFnZVksIAog
ICAgICAgICAgICAgICAgICAgICAgICAgY3RybEtleSwgYWx0S2V5LCBzaGlmdEtleSwgbWV0YUtl
eSkKLSAgICAsIG1fd2hlZWxEZWx0YVgobHJvdW5kZih3aGVlbERlbHRhWCkgKiAxMjApCi0gICAg
LCBtX3doZWVsRGVsdGFZKGxyb3VuZGYod2hlZWxEZWx0YVkpICogMTIwKSAvLyBOb3JtYWxpemUg
dG8gdGhlIFdpbmRvd3MgMTIwIG11bHRpcGxlCisgICAgLCBtX3doZWVsRGVsdGFYKGxyb3VuZGYo
d2hlZWxUaWNrc1ggKiAxMjApKQorICAgICwgbV93aGVlbERlbHRhWShscm91bmRmKHdoZWVsVGlj
a3NZICogMTIwKSkgLy8gTm9ybWFsaXplIHRvIHRoZSBXaW5kb3dzIDEyMCBtdWx0aXBsZQogewot
ICAgIC8vIFJvdW5kaW5nIGRlbHRhIHRvIHplcm8gbWFrZXMgbm8gc2Vuc2UgYW5kIGJyZWFrcyBH
b29nbGUgTWFwcywgPGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDc4
Pi4KLSAgICBpZiAod2hlZWxEZWx0YVggJiYgIW1fd2hlZWxEZWx0YVgpCi0gICAgICAgIG1fd2hl
ZWxEZWx0YVggPSAod2hlZWxEZWx0YVggPiAwKSA/IDEyMCA6IC0xMjA7Ci0gICAgaWYgKHdoZWVs
RGVsdGFZICYmICFtX3doZWVsRGVsdGFZKQotICAgICAgICBtX3doZWVsRGVsdGFZID0gKHdoZWVs
RGVsdGFZID4gMCkgPyAxMjAgOiAtMTIwOwogfQogCiB2b2lkIFdoZWVsRXZlbnQ6OmluaXRXaGVl
bEV2ZW50KGludCB3aGVlbERlbHRhWCwgaW50IHdoZWVsRGVsdGFZLCBQYXNzUmVmUHRyPEFic3Ry
YWN0Vmlldz4gdmlldywKSW5kZXg6IFdlYkNvcmUvZG9tL1doZWVsRXZlbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmgJKHJldmlzaW9uIDQxNjQwKQorKysgV2ViQ29y
ZS9kb20vV2hlZWxFdmVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxMSArMzUsMTEgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFdoZWVsRXZlbnQpOwogICAgICAgICB9Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdo
ZWVsRXZlbnQ+IGNyZWF0ZShmbG9hdCB3aGVlbERlbHRhWCwgZmxvYXQgd2hlZWxEZWx0YVksIFBh
c3NSZWZQdHI8QWJzdHJhY3RWaWV3PiB2aWV3LAorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxX
aGVlbEV2ZW50PiBjcmVhdGUoZmxvYXQgd2hlZWxUaWNrc1gsIGZsb2F0IHdoZWVsVGlja3NZLCBQ
YXNzUmVmUHRyPEFic3RyYWN0Vmlldz4gdmlldywKICAgICAgICAgICAgIGludCBzY3JlZW5YLCBp
bnQgc2NyZWVuWSwgaW50IHBhZ2VYLCBpbnQgcGFnZVksCiAgICAgICAgICAgICBib29sIGN0cmxL
ZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXkpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2hlZWxFdmVudCh3aGVlbERlbHRhWCwg
d2hlZWxEZWx0YVksIHZpZXcsIHNjcmVlblgsIHNjcmVlblksIHBhZ2VYLCBwYWdlWSwKKyAgICAg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2hlZWxFdmVudCh3aGVlbFRpY2tzWCwgd2hlZWxU
aWNrc1ksIHZpZXcsIHNjcmVlblgsIHNjcmVlblksIHBhZ2VYLCBwYWdlWSwKICAgICAgICAgICAg
ICAgICBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5KSk7CiAgICAgICAgIH0KIApA
QCAtNTYsNyArNTYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBwcml2YXRlOgogICAg
ICAgICBXaGVlbEV2ZW50KCk7Ci0gICAgICAgIFdoZWVsRXZlbnQoZmxvYXQgd2hlZWxEZWx0YVgs
IGZsb2F0IHdoZWVsRGVsdGFZLCBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4sCisgICAgICAgIFdo
ZWVsRXZlbnQoZmxvYXQgd2hlZWxUaWNrc1gsIGZsb2F0IHdoZWVsVGlja3NZLCBQYXNzUmVmUHRy
PEFic3RyYWN0Vmlldz4sCiAgICAgICAgICAgICAgICAgICAgaW50IHNjcmVlblgsIGludCBzY3Jl
ZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKICAgICAgICAgICAgICAgICAgICBib29sIGN0cmxL
ZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXkpOwogCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgJKHJldmlzaW9uIDQxNjQyKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNzQs
NiArNzQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGZsb2F0IGRlbHRhWCgpIGNv
bnN0IHsgcmV0dXJuIG1fZGVsdGFYOyB9CiAgICAgICAgIGZsb2F0IGRlbHRhWSgpIGNvbnN0IHsg
cmV0dXJuIG1fZGVsdGFZOyB9CiAKKyAgICAgICAgZmxvYXQgd2hlZWxUaWNrc1goKSBjb25zdCB7
IHJldHVybiBtX3doZWVsVGlja3NYOyB9CisgICAgICAgIGZsb2F0IHdoZWVsVGlja3NZKCkgY29u
c3QgeyByZXR1cm4gbV93aGVlbFRpY2tzWTsgfQorCiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVu
dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KCkgY29uc3QgeyByZXR1cm4gbV9ncmFudWxhcml0eTsg
fQogCiAgICAgICAgIGJvb2wgaXNBY2NlcHRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNBY2NlcHRl
ZDsgfQpAQCAtMTExLDYgKzExNCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgSW50
UG9pbnQgbV9nbG9iYWxQb3NpdGlvbjsKICAgICAgICAgZmxvYXQgbV9kZWx0YVg7CiAgICAgICAg
IGZsb2F0IG1fZGVsdGFZOworICAgICAgICBmbG9hdCBtX3doZWVsVGlja3NYOworICAgICAgICBm
bG9hdCBtX3doZWVsVGlja3NZOwogICAgICAgICBQbGF0Zm9ybVdoZWVsRXZlbnRHcmFudWxhcml0
eSBtX2dyYW51bGFyaXR5OwogICAgICAgICBib29sIG1faXNBY2NlcHRlZDsKICAgICAgICAgYm9v
bCBtX3NoaWZ0S2V5OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvV2hlZWxFdmVudEd0ay5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ndGsvV2hlZWxFdmVudEd0ay5jcHAJ
KHJldmlzaW9uIDQxNjQwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ndGsvV2hlZWxFdmVudEd0ay5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU5LDYgKzU5LDggQEAgUGxhdGZvcm1XaGVlbEV2ZW50OjpQ
bGF0Zm9ybVdoZWVsRXZlbnQoRwogICAgICAgICAgICAgbV9kZWx0YVggPSAtZGVsdGE7CiAgICAg
ICAgICAgICBicmVhazsKICAgICB9CisgICAgbV93aGVlbFRpY2tzWCA9IG1fZGVsdGFYOworICAg
IG1fd2hlZWxUaWNrc1kgPSBtX2RlbHRhWTsKIAogICAgIG1fcG9zaXRpb24gPSBJbnRQb2ludChz
dGF0aWNfY2FzdDxpbnQ+KGV2ZW50LT54KSwgc3RhdGljX2Nhc3Q8aW50PihldmVudC0+eSkpOwog
ICAgIG1fZ2xvYmFsUG9zaXRpb24gPSBJbnRQb2ludChzdGF0aWNfY2FzdDxpbnQ+KGV2ZW50LT54
X3Jvb3QpLCBzdGF0aWNfY2FzdDxpbnQ+KGV2ZW50LT55X3Jvb3QpKTsKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vbWFjL1doZWVsRXZlbnRNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvV2hlZWxFdmVudE1hYy5tbQkocmV2aXNpb24gNDE2NDApCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL21hYy9XaGVlbEV2ZW50TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCwx
MiBAQCBQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudChOCiB7CiAgICAgQk9P
TCBjb250aW51b3VzOwogICAgIHdrR2V0V2hlZWxFdmVudERlbHRhcyhldmVudCwgJm1fZGVsdGFY
LCAmbV9kZWx0YVksICZjb250aW51b3VzKTsKLSAgICBpZiAoIWNvbnRpbnVvdXMpIHsKKyAgICBp
ZiAoY29udGludW91cykgeworICAgICAgICBtX3doZWVsVGlja3NYID0gbV9kZWx0YVggLyBzdGF0
aWNfY2FzdDxmbG9hdD4oY1Njcm9sbGJhclBpeGVsc1BlckxpbmVTdGVwKTsKKyAgICAgICAgbV93
aGVlbFRpY2tzWSA9IG1fZGVsdGFZIC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGNTY3JvbGxiYXJQaXhl
bHNQZXJMaW5lU3RlcCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV93aGVlbFRpY2tzWCA9IG1f
ZGVsdGFYOworICAgICAgICBtX3doZWVsVGlja3NZID0gbV9kZWx0YVk7CiAgICAgICAgIG1fZGVs
dGFYICo9IHN0YXRpY19jYXN0PGZsb2F0PihjU2Nyb2xsYmFyUGl4ZWxzUGVyTGluZVN0ZXApOwog
ICAgICAgICBtX2RlbHRhWSAqPSBzdGF0aWNfY2FzdDxmbG9hdD4oY1Njcm9sbGJhclBpeGVsc1Bl
ckxpbmVTdGVwKTsKICAgICB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3F0L1doZWVsRXZlbnRR
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9xdC9XaGVlbEV2ZW50UXQuY3Bw
CShyZXZpc2lvbiA0MTY0MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vcXQvV2hlZWxFdmVudFF0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsOCBAQCBQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBs
YXRmb3JtV2hlZWxFdmVudChRCiAgICAgICAgIG1fZGVsdGFYID0gMDsKICAgICAgICAgbV9kZWx0
YVkgPSAoZS0+ZGVsdGEoKSAvIDEyMCk7CiAgICAgfQorICAgIG1fd2hlZWxUaWNrc1ggPSBtX2Rl
bHRhWDsKKyAgICBtX3doZWVsVGlja3NZID0gbV9kZWx0YVk7CiAKICAgICAvLyB1c2UgdGhlIHNh
bWUgc2luZ2xlIHNjcm9sbCBzdGVwIGFzIFFUZXh0RWRpdCAoaW4KICAgICAvLyBRVGV4dEVkaXRQ
cml2YXRlOjppbml0IFtoLHZdYmFyLT5zZXRTaW5nbGVTdGVwICkKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vd2luL1doZWVsRXZlbnRXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vd2luL1doZWVsRXZlbnRXaW4uY3BwCShyZXZpc2lvbiA0MTY0MikKKysrIFdlYkNvcmUvcGxh
dGZvcm0vd2luL1doZWVsRXZlbnRXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MCw4ICs4MCwy
MCBAQCBQbGF0Zm9ybVdoZWVsRXZlbnQ6OlBsYXRmb3JtV2hlZWxFdmVudChICiAgICAgLy8gKHRo
ZSBkZWZhdWx0IHNjcm9sbCBhbW91bnQgb24gV2luZG93cyBpcyB0aHJlZSBsaW5lcyBwZXIgd2hl
ZWwgdGljaykuCiAgICAgc3RhdGljIGNvbnN0IGZsb2F0IGNTY3JvbGxiYXJQaXhlbHNQZXJMaW5l
ID0gMTAwLjBmIC8gMy4wZjsKICAgICBmbG9hdCBkZWx0YSA9IEdFVF9XSEVFTF9ERUxUQV9XUEFS
QU0od1BhcmFtKSAvIHN0YXRpY19jYXN0PGZsb2F0PihXSEVFTF9ERUxUQSk7Ci0gICAgaWYgKGlz
TW91c2VIV2hlZWwpCi0gICAgICAgIGRlbHRhID0gLWRlbHRhOyAgLy8gV2luZG93cyBpcyA8LS0g
LS8rIC0tPiwgV2ViS2l0IHdhbnRzIDwtLSArLy0gLS0+CisgICAgaWYgKGlzTW91c2VIV2hlZWwp
IHsKKyAgICAgICAgLy8gV2luZG93cyBpcyA8LS0gLS8rIC0tPiwgV2ViS2l0IHdhbnRzIDwtLSAr
Ly0gLS0+LCBzbyB3ZSBuZWdhdGUKKyAgICAgICAgLy8gfGRlbHRhfCBhZnRlciBzYXZpbmcgdGhl
IG9yaWdpbmFsIHZhbHVlIG9uIHRoZSB3aGVlbCB0aWNrIG1lbWJlci4KKyAgICAgICAgbV93aGVl
bFRpY2tzWCA9IGRlbHRhOworICAgICAgICBtX3doZWVsVGlja3NZID0gMDsKKyAgICAgICAgZGVs
dGEgPSAtZGVsdGE7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gRXZlbiB0aG91Z2ggd2UgdXNl
IHNoaWZ0ICsgdmVydGljYWwgd2hlZWwgdG8gc2Nyb2xsIGhvcml6b250YWxseSBpbgorICAgICAg
ICAvLyBXZWJLaXQsIHdlIHN0aWxsIG5vdGUgaXQgYXMgYSB2ZXJ0aWNhbCBzY3JvbGwgb24gdGhl
IHdoZWVsIHRpY2sKKyAgICAgICAgLy8gbWVtYmVyLCBzbyB0aGF0IHRoZSBET00gZXZlbnQgd2Ug
bGF0ZXIgY29uc3RydWN0IHdpbGwgbWF0Y2ggdGhlIHJlYWwKKyAgICAgICAgLy8gaGFyZHdhcmUg
ZXZlbnQgYmV0dGVyLgorICAgICAgICBtX3doZWVsVGlja3NYID0gMDsKKyAgICAgICAgbV93aGVl
bFRpY2tzWSA9IGRlbHRhOworICAgIH0KICAgICBpZiAoaXNNb3VzZUhXaGVlbCB8fCBtX3NoaWZ0
S2V5KSB7CiAgICAgICAgIG1fZGVsdGFYID0gZGVsdGEgKiBzdGF0aWNfY2FzdDxmbG9hdD4oaG9y
aXpvbnRhbFNjcm9sbENoYXJzKCkpICogY1Njcm9sbGJhclBpeGVsc1BlckxpbmU7CiAgICAgICAg
IG1fZGVsdGFZID0gMDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vd3gvTW91c2VXaGVlbEV2ZW50
V3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vd3gvTW91c2VXaGVlbEV2ZW50
V3guY3BwCShyZXZpc2lvbiA0MTY0MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vd3gvTW91c2VXaGVl
bEV2ZW50V3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw4IEBAIFBsYXRmb3JtV2hl
ZWxFdmVudDo6UGxhdGZvcm1XaGVlbEV2ZW50KGMKICAgICAsIG1fbWV0YUtleShldmVudC5NZXRh
RG93bigpKSAvLyBGSVhNRTogV2UnbGwgaGF2ZSB0byB0ZXN0IG90aGVyIGJyb3dzZXJzCiAgICAg
LCBtX2RlbHRhWCgwKSAvLyB3eCBkb2Vzbid0IHN1cHBvcnQgaG9yaXpvbnRhbCBtb3VzZSB3aGVl
bCBzY3JvbGxpbmcKICAgICAsIG1fZGVsdGFZKGV2ZW50LkdldFdoZWVsUm90YXRpb24oKSAvIGV2
ZW50LkdldFdoZWVsRGVsdGEoKSkKKyAgICAsIG1fd2hlZWxUaWNrc1gobV9kZWx0YVgpLAorICAg
ICwgbV93aGVlbFRpY2tzWShtX2RlbHRhWSksCiAgICAgLCBtX2lzQWNjZXB0ZWQoZmFsc2UpCiB7
CiAgICAgLy8gRklYTUU6IHJldHJpZXZlIHRoZSB1c2VyIHNldHRpbmcgZm9yIHRoZSBudW1iZXIg
b2YgbGluZXMgdG8gc2Nyb2xsIG9uIGVhY2ggd2hlZWwgZXZlbnQK
</data>
<flag name="review"
          id="14027"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>