<?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>95127</bug_id>
          
          <creation_ts>2012-08-27 14:17:13 -0700</creation_ts>
          <short_desc>[WK2] Add SPI for injected bundle to manually set permissions</short_desc>
          <delta_ts>2012-08-28 11:11: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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.8</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>77969</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>gustavo</cc>
    
    <cc>haraken</cc>
    
    <cc>jberlin</cc>
    
    <cc>jianli</cc>
    
    <cc>philn</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>705663</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-27 14:17:13 -0700</bug_when>
    <thetext>TestRunner will need to be able to manually set permissions for notifications tests. We provide test-only SPI that allows direct manipulation of the cached permissions mapping in the web process.

Doing this instead of calling into the UI process to handle permissions makes tests legible. Otherwise, because of the IPC messaging involved, tests would require a cascade of setTimeout(nextStepInTestAfterMessageHasBeenDelivered, 0).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705668</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-08-27 14:19:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/12182635&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705872</commentid>
    <comment_count>2</comment_count>
      <attachid>160855</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-27 16:44:44 -0700</bug_when>
    <thetext>Created attachment 160855
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705900</commentid>
    <comment_count>3</comment_count>
      <attachid>160862</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-27 17:12:01 -0700</bug_when>
    <thetext>Created attachment 160862
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706416</commentid>
    <comment_count>4</comment_count>
      <attachid>160862</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-08-28 09:27:58 -0700</bug_when>
    <thetext>Comment on attachment 160862
Patch

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

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:99
&gt; +WK_EXPORT void WKBundleRemoveAllWebNotificationPermissions(WKBundleRef bundle, WKBundlePageRef page);

You should add a comment here (or above the block of functions in this file that are only used for testing) that this should only be used for testing.

&gt; Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp:541
&gt; +    page-&gt;notificationPermissionRequestManager()-&gt;setPermissionLevelForTesting(originString, allowed ? NotificationClient::PermissionAllowed : NotificationClient::PermissionDenied);

Is the originString always a file URL or localhost since this is for the tests? In which case, would it be better to pass an enum or bool value indicating which of the two it is?

Why do you call the bool allowed here while you call in granted in WKBundlePrivate.h and WKBundle.cpp? You should pick one and use it throughout.

&gt; Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.h:127
&gt; +    void setWebNotificationPermission(WebPage*, const String&amp;, bool);

You should include the parameter names of the string and the bool, since they are not obvious.

&gt; Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.cpp:157
&gt; +    WebProcess::shared().notificationManager().didUpdateNotificationDecision(origin-&gt;toString(), allowed);

Why is this being done in this patch? From your comment, it seems like this needs to be done for notifications in general, not to enable testing. If so, please split it out into a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706473</commentid>
    <comment_count>5</comment_count>
      <attachid>160862</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-28 10:13:48 -0700</bug_when>
    <thetext>Comment on attachment 160862
Patch

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

&gt;&gt; Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:99
&gt;&gt; +WK_EXPORT void WKBundleRemoveAllWebNotificationPermissions(WKBundleRef bundle, WKBundlePageRef page);
&gt; 
&gt; You should add a comment here (or above the block of functions in this file that are only used for testing) that this should only be used for testing.

In InjectedBundle.h there&apos;s a block of functions marked as TestRunner SPI, and I guess for whatever reason it&apos;s not like that here. I&apos;ll can rearrangement the declaration of the methods to provide a similar section in WKBundlePrivate.h.

&gt;&gt; Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp:541
&gt;&gt; +    page-&gt;notificationPermissionRequestManager()-&gt;setPermissionLevelForTesting(originString, allowed ? NotificationClient::PermissionAllowed : NotificationClient::PermissionDenied);
&gt; 
&gt; Is the originString always a file URL or localhost since this is for the tests? In which case, would it be better to pass an enum or bool value indicating which of the two it is?
&gt; 
&gt; Why do you call the bool allowed here while you call in granted in WKBundlePrivate.h and WKBundle.cpp? You should pick one and use it throughout.

No, using an enum means I would be hardcoding the origin strings in the library, and I&apos;d rather have WTR/DRT be able to define it, in case it changes. (Right now http/tests uses 127.0.0.1:8000).
I&apos;ll make it consistent with &quot;allowed&quot;.

&gt;&gt; Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.h:127
&gt;&gt; +    void setWebNotificationPermission(WebPage*, const String&amp;, bool);
&gt; 
&gt; You should include the parameter names of the string and the bool, since they are not obvious.

Done.

&gt;&gt; Source/WebKit2/WebProcess/Notifications/NotificationPermissionRequestManager.cpp:157
&gt;&gt; +    WebProcess::shared().notificationManager().didUpdateNotificationDecision(origin-&gt;toString(), allowed);
&gt; 
&gt; Why is this being done in this patch? From your comment, it seems like this needs to be done for notifications in general, not to enable testing. If so, please split it out into a separate patch.

I&apos;ll split it out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706535</commentid>
    <comment_count>6</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-08-28 11:11:23 -0700</bug_when>
    <thetext>Committed r126899: &lt;http://trac.webkit.org/changeset/126899&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160855</attachid>
            <date>2012-08-27 16:44:44 -0700</date>
            <delta_ts>2012-08-27 17:11:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95127-20120827164436.patch</filename>
            <type>text/plain</type>
            <size>11903</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2NzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTVmZmM0NzFiZjQ4ZDEx
YTRjZDhjYWM3YzhiMDA2Mzg5NDczOWE5YS4uZmM3NGQ2NGNiOGNjMTAzOWVhMzkyOWI2YTMxNWZm
Y2IwYjczOWI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA4LTI3ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBBZGQgU1BJIGZvciBpbmpl
Y3RlZCBidW5kbGUgdG8gbWFudWFsbHkgc2V0IHBlcm1pc3Npb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTEyNworICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTIxODI2MzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBpcyB3b3JrIHRvd2FyZCBwcm92aWRpbmcgTWFjIHN1cHBvcnQgZm9yIHdl
YiBub3RpZmljYXRpb25zIGluIERSVCBhbmQgV1RSICg3Nzk2OSkuCisKKyAgICAgICAgQWRkIHN1
cHBvcnQgZnVuY3Rpb25zIHRvIFdlYktpdDIgd2hpY2ggbWFpbnRhaW4gdGhlIG1hcCBvZiBwZXJt
aXNzaW9ucyB0byBvcmlnaW5zIGZvciB3ZWIgbm90aWZpY2F0aW9ucy4KKyAgICAgICAgRm9yIFdl
YktpdDEgdGhlIG1hcCBpcyBtYW5hZ2VkIGJ5IER1bXBSZW5kZXJUcmVlLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oOiBBZGQgVGVzdFJ1bm5l
ciBTUEkuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpzZXRXZWJOb3RpZmljYXRp
b25QZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OnJlbW92ZUFs
bFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zKToKKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmg6IEV4cG9zZSBhcyBXSyBBUEkuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHA6CisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOjpzZXRQZXJtaXNzaW9uTGV2ZWxGb3JUZXN0aW5nKTogTWFudWFs
bHkgc2V0IHRoZSBwZXJtaXNzaW9uCisgICAgICAgIGxldmVsIGZvciBhbiBvcmlnaW4uCisgICAg
ICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6cmVtb3Zl
QWxsUGVybWlzc2lvbnNGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lv
bkRlY2lzaW9uKTogV2hlbiB0aGUgdXNlcgorICAgICAgICBtYWtlcyBhIGRlY2lzaW9uLCBjbGVh
biB1cCBhbGwgb2YgdGhlIG1hcHMgbWFpbnRhaW5lZCBieSB0aGUgcmVxdWVzdCBtYW5hZ2VyLiBN
YWtlIHN1cmUgdG8gdXBkYXRlIHRoZSB3ZWIKKyAgICAgICAgcHJvY2VzcycgcmVwcmVzZW50YXRp
b24gb2YgdGhlIHBlcm1pc3Npb25zLgorICAgICAgICAqIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaDoKKyAgICAgICAgKE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpyZW1vdmVBbGxQZXJtaXNzaW9uc0ZvclRlc3Rpbmcp
OiBDbGVhciB0aGUgcGVybWlzc2lvbiBtYXAuCisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaDogUHJvbW90ZSBkaWRVcGRhdGVOb3RpZmlj
YXRpb25EZWNpc2lvbiBtZXNzYWdlIGFzIHB1YmxpYworICAgICAgICBmdW5jdGlvbiwgc28gdGhh
dCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgY2FuIHVwZGF0ZSB0aGUgcGVy
bWlzc2lvbiBtYXAuCisKIDIwMTItMDgtMjcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdW1F0XSBXZWJBdWRpbyBzdXBwb3J0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGUuY3BwCmluZGV4IGVlMTBlOTY0ZjZiYjFkNjYzNTBkN2RmMzYxMTM2MDNk
ZjMzMWY5YWEuLmFlMjUyYTYxZDhjYjUzNGZmNGYwNGY1YjY0MjFmYjg1MWNhMjYzNjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGUuY3BwCkBAIC0yNjAsMyArMjYwLDE0IEBAIHZvaWQgV0tCdW5kbGVTZXRV
c2VyU3R5bGVTaGVldExvY2F0aW9uKFdLQnVuZGxlUmVmIGJ1bmRsZVJlZiwgV0tCdW5kbGVQYWdl
R3JvdXBSCiB7CiAgICAgdG9JbXBsKGJ1bmRsZVJlZiktPnNldFVzZXJTdHlsZVNoZWV0TG9jYXRp
b24odG9JbXBsKHBhZ2VHcm91cFJlZiksIHRvSW1wbChsb2NhdGlvbiktPnN0cmluZygpKTsKIH0K
Kwordm9pZCBXS0J1bmRsZVNldFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oV0tCdW5kbGVSZWYg
YnVuZGxlUmVmLCBXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tTdHJpbmdSZWYgb3JpZ2luU3Ry
aW5nUmVmLCBib29sIGdyYW50ZWQpCit7CisgICAgdG9JbXBsKGJ1bmRsZVJlZiktPnNldFdlYk5v
dGlmaWNhdGlvblBlcm1pc3Npb24odG9JbXBsKHBhZ2VSZWYpLCB0b0ltcGwob3JpZ2luU3RyaW5n
UmVmKS0+c3RyaW5nKCksIGdyYW50ZWQpOworfQorCit2b2lkIFdLQnVuZGxlUmVtb3ZlQWxsV2Vi
Tm90aWZpY2F0aW9uUGVybWlzc2lvbnMoV0tCdW5kbGVSZWYgYnVuZGxlUmVmLCBXS0J1bmRsZVBh
Z2VSZWYgcGFnZVJlZikKK3sKKyAgICB0b0ltcGwoYnVuZGxlUmVmKS0+cmVtb3ZlQWxsV2ViTm90
aWZpY2F0aW9uUGVybWlzc2lvbnModG9JbXBsKHBhZ2VSZWYpKTsKK30KKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBy
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQcml2YXRlLmgKaW5kZXggYjVlMTBlNTdmYWYxMGEwODI3YWJjZmRmYzAzZDc0ZGE0
ZjMyNmMzNi4uYTVkZGYwYWYwMGZlOTQ3MjBkNDg4ZjQ0NjI3MzgyOTlhYjRmZjc3NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUHJpdmF0ZS5oCkBAIC05NSw2ICs5NSw5IEBAIFdLX0VYUE9SVCB2
b2lkIFdLQnVuZGxlU3dpdGNoTmV0d29ya0xvYWRlclRvTmV3VGVzdGluZ1Nlc3Npb24oV0tCdW5k
bGVSZWYgYnVuZGxlCiAKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlU2V0UGFnZVZpc2liaWxpdHlT
dGF0ZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBpbnQgc3RhdGUs
IGJvb2wgaXNJbml0aWFsU3RhdGUpOwogCitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVNldFdlYk5v
dGlmaWNhdGlvblBlcm1pc3Npb24oV0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZVBhZ2VSZWYg
cGFnZSwgV0tTdHJpbmdSZWYgb3JpZ2luU3RyaW5nUmVmLCBib29sIGdyYW50ZWQpOworV0tfRVhQ
T1JUIHZvaWQgV0tCdW5kbGVSZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucyhXS0J1
bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZVJlZiBwYWdlKTsKKwogI2lmZGVmIF9fY3BsdXNw
bHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggMWU4MzEwNzI5YzI2NDIz
MTZjNzEwMDVjNTJiNzkwZTlhMjBkNDAxZC4uMjg0MzQxYzBiNmZkZjI3MjgxYjA2ZTRlZTk3ZWJh
MWEzOGFiMmVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRC
dW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUhvc3QuaCIKKyNp
bmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRl
ICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKICNpbmNsdWRlICJX
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oIgpAQCAtNTM0LDQgKzUzNSwyNCBAQCB2b2lkIElu
amVjdGVkQnVuZGxlOjpzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKFdlYlBhZ2VHcm91cFByb3h5
KiBwYWdlR3JvdXAsIGNvbgogICAgICAgICAoKml0ZXIpLT5zZXR0aW5ncygpLT5zZXRVc2VyU3R5
bGVTaGVldExvY2F0aW9uKEtVUkwoS1VSTCgpLCBsb2NhdGlvbikpOwogfQogCit2b2lkIEluamVj
dGVkQnVuZGxlOjpzZXRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKFdlYlBhZ2UqIHBhZ2UsIGNv
bnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCBib29sIGFsbG93ZWQpCit7CisjaWYgRU5BQkxFKE5P
VElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKKyAgICBwYWdlLT5u
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+c2V0UGVybWlzc2lvbkxldmVs
Rm9yVGVzdGluZyhvcmlnaW5TdHJpbmcsIGFsbG93ZWQgPyBOb3RpZmljYXRpb25DbGllbnQ6OlBl
cm1pc3Npb25BbGxvd2VkIDogTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uRGVuaWVkKTsK
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAgIFVOVVNFRF9QQVJBTShvcmlnaW5T
dHJpbmcpOworICAgIFVOVVNFRF9QQVJBTShhbGxvd2VkKTsKKyNlbmRpZgorfQorCit2b2lkIElu
amVjdGVkQnVuZGxlOjpyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucyhXZWJQYWdl
KiBwYWdlKQoreworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05P
VElGSUNBVElPTlMpCisgICAgcGFnZS0+bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyKCktPnJlbW92ZUFsbFBlcm1pc3Npb25zRm9yVGVzdGluZygpOworI2Vsc2UKKyAgICBVTlVT
RURfUEFSQU0ocGFnZSk7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmgKaW5kZXggODdmN2VmM2IwNGI5YTVhZDc5ZDZlNWZjYmQ5ZDIyZDFiMGQ1ODhi
YS4uNzQ2MWRiOGM0NTIwOTA3ZmM2YTAzNjczZDQ5N2RlNDU3ZDRhZWZjYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGUuaApAQCAtMTI0LDYgKzEyNCw4IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgcGFnZVNpemVB
bmRNYXJnaW5zSW5QaXhlbHMoV2ViRnJhbWUqLCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50
LCBpbnQpOwogICAgIGJvb2wgaXNQYWdlQm94VmlzaWJsZShXZWJGcmFtZSosIGludCk7CiAgICAg
dm9pZCBzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKFdlYlBhZ2VHcm91cFByb3h5KiwgY29uc3Qg
U3RyaW5nJik7CisgICAgdm9pZCBzZXRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKFdlYlBhZ2Uq
LCBjb25zdCBTdHJpbmcmLCBib29sKTsKKyAgICB2b2lkIHJlbW92ZUFsbFdlYk5vdGlmaWNhdGlv
blBlcm1pc3Npb25zKFdlYlBhZ2UqKTsKIAogICAgIC8vIFVzZXJDb250ZW50IEFQSQogICAgIHZv
aWQgYWRkVXNlclNjcmlwdChXZWJQYWdlR3JvdXBQcm94eSosIEluamVjdGVkQnVuZGxlU2NyaXB0
V29ybGQqLCBjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU3RyaW5nJiB1cmwsIEltbXV0YWJs
ZUFycmF5KiB3aGl0ZWxpc3QsIEltbXV0YWJsZUFycmF5KiBibGFja2xpc3QsIFdlYkNvcmU6OlVz
ZXJTY3JpcHRJbmplY3Rpb25UaW1lLCBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5jcHAKaW5kZXggNmQ4OWZjMGM5NTI2YjJlNGNiZWI0YzE4MGY1ZWNlYzY3NjZmMTM4Ny4u
MjJlNTBiOWI0MzM1ZDdlZWZiY2NhMzI2MjI2NzlmYmNlOWE1ZWVjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTEy
OCwxMiArMTI4LDM0IEBAIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnBlcm1pc3Npb25MCiAjZW5kaWYKIH0KIAordm9p
ZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnNldFBlcm1pc3Npb25MZXZl
bEZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIFdlYkNvcmU6Ok5vdGlmaWNh
dGlvbkNsaWVudDo6UGVybWlzc2lvbiBwZXJtaXNzaW9uKQoreworI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCisgICAgV2ViUHJvY2Vzczo6
c2hhcmVkKCkubm90aWZpY2F0aW9uTWFuYWdlcigpLmRpZFVwZGF0ZU5vdGlmaWNhdGlvbkRlY2lz
aW9uKG9yaWdpblN0cmluZywgcGVybWlzc2lvbik7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShv
cmlnaW5TdHJpbmcpOworICAgIFVOVVNFRF9QQVJBTShwZXJtaXNzaW9uKTsKKyNlbmRpZgorfQor
Cit2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6cmVtb3ZlQWxsUGVy
bWlzc2lvbnNGb3JUZXN0aW5nKCkKK3sKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5B
QkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQorICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLm5vdGlm
aWNhdGlvbk1hbmFnZXIoKS5yZW1vdmVBbGxQZXJtaXNzaW9uc0ZvclRlc3RpbmcoKTsKKyNlbmRp
ZgorfQorCiB2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVj
ZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIGJv
b2wgYWxsb3dlZCkKIHsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FD
WV9OT1RJRklDQVRJT05TKQogICAgIGlmICghaXNSZXF1ZXN0SURWYWxpZChyZXF1ZXN0SUQpKQog
ICAgICAgICByZXR1cm47CiAKKyAgICBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG9y
aWdpbiA9IG1faWRUb09yaWdpbk1hcC50YWtlKHJlcXVlc3RJRCk7CisgICAgbV9vcmlnaW5Ub0lE
TWFwLnJlbW92ZShvcmlnaW4pOworCisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkubm90aWZpY2F0
aW9uTWFuYWdlcigpLmRpZFVwZGF0ZU5vdGlmaWNhdGlvbkRlY2lzaW9uKG9yaWdpbi0+dG9TdHJp
bmcoKSwgYWxsb3dlZCk7CisKICNpZiBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCiAgICAg
UmVmUHRyPFZvaWRDYWxsYmFjaz4gdm9pZENhbGxiYWNrID0gbV9pZFRvVm9pZENhbGxiYWNrTWFw
LnRha2UocmVxdWVzdElEKTsKICAgICBpZiAodm9pZENhbGxiYWNrKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKaW5kZXggMTM4YTE4
NGNiNTRlZTFhZTliMWYyYzc4Mzk5NmM3NzdkODg2ZTJlZC4uMDVhM2JhNmY4MWZkNjMxYzEzOTU4
Y2EzNzg5NGIyYWY5OTE1MDU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaApAQCAtNTUsOCArNTUsMTEgQEAgcHVibGljOgogI2Vu
ZGlmCiAgICAgdm9pZCBjYW5jZWxSZXF1ZXN0KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKik7CiAg
ICAgCi0gICAgLy8gU3luY2hyb25vdXMgY2FsbCB0byByZXRyaWV2ZSBwZXJtaXNzaW9uIGxldmVs
IGZvciBnaXZlbiBzZWN1cml0eSBvcmlnaW4KICAgICBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGll
bnQ6OlBlcm1pc3Npb24gcGVybWlzc2lvbkxldmVsKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKik7
CisKKyAgICAvLyBGb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5LgorICAgIHZvaWQgc2V0UGVybWlz
c2lvbkxldmVsRm9yVGVzdGluZyhjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgV2ViQ29yZTo6
Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uKTsKKyAgICB2b2lkIHJlbW92ZUFsbFBlcm1p
c3Npb25zRm9yVGVzdGluZygpOwogICAgIAogICAgIHZvaWQgZGlkUmVjZWl2ZU5vdGlmaWNhdGlv
blBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2Vk
KTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAppbmRleCAyZDY2N2Vm
NWUxNzJiMWQ4Y2NkODYzZTQxNzFjNmY0YjQzNGQxODk3Li4wYTY1YTJkNDhmYjQwY2EyZjY4YTVl
YWI0ODc5ZDNjN2Q2ZjgwNDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3Bw
CkBAIC0xMDUsNiArMTA1LDEzIEBAIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyOjpwb2xpY3lGb3JPcmlnaW4oV2ViQ29yZTo6CiAgICAgcmV0dXJu
IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbk5vdEFsbG93ZWQ7CiB9CiAKK3ZvaWQgV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlcjo6cmVtb3ZlQWxsUGVybWlzc2lvbnNGb3JUZXN0aW5nKCkKK3sK
KyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05T
KQorICAgIG1fcGVybWlzc2lvbnNNYXAuY2xlYXIoKTsKKyNlbmRpZgorfQorCiBib29sIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6OnNob3coTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sIFdlYlBh
Z2UqIHBhZ2UpCiB7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lf
Tk9USUZJQ0FUSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oCmluZGV4IDJhMThk
NDRlYjBhOTdmNTVlMjJlYmE3ZWFlNDQ3MzM0NWIxZGRkYTguLjY1YjNmYTRlNjEwNTg5OTliNDA5
Y2ZkNjk2ZmQyZWE1ZGZjZjQzZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaApA
QCAtNjgsNiArNjgsMTEgQEAgcHVibGljOgogICAgIC8vIExvb2tzIGluIGxvY2FsIGNhY2hlIGZv
ciBwZXJtaXNzaW9uLiBJZiBub3QgZm91bmQsIHJldHVybnMgRGVmYXVsdERlbmllZC4KICAgICBX
ZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gcG9saWN5Rm9yT3JpZ2luKFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luKikgY29uc3Q7CiAKKyAgICB2b2lkIGRpZFVwZGF0ZU5vdGlm
aWNhdGlvbkRlY2lzaW9uKGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCBib29sIGFsbG93ZWQp
OworCisgICAgLy8gRm9yIHRlc3RpbmcgcHVycG9zZXMgb25seS4KKyAgICB2b2lkIHJlbW92ZUFs
bFBlcm1pc3Npb25zRm9yVGVzdGluZygpOworCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudGVk
IGluIGdlbmVyYXRlZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAog
ICAgIHZvaWQgZGlkUmVjZWl2ZVdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOwpAQCAtNzUsNyArODAsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkU2hvd05vdGlmaWNh
dGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CiAgICAgdm9pZCBkaWRDbGlja05vdGlmaWNh
dGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CiAgICAgdm9pZCBkaWRDbG9zZU5vdGlmaWNh
dGlvbnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYgbm90aWZpY2F0aW9uSURzKTsKLSAgICB2b2lk
IGRpZFVwZGF0ZU5vdGlmaWNhdGlvbkRlY2lzaW9uKGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5n
LCBib29sIGFsbG93ZWQpOwogICAgIHZvaWQgZGlkUmVtb3ZlTm90aWZpY2F0aW9uRGVjaXNpb25z
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcmlnaW5TdHJpbmdzKTsKICAgICAKICNpZiBFTkFCTEUo
Tk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160862</attachid>
            <date>2012-08-27 17:12:01 -0700</date>
            <delta_ts>2012-08-28 10:13:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95127-20120827171153.patch</filename>
            <type>text/plain</type>
            <size>12082</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2NzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTVmZmM0NzFiZjQ4ZDEx
YTRjZDhjYWM3YzhiMDA2Mzg5NDczOWE5YS4uZmM3NGQ2NGNiOGNjMTAzOWVhMzkyOWI2YTMxNWZm
Y2IwYjczOWI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA4LTI3ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBBZGQgU1BJIGZvciBpbmpl
Y3RlZCBidW5kbGUgdG8gbWFudWFsbHkgc2V0IHBlcm1pc3Npb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTEyNworICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTIxODI2MzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBpcyB3b3JrIHRvd2FyZCBwcm92aWRpbmcgTWFjIHN1cHBvcnQgZm9yIHdl
YiBub3RpZmljYXRpb25zIGluIERSVCBhbmQgV1RSICg3Nzk2OSkuCisKKyAgICAgICAgQWRkIHN1
cHBvcnQgZnVuY3Rpb25zIHRvIFdlYktpdDIgd2hpY2ggbWFpbnRhaW4gdGhlIG1hcCBvZiBwZXJt
aXNzaW9ucyB0byBvcmlnaW5zIGZvciB3ZWIgbm90aWZpY2F0aW9ucy4KKyAgICAgICAgRm9yIFdl
YktpdDEgdGhlIG1hcCBpcyBtYW5hZ2VkIGJ5IER1bXBSZW5kZXJUcmVlLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oOiBBZGQgVGVzdFJ1bm5l
ciBTUEkuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpzZXRXZWJOb3RpZmljYXRp
b25QZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OnJlbW92ZUFs
bFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25zKToKKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmg6IEV4cG9zZSBhcyBXSyBBUEkuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHA6CisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOjpzZXRQZXJtaXNzaW9uTGV2ZWxGb3JUZXN0aW5nKTogTWFudWFs
bHkgc2V0IHRoZSBwZXJtaXNzaW9uCisgICAgICAgIGxldmVsIGZvciBhbiBvcmlnaW4uCisgICAg
ICAgIChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6cmVtb3Zl
QWxsUGVybWlzc2lvbnNGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6Tm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpkaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lv
bkRlY2lzaW9uKTogV2hlbiB0aGUgdXNlcgorICAgICAgICBtYWtlcyBhIGRlY2lzaW9uLCBjbGVh
biB1cCBhbGwgb2YgdGhlIG1hcHMgbWFpbnRhaW5lZCBieSB0aGUgcmVxdWVzdCBtYW5hZ2VyLiBN
YWtlIHN1cmUgdG8gdXBkYXRlIHRoZSB3ZWIKKyAgICAgICAgcHJvY2VzcycgcmVwcmVzZW50YXRp
b24gb2YgdGhlIHBlcm1pc3Npb25zLgorICAgICAgICAqIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaDoKKyAgICAgICAgKE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpyZW1vdmVBbGxQZXJtaXNzaW9uc0ZvclRlc3Rpbmcp
OiBDbGVhciB0aGUgcGVybWlzc2lvbiBtYXAuCisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaDogUHJvbW90ZSBkaWRVcGRhdGVOb3RpZmlj
YXRpb25EZWNpc2lvbiBtZXNzYWdlIGFzIHB1YmxpYworICAgICAgICBmdW5jdGlvbiwgc28gdGhh
dCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgY2FuIHVwZGF0ZSB0aGUgcGVy
bWlzc2lvbiBtYXAuCisKIDIwMTItMDgtMjcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdW1F0XSBXZWJBdWRpbyBzdXBwb3J0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGUuY3BwCmluZGV4IGVlMTBlOTY0ZjZiYjFkNjYzNTBkN2RmMzYxMTM2MDNk
ZjMzMWY5YWEuLmFlMjUyYTYxZDhjYjUzNGZmNGYwNGY1YjY0MjFmYjg1MWNhMjYzNjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGUuY3BwCkBAIC0yNjAsMyArMjYwLDE0IEBAIHZvaWQgV0tCdW5kbGVTZXRV
c2VyU3R5bGVTaGVldExvY2F0aW9uKFdLQnVuZGxlUmVmIGJ1bmRsZVJlZiwgV0tCdW5kbGVQYWdl
R3JvdXBSCiB7CiAgICAgdG9JbXBsKGJ1bmRsZVJlZiktPnNldFVzZXJTdHlsZVNoZWV0TG9jYXRp
b24odG9JbXBsKHBhZ2VHcm91cFJlZiksIHRvSW1wbChsb2NhdGlvbiktPnN0cmluZygpKTsKIH0K
Kwordm9pZCBXS0J1bmRsZVNldFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oV0tCdW5kbGVSZWYg
YnVuZGxlUmVmLCBXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tTdHJpbmdSZWYgb3JpZ2luU3Ry
aW5nUmVmLCBib29sIGdyYW50ZWQpCit7CisgICAgdG9JbXBsKGJ1bmRsZVJlZiktPnNldFdlYk5v
dGlmaWNhdGlvblBlcm1pc3Npb24odG9JbXBsKHBhZ2VSZWYpLCB0b0ltcGwob3JpZ2luU3RyaW5n
UmVmKS0+c3RyaW5nKCksIGdyYW50ZWQpOworfQorCit2b2lkIFdLQnVuZGxlUmVtb3ZlQWxsV2Vi
Tm90aWZpY2F0aW9uUGVybWlzc2lvbnMoV0tCdW5kbGVSZWYgYnVuZGxlUmVmLCBXS0J1bmRsZVBh
Z2VSZWYgcGFnZVJlZikKK3sKKyAgICB0b0ltcGwoYnVuZGxlUmVmKS0+cmVtb3ZlQWxsV2ViTm90
aWZpY2F0aW9uUGVybWlzc2lvbnModG9JbXBsKHBhZ2VSZWYpKTsKK30KKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBy
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQcml2YXRlLmgKaW5kZXggYjVlMTBlNTdmYWYxMGEwODI3YWJjZmRmYzAzZDc0ZGE0
ZjMyNmMzNi4uYTVkZGYwYWYwMGZlOTQ3MjBkNDg4ZjQ0NjI3MzgyOTlhYjRmZjc3NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUHJpdmF0ZS5oCkBAIC05NSw2ICs5NSw5IEBAIFdLX0VYUE9SVCB2
b2lkIFdLQnVuZGxlU3dpdGNoTmV0d29ya0xvYWRlclRvTmV3VGVzdGluZ1Nlc3Npb24oV0tCdW5k
bGVSZWYgYnVuZGxlCiAKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlU2V0UGFnZVZpc2liaWxpdHlT
dGF0ZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBpbnQgc3RhdGUs
IGJvb2wgaXNJbml0aWFsU3RhdGUpOwogCitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVNldFdlYk5v
dGlmaWNhdGlvblBlcm1pc3Npb24oV0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZVBhZ2VSZWYg
cGFnZSwgV0tTdHJpbmdSZWYgb3JpZ2luU3RyaW5nUmVmLCBib29sIGdyYW50ZWQpOworV0tfRVhQ
T1JUIHZvaWQgV0tCdW5kbGVSZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucyhXS0J1
bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZVJlZiBwYWdlKTsKKwogI2lmZGVmIF9fY3BsdXNw
bHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggMWU4MzEwNzI5YzI2NDIz
MTZjNzEwMDVjNTJiNzkwZTlhMjBkNDAxZC4uMjg0MzQxYzBiNmZkZjI3MjgxYjA2ZTRlZTk3ZWJh
MWEzOGFiMmVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRC
dW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUhvc3QuaCIKKyNp
bmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRl
ICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKICNpbmNsdWRlICJX
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oIgpAQCAtNTM0LDQgKzUzNSwyNCBAQCB2b2lkIElu
amVjdGVkQnVuZGxlOjpzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKFdlYlBhZ2VHcm91cFByb3h5
KiBwYWdlR3JvdXAsIGNvbgogICAgICAgICAoKml0ZXIpLT5zZXR0aW5ncygpLT5zZXRVc2VyU3R5
bGVTaGVldExvY2F0aW9uKEtVUkwoS1VSTCgpLCBsb2NhdGlvbikpOwogfQogCit2b2lkIEluamVj
dGVkQnVuZGxlOjpzZXRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKFdlYlBhZ2UqIHBhZ2UsIGNv
bnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCBib29sIGFsbG93ZWQpCit7CisjaWYgRU5BQkxFKE5P
VElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKKyAgICBwYWdlLT5u
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+c2V0UGVybWlzc2lvbkxldmVs
Rm9yVGVzdGluZyhvcmlnaW5TdHJpbmcsIGFsbG93ZWQgPyBOb3RpZmljYXRpb25DbGllbnQ6OlBl
cm1pc3Npb25BbGxvd2VkIDogTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uRGVuaWVkKTsK
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAgIFVOVVNFRF9QQVJBTShvcmlnaW5T
dHJpbmcpOworICAgIFVOVVNFRF9QQVJBTShhbGxvd2VkKTsKKyNlbmRpZgorfQorCit2b2lkIElu
amVjdGVkQnVuZGxlOjpyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucyhXZWJQYWdl
KiBwYWdlKQoreworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05P
VElGSUNBVElPTlMpCisgICAgcGFnZS0+bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyKCktPnJlbW92ZUFsbFBlcm1pc3Npb25zRm9yVGVzdGluZygpOworI2Vsc2UKKyAgICBVTlVT
RURfUEFSQU0ocGFnZSk7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmgKaW5kZXggODdmN2VmM2IwNGI5YTVhZDc5ZDZlNWZjYmQ5ZDIyZDFiMGQ1ODhi
YS4uNzQ2MWRiOGM0NTIwOTA3ZmM2YTAzNjczZDQ5N2RlNDU3ZDRhZWZjYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGUuaApAQCAtMTI0LDYgKzEyNCw4IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgcGFnZVNpemVB
bmRNYXJnaW5zSW5QaXhlbHMoV2ViRnJhbWUqLCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50
LCBpbnQpOwogICAgIGJvb2wgaXNQYWdlQm94VmlzaWJsZShXZWJGcmFtZSosIGludCk7CiAgICAg
dm9pZCBzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKFdlYlBhZ2VHcm91cFByb3h5KiwgY29uc3Qg
U3RyaW5nJik7CisgICAgdm9pZCBzZXRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKFdlYlBhZ2Uq
LCBjb25zdCBTdHJpbmcmLCBib29sKTsKKyAgICB2b2lkIHJlbW92ZUFsbFdlYk5vdGlmaWNhdGlv
blBlcm1pc3Npb25zKFdlYlBhZ2UqKTsKIAogICAgIC8vIFVzZXJDb250ZW50IEFQSQogICAgIHZv
aWQgYWRkVXNlclNjcmlwdChXZWJQYWdlR3JvdXBQcm94eSosIEluamVjdGVkQnVuZGxlU2NyaXB0
V29ybGQqLCBjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU3RyaW5nJiB1cmwsIEltbXV0YWJs
ZUFycmF5KiB3aGl0ZWxpc3QsIEltbXV0YWJsZUFycmF5KiBibGFja2xpc3QsIFdlYkNvcmU6OlVz
ZXJTY3JpcHRJbmplY3Rpb25UaW1lLCBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5jcHAKaW5kZXggNmQ4OWZjMGM5NTI2YjJlNGNiZWI0YzE4MGY1ZWNlYzY3NjZmMTM4Ny4u
MjJlNTBiOWI0MzM1ZDdlZWZiY2NhMzI2MjI2NzlmYmNlOWE1ZWVjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTEy
OCwxMiArMTI4LDM0IEBAIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnBlcm1pc3Npb25MCiAjZW5kaWYKIH0KIAordm9p
ZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnNldFBlcm1pc3Npb25MZXZl
bEZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIFdlYkNvcmU6Ok5vdGlmaWNh
dGlvbkNsaWVudDo6UGVybWlzc2lvbiBwZXJtaXNzaW9uKQoreworI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCisgICAgV2ViUHJvY2Vzczo6
c2hhcmVkKCkubm90aWZpY2F0aW9uTWFuYWdlcigpLmRpZFVwZGF0ZU5vdGlmaWNhdGlvbkRlY2lz
aW9uKG9yaWdpblN0cmluZywgcGVybWlzc2lvbik7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShv
cmlnaW5TdHJpbmcpOworICAgIFVOVVNFRF9QQVJBTShwZXJtaXNzaW9uKTsKKyNlbmRpZgorfQor
Cit2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6cmVtb3ZlQWxsUGVy
bWlzc2lvbnNGb3JUZXN0aW5nKCkKK3sKKyNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5B
QkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQorICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLm5vdGlm
aWNhdGlvbk1hbmFnZXIoKS5yZW1vdmVBbGxQZXJtaXNzaW9uc0ZvclRlc3RpbmcoKTsKKyNlbmRp
ZgorfQorCiB2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6ZGlkUmVj
ZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIGJv
b2wgYWxsb3dlZCkKIHsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FD
WV9OT1RJRklDQVRJT05TKQogICAgIGlmICghaXNSZXF1ZXN0SURWYWxpZChyZXF1ZXN0SUQpKQog
ICAgICAgICByZXR1cm47CiAKKyAgICBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG9y
aWdpbiA9IG1faWRUb09yaWdpbk1hcC50YWtlKHJlcXVlc3RJRCk7CisgICAgbV9vcmlnaW5Ub0lE
TWFwLnJlbW92ZShvcmlnaW4pOworCisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkubm90aWZpY2F0
aW9uTWFuYWdlcigpLmRpZFVwZGF0ZU5vdGlmaWNhdGlvbkRlY2lzaW9uKG9yaWdpbi0+dG9TdHJp
bmcoKSwgYWxsb3dlZCk7CisKICNpZiBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCiAgICAg
UmVmUHRyPFZvaWRDYWxsYmFjaz4gdm9pZENhbGxiYWNrID0gbV9pZFRvVm9pZENhbGxiYWNrTWFw
LnRha2UocmVxdWVzdElEKTsKICAgICBpZiAodm9pZENhbGxiYWNrKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKaW5kZXggMTM4YTE4
NGNiNTRlZTFhZTliMWYyYzc4Mzk5NmM3NzdkODg2ZTJlZC4uZDk5MTJiMWE3ZDhjZDk3MGNjZWEx
OThkZjVjNGZmMDY5Zjc2Yjk3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIE5vdGlmaWNhdGlvbjsgICAgCkBAIC01NSw4ICs1NiwxMSBAQCBwdWJs
aWM6CiAjZW5kaWYKICAgICB2b2lkIGNhbmNlbFJlcXVlc3QoV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4qKTsKICAgICAKLSAgICAvLyBTeW5jaHJvbm91cyBjYWxsIHRvIHJldHJpZXZlIHBlcm1pc3Np
b24gbGV2ZWwgZm9yIGdpdmVuIHNlY3VyaXR5IG9yaWdpbgogICAgIFdlYkNvcmU6Ok5vdGlmaWNh
dGlvbkNsaWVudDo6UGVybWlzc2lvbiBwZXJtaXNzaW9uTGV2ZWwoV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4qKTsKKworICAgIC8vIEZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHkuCisgICAgdm9pZCBz
ZXRQZXJtaXNzaW9uTGV2ZWxGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCBX
ZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24pOworICAgIHZvaWQgcmVtb3Zl
QWxsUGVybWlzc2lvbnNGb3JUZXN0aW5nKCk7CiAgICAgCiAgICAgdm9pZCBkaWRSZWNlaXZlTm90
aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29s
IGFsbG93ZWQpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4
IDJkNjY3ZWY1ZTE3MmIxZDhjY2Q4NjNlNDE3MWM2ZjRiNDM0ZDE4OTcuLjBhNjVhMmQ0OGZiNDBj
YTJmNjhhNWVhYjQ4NzlkM2M3ZDZmODA0MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFu
YWdlci5jcHAKQEAgLTEwNSw2ICsxMDUsMTMgQEAgTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNz
aW9uIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnBvbGljeUZvck9yaWdpbihXZWJDb3JlOjoKICAg
ICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uTm90QWxsb3dlZDsKIH0KIAor
dm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpyZW1vdmVBbGxQZXJtaXNzaW9uc0ZvclRlc3Rp
bmcoKQoreworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElG
SUNBVElPTlMpCisgICAgbV9wZXJtaXNzaW9uc01hcC5jbGVhcigpOworI2VuZGlmCit9CisKIGJv
b2wgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2hvdyhOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlv
biwgV2ViUGFnZSogcGFnZSkKIHsKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxF
KExFR0FDWV9OT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgKaW5k
ZXggMmExOGQ0NGViMGE5N2Y1NWUyMmViYTdlYWU0NDczMzQ1YjFkZGRhOC4uNjViM2ZhNGU2MTA1
ODk5OWI0MDljZmQ2OTZmZDJlYTVkZmNmNDNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFu
YWdlci5oCkBAIC02OCw2ICs2OCwxMSBAQCBwdWJsaWM6CiAgICAgLy8gTG9va3MgaW4gbG9jYWwg
Y2FjaGUgZm9yIHBlcm1pc3Npb24uIElmIG5vdCBmb3VuZCwgcmV0dXJucyBEZWZhdWx0RGVuaWVk
LgogICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBwb2xpY3lGb3JP
cmlnaW4oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qKSBjb25zdDsKIAorICAgIHZvaWQgZGlkVXBk
YXRlTm90aWZpY2F0aW9uRGVjaXNpb24oY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIGJvb2wg
YWxsb3dlZCk7CisKKyAgICAvLyBGb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5LgorICAgIHZvaWQg
cmVtb3ZlQWxsUGVybWlzc2lvbnNGb3JUZXN0aW5nKCk7CisKIHByaXZhdGU6CiAgICAgLy8gSW1w
bGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwCiAgICAgdm9pZCBkaWRSZWNlaXZlV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7CkBAIC03NSw3ICs4MCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRTaG93
Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKICAgICB2b2lkIGRpZENsaWNr
Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKICAgICB2b2lkIGRpZENsb3Nl
Tm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBub3RpZmljYXRpb25JRHMpOwot
ICAgIHZvaWQgZGlkVXBkYXRlTm90aWZpY2F0aW9uRGVjaXNpb24oY29uc3QgU3RyaW5nJiBvcmln
aW5TdHJpbmcsIGJvb2wgYWxsb3dlZCk7CiAgICAgdm9pZCBkaWRSZW1vdmVOb3RpZmljYXRpb25E
ZWNpc2lvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9yaWdpblN0cmluZ3MpOwogICAgIAogI2lm
IEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCg==
</data>
<flag name="review"
          id="171510"
          type_id="1"
          status="+"
          setter="jberlin"
    />
          </attachment>
      

    </bug>

</bugzilla>