<?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>143852</bug_id>
          
          <creation_ts>2015-04-16 15:43:16 -0700</creation_ts>
          <short_desc>Removed unused WKUserContentFilterRef</short_desc>
          <delta_ts>2015-04-16 16:43:00 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1086104</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-04-16 15:43:16 -0700</bug_when>
    <thetext>WKUserContentFilterRef, LegacyContentExtensionCompilationClient, and WebCompiledContentExtension::createFromCompiledContentExtensionData shouldn&apos;t be used any more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086106</commentid>
    <comment_count>1</comment_count>
      <attachid>250958</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-04-16 15:45:29 -0700</bug_when>
    <thetext>Created attachment 250958
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086115</commentid>
    <comment_count>2</comment_count>
      <attachid>250961</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-04-16 15:51:23 -0700</bug_when>
    <thetext>Created attachment 250961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086167</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-04-16 16:43:00 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/182922</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250958</attachid>
            <date>2015-04-16 15:45:29 -0700</date>
            <delta_ts>2015-04-16 15:51:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143852-20150416154431.patch</filename>
            <type>text/plain</type>
            <size>20581</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MjkxMykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE1LTA0LTE2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlZCB1
bnVzZWQgV0tVc2VyQ29udGVudEZpbHRlclJlZi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mzg1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudEV4dGVuc2lv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxlZ2FjeUNvbnRlbnRFeHRlbnNpb25Db21waWxhdGlv
bkNsaWVudDo6TGVnYWN5Q29udGVudEV4dGVuc2lvbkNvbXBpbGF0aW9uQ2xpZW50KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6TGVnYWN5Q29udGVudEV4dGVuc2lvbkNvbXBpbGF0aW9uQ2xp
ZW50Ojp3cml0ZUJ5dGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TGVnYWN5Q29u
dGVudEV4dGVuc2lvbkNvbXBpbGF0aW9uQ2xpZW50Ojp3cml0ZUFjdGlvbnMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb246OmNyZWF0ZUZyb21D
b21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQv
V2ViQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLVXNlckNvbnRlbnRGaWx0ZXJSZWYuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9XS1VzZXJDb250ZW50RmlsdGVyUmVmLmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLVXNlckNvbnRlbnRGaWx0ZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S1VzZXJDb250ZW50RmlsdGVyLm1tOgorICAgICAgICAoLVtfV0tVc2VyQ29udGVudEZpbHRlciBp
bml0V2l0aE5hbWU6c2VyaWFsaXplZFJ1bGVzOl0pOiBEZWxldGVkLgorICAgICAgICAqIFdlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxNS0wNC0xNiAgQmV0aCBEYWtpbiAg
PGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRm9yY2UgbW91c2UgZXZlbnRzIHNob3VsZCBn
byB0aHJvdWdoIG5vcm1hbCBtb3VzZSBldmVudCBoYW5kbGluZyBjb2RlIHBhdGhzCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50RXh0ZW5z
aW9uLmNwcAkocmV2aXNpb24gMTgyODU3KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
bXBpbGVkQ29udGVudEV4dGVuc2lvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDM0ICszMCw2
IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1MZWdhY3lDb250ZW50RXh0ZW5zaW9uQ29tcGls
YXRpb25DbGllbnQ6OkxlZ2FjeUNvbnRlbnRFeHRlbnNpb25Db21waWxhdGlvbkNsaWVudChXZWJD
b3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Q29tcGlsZWRDb250ZW50RXh0ZW5zaW9uRGF0YSYgZGF0
YSkKLSAgICA6IG1fZGF0YShkYXRhKQotewotfQotCi12b2lkIExlZ2FjeUNvbnRlbnRFeHRlbnNp
b25Db21waWxhdGlvbkNsaWVudDo6d3JpdGVCeXRlY29kZShWZWN0b3I8V2ViQ29yZTo6Q29udGVu
dEV4dGVuc2lvbnM6OkRGQUJ5dGVjb2RlPiYmIGJ5dGVjb2RlKQotewotICAgIG1fZGF0YS5ieXRl
Y29kZSA9IFdURjo6bW92ZShieXRlY29kZSk7Ci19Ci0KLXZvaWQgTGVnYWN5Q29udGVudEV4dGVu
c2lvbkNvbXBpbGF0aW9uQ2xpZW50Ojp3cml0ZUFjdGlvbnMoVmVjdG9yPFdlYkNvcmU6OkNvbnRl
bnRFeHRlbnNpb25zOjpTZXJpYWxpemVkQWN0aW9uQnl0ZT4mJiBhY3Rpb25zKQotewotICAgIG1f
ZGF0YS5hY3Rpb25zID0gV1RGOjptb3ZlKGFjdGlvbnMpOwotfQotCi0KLVJlZjxXZWJDb21waWxl
ZENvbnRlbnRFeHRlbnNpb24+IFdlYkNvbXBpbGVkQ29udGVudEV4dGVuc2lvbjo6Y3JlYXRlRnJv
bUNvbXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEoY29uc3QgV2ViQ29yZTo6Q29udGVudEV4dGVu
c2lvbnM6OkNvbXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEmIGNvbXBpbGVyRGF0YSkKLXsKLSAg
ICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBzaGFyZWRNZW1vcnkgPSBTaGFyZWRNZW1vcnk6OmFsbG9j
YXRlKGNvbXBpbGVyRGF0YS5ieXRlY29kZS5zaXplKCkgKyBjb21waWxlckRhdGEuYWN0aW9ucy5z
aXplKCkpOwotICAgIG1lbWNweShzdGF0aWNfY2FzdDxjaGFyKj4oc2hhcmVkTWVtb3J5LT5kYXRh
KCkpLCBjb21waWxlckRhdGEuYWN0aW9ucy5kYXRhKCksIGNvbXBpbGVyRGF0YS5hY3Rpb25zLnNp
emUoKSk7Ci0gICAgbWVtY3B5KHN0YXRpY19jYXN0PGNoYXIqPihzaGFyZWRNZW1vcnktPmRhdGEo
KSkgKyBjb21waWxlckRhdGEuYWN0aW9ucy5zaXplKCksIGNvbXBpbGVyRGF0YS5ieXRlY29kZS5k
YXRhKCksIGNvbXBpbGVyRGF0YS5ieXRlY29kZS5zaXplKCkpOwotCi0gICAgTmV0d29ya0NhY2hl
OjpEYXRhIGZpbGVEYXRhOyAvLyBXZSBkb24ndCBoYXZlIGFuIG1tYXAnZCBmaWxlIHRvIGtlZXAg
YWxpdmUgaGVyZSwgc28ganVzdCB1c2UgYW4gZW1wdHkgRGF0YSBvYmplY3QuCi0gICAgV2ViQ29t
cGlsZWRDb250ZW50RXh0ZW5zaW9uRGF0YSBkYXRhKFdURjo6bW92ZShzaGFyZWRNZW1vcnkpLCBm
aWxlRGF0YSwgMCwgY29tcGlsZXJEYXRhLmFjdGlvbnMuc2l6ZSgpLCBjb21waWxlckRhdGEuYWN0
aW9ucy5zaXplKCksIGNvbXBpbGVyRGF0YS5ieXRlY29kZS5zaXplKCkpOwotCi0gICAgcmV0dXJu
IGNyZWF0ZShXVEY6Om1vdmUoZGF0YSkpOwotfQotCiBSZWY8V2ViQ29tcGlsZWRDb250ZW50RXh0
ZW5zaW9uPiBXZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb246OmNyZWF0ZShXZWJDb21waWxlZENv
bnRlbnRFeHRlbnNpb25EYXRhJiYgZGF0YSkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBX
ZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb24oV1RGOjptb3ZlKGRhdGEpKSk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5o
CShyZXZpc2lvbiAxODI4NTcpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29tcGlsZWRD
b250ZW50RXh0ZW5zaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDI0ICszNCw4IEBACiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCi0vLyBGSVhNRTogUmVtb3ZlIHRoaXMgb25jZSBldmVyeW9uZSBp
cyBjb252ZXJ0ZWQgdG8gdXNpbmcgdGhlIFVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUuCi1jbGFz
cyBMZWdhY3lDb250ZW50RXh0ZW5zaW9uQ29tcGlsYXRpb25DbGllbnQgZmluYWwgOiBwdWJsaWMg
V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25Db21waWxhdGlvbkNs
aWVudCB7Ci1wdWJsaWM6Ci0gICAgTGVnYWN5Q29udGVudEV4dGVuc2lvbkNvbXBpbGF0aW9uQ2xp
ZW50KFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpDb21waWxlZENvbnRlbnRFeHRlbnNpb25E
YXRhJik7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgd3JpdGVCeXRlY29kZShWZWN0b3I8V2ViQ29yZTo6
Q29udGVudEV4dGVuc2lvbnM6OkRGQUJ5dGVjb2RlPiYmKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFs
IHZvaWQgd3JpdGVBY3Rpb25zKFZlY3RvcjxXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6U2Vy
aWFsaXplZEFjdGlvbkJ5dGU+JiYpIG92ZXJyaWRlOwotCi1wcml2YXRlOgotICAgIFdlYkNvcmU6
OkNvbnRlbnRFeHRlbnNpb25zOjpDb21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhJiBtX2RhdGE7
Ci19OwotCi0KIGNsYXNzIFdlYkNvbXBpbGVkQ29udGVudEV4dGVuc2lvbiBmaW5hbCA6IHB1Ymxp
YyBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Q29tcGlsZWRDb250ZW50RXh0ZW5zaW9uIHsK
IHB1YmxpYzoKLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgb25jZSBldmVyeW9uZSBpcyBjb252
ZXJ0ZWQgdG8gdXNpbmcgdGhlIFVzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUuCi0gICAgc3RhdGlj
IFJlZjxXZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb24+IGNyZWF0ZUZyb21Db21waWxlZENvbnRl
bnRFeHRlbnNpb25EYXRhKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpDb21waWxl
ZENvbnRlbnRFeHRlbnNpb25EYXRhJik7Ci0KICAgICBzdGF0aWMgUmVmPFdlYkNvbXBpbGVkQ29u
dGVudEV4dGVuc2lvbj4gY3JlYXRlKFdlYkNvbXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEmJik7
CiAgICAgdmlydHVhbCB+V2ViQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uKCk7CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJDb250ZW50RmlsdGVyUmVmLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyQ29udGVu
dEZpbHRlclJlZi5jcHAJKHJldmlzaW9uIDE4Mjg1NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1VzZXJDb250ZW50RmlsdGVyUmVmLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw2MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IldLVXNlckNvbnRlbnRGaWx0ZXJSZWYuaCIKLQotI2luY2x1ZGUgIkFQSVVzZXJDb250ZW50RXh0
ZW5zaW9uLmgiCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV2ViQ29tcGlsZWRD
b250ZW50RXh0ZW5zaW9uLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9Db250ZW50RXh0ZW5zaW9uQ29t
cGlsZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25FcnJvci5oPgotCi11
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwotCi1XS1R5cGVJRCBXS1VzZXJDb250ZW50RmlsdGVyR2V0
VHlwZUlEKCkKLXsKLSAgICByZXR1cm4gdG9BUEkoQVBJOjpVc2VyQ29udGVudEV4dGVuc2lvbjo6
QVBJVHlwZSk7Ci19Ci0KLVdLVXNlckNvbnRlbnRGaWx0ZXJSZWYgV0tVc2VyQ29udGVudEZpbHRl
ckNyZWF0ZShXS1N0cmluZ1JlZiBuYW1lUmVmLCBXS1N0cmluZ1JlZiBzZXJpYWxpemVkUnVsZXNS
ZWYpCi17Ci0jaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKLSAgICBXZWJDb3JlOjpDb250
ZW50RXh0ZW5zaW9uczo6Q29tcGlsZWRDb250ZW50RXh0ZW5zaW9uRGF0YSBkYXRhOwotICAgIExl
Z2FjeUNvbnRlbnRFeHRlbnNpb25Db21waWxhdGlvbkNsaWVudCBjbGllbnQoZGF0YSk7Ci0KLSAg
ICBhdXRvIGNvbXBpbGVyRXJyb3IgPSBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Y29tcGls
ZVJ1bGVMaXN0KGNsaWVudCwgdG9XVEZTdHJpbmcoc2VyaWFsaXplZFJ1bGVzUmVmKSk7Ci0gICAg
aWYgKGNvbXBpbGVyRXJyb3IpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgYXV0byBj
b21waWxlZENvbnRlbnRFeHRlbnNpb24gPSBXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudEV4dGVu
c2lvbjo6Y3JlYXRlRnJvbUNvbXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEoZGF0YSk7Ci0KLSAg
ICByZXR1cm4gdG9BUEkoJkFQSTo6VXNlckNvbnRlbnRFeHRlbnNpb246OmNyZWF0ZSh0b1dURlN0
cmluZyhuYW1lUmVmKSwgV1RGOjptb3ZlKGNvbXBpbGVkQ29udGVudEV4dGVuc2lvbikpLmxlYWtS
ZWYoKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShuYW1lUmVmKTsKLSAgICBVTlVTRURfUEFS
QU0oc2VyaWFsaXplZFJ1bGVzUmVmKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLSNlbmRpZgotfQpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlckNvbnRlbnRGaWx0ZXJS
ZWYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVc2Vy
Q29udGVudEZpbHRlclJlZi5oCShyZXZpc2lvbiAxODI4NTcpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tVc2VyQ29udGVudEZpbHRlclJlZi5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdLVXNlckNvbnRlbnRGaWx0ZXJS
ZWZfaAotI2RlZmluZSBXS1VzZXJDb250ZW50RmlsdGVyUmVmX2gKLQotI2luY2x1ZGUgPFdlYktp
dC9XS0Jhc2UuaD4KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgot
Ci1XS19FWFBPUlQgV0tUeXBlSUQgV0tVc2VyQ29udGVudEZpbHRlckdldFR5cGVJRCgpOwotCi1X
S19FWFBPUlQgV0tVc2VyQ29udGVudEZpbHRlclJlZiBXS1VzZXJDb250ZW50RmlsdGVyQ3JlYXRl
KFdLU3RyaW5nUmVmIG5hbWUsIFdLU3RyaW5nUmVmIHNlcmlhbGl6ZWRSdWxlcyk7Ci0KLSNpZmRl
ZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLSNlbmRpZiAvKiBXS1VzZXJDb250ZW50RmlsdGVy
UmVmX2ggKi8KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0Mu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Ml9D
LmgJKHJldmlzaW9uIDE4Mjg1NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
ZWJLaXQyX0MuaAkod29ya2luZyBjb3B5KQpAQCAtNTksNyArNTksNiBAQAogI2luY2x1ZGUgPFdl
YktpdC9XS1VSTFJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tVUkxSZXNwb25zZS5oPgog
I2luY2x1ZGUgPFdlYktpdC9XS1VzZXJDb250ZW50Q29udHJvbGxlclJlZi5oPgotI2luY2x1ZGUg
PFdlYktpdC9XS1VzZXJDb250ZW50RmlsdGVyUmVmLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tVc2VyU2NyaXB0
UmVmLmg+CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNl
ckNvbnRlbnRGaWx0ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1VzZXJDb250ZW50RmlsdGVyLmgJKHJldmlzaW9uIDE4Mjg1NykKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRGaWx0ZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMzAsOCArMzAsNiBAQAogV0tfQ0xBU1NfQVZBSUxBQkxFKFdLX01B
Q19UQkEsIFdLX0lPU19UQkEpCiBAaW50ZXJmYWNlIF9XS1VzZXJDb250ZW50RmlsdGVyIDogTlNP
YmplY3QKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTmFtZTooTlNTdHJpbmcgKiluYW1lIHNl
cmlhbGl6ZWRSdWxlczooTlNTdHJpbmcgKilzZXJpYWxpemVkUnVsZXM7Ci0KIEBlbmQKIAogI2Vu
ZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1VzZXJDb250ZW50RmlsdGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRGaWx0ZXIubW0JKHJldmlzaW9u
IDE4Mjg1NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNv
bnRlbnRGaWx0ZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTM1LDIzICszNSw2IEBACiAKIEBpbXBs
ZW1lbnRhdGlvbiBfV0tVc2VyQ29udGVudEZpbHRlcgogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhOYW1lOihOU1N0cmluZyAqKW5hbWUgc2VyaWFsaXplZFJ1bGVzOihOU1N0cmluZyAqKXNlcmlh
bGl6ZWRSdWxlcwotewotICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQotICAgICAgICBy
ZXR1cm4gbmlsOwotCi0gICAgV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkNvbXBpbGVkQ29u
dGVudEV4dGVuc2lvbkRhdGEgZGF0YTsKLSAgICBXZWJLaXQ6OkxlZ2FjeUNvbnRlbnRFeHRlbnNp
b25Db21waWxhdGlvbkNsaWVudCBjbGllbnQoZGF0YSk7Ci0KLSAgICBpZiAoYXV0byBjb21waWxl
ckVycm9yID0gV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OmNvbXBpbGVSdWxlTGlzdChjbGll
bnQsIFN0cmluZyhzZXJpYWxpemVkUnVsZXMpKSkKLSAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNl
Ok5TR2VuZXJpY0V4Y2VwdGlvbiBmb3JtYXQ6QCJGYWlsZWQgdG8gY29tcGlsZSBydWxlcyB3aXRo
IGVycm9yOiAlcyIsIGNvbXBpbGVyRXJyb3IubWVzc2FnZSgpLmNfc3RyKCldOwotCi0gICAgYXV0
byBjb21waWxlZENvbnRlbnRFeHRlbnNpb24gPSBXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudEV4
dGVuc2lvbjo6Y3JlYXRlRnJvbUNvbXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEoZGF0YSk7Ci0g
ICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OlVzZXJDb250ZW50RXh0ZW5z
aW9uPihzZWxmLCBTdHJpbmcobmFtZSksIFdURjo6bW92ZShjb21waWxlZENvbnRlbnRFeHRlbnNp
b24pKTsKLQotICAgIHJldHVybiBzZWxmOwotfQotCiAtICh2b2lkKWRlYWxsb2MKIHsKICAgICBf
dXNlckNvbnRlbnRFeHRlbnNpb24tPn5Vc2VyQ29udGVudEV4dGVuc2lvbigpOwpJbmRleDogU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMTgyODU3KQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQwLDggKzExNDAsNiBAQAogCQk3Qzg5RDJC
OTFBNkIwRjJDMDAzQTVGREUgLyogX1dLVXNlckNvbnRlbnRGaWx0ZXIubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzg5RDJCNzFBNkIwRjJDMDAzQTVG
REUgLyogX1dLVXNlckNvbnRlbnRGaWx0ZXIubW0gKi87IH07CiAJCTdDODlEMkJBMUE2QjBGMkMw
MDNBNUZERSAvKiBfV0tVc2VyQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4OUQyQjgxQTZCMEYyQzAwM0E1RkRFIC8qIF9XS1Vz
ZXJDb250ZW50RmlsdGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJN0M4OUQyQkMxQTZCMEY1QjAwM0E1RkRFIC8qIF9XS1VzZXJDb250ZW50Rmls
dGVySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdDODlEMkJCMUE2QjBGNUIwMDNBNUZERSAvKiBfV0tVc2VyQ29udGVudEZpbHRlckludGVy
bmFsLmggKi87IH07Ci0JCTdDODlEMkJGMUE2QjExRUYwMDNBNUZERSAvKiBXS1VzZXJDb250ZW50
RmlsdGVyUmVmLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdDODlEMkJEMUE2QjExRUYwMDNBNUZERSAvKiBXS1VzZXJDb250ZW50RmlsdGVyUmVmLmNw
cCAqLzsgfTsKLQkJN0M4OUQyQzAxQTZCMTFFRjAwM0E1RkRFIC8qIFdLVXNlckNvbnRlbnRGaWx0
ZXJSZWYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdD
ODlEMkJFMUE2QjExRUYwMDNBNUZERSAvKiBXS1VzZXJDb250ZW50RmlsdGVyUmVmLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0M4OUQyRDcxQTZD
NkJFNjAwM0E1RkRFIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbkludGVybmFsLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzg5RDJENjFBNkM2
QkU2MDAzQTVGREUgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uSW50ZXJuYWwuaCAqLzsg
fTsKIAkJN0M4RUIxMTcxOERCNkExOTAwNzkxN0MyIC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzhFQjExNjE4
REI2QTE5MDA3OTE3QzIgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzlEMTUzNzE4NDU4NERBMDA5RDM5
MTggLyogV0tCcm93c2luZ0NvbnRleHRHcm91cEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzlEMTUzNjE4NDU4NERBMDA5RDM5MTggLyog
V0tCcm93c2luZ0NvbnRleHRHcm91cEludGVybmFsLmggKi87IH07CkBAIC0zMzYyLDggKzMzNjAs
NiBAQAogCQk3Qzg5RDJCNzFBNkIwRjJDMDAzQTVGREUgLyogX1dLVXNlckNvbnRlbnRGaWx0ZXIu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tVc2VyQ29udGVu
dEZpbHRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M4OUQyQjgxQTZCMEYy
QzAwM0E1RkRFIC8qIF9XS1VzZXJDb250ZW50RmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IF9XS1VzZXJDb250ZW50RmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdDODlEMkJCMUE2QjBGNUIwMDNBNUZERSAvKiBfV0tVc2VyQ29udGVudEZpbHRl
ckludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1VzZXJDb250
ZW50RmlsdGVySW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0M4OUQy
QkQxQTZCMTFFRjAwM0E1RkRFIC8qIFdLVXNlckNvbnRlbnRGaWx0ZXJSZWYuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tVc2VyQ29udGVudEZpbHRlclJlZi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTdDODlEMkJFMUE2QjExRUYwMDNBNUZERSAv
KiBXS1VzZXJDb250ZW50RmlsdGVyUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLVXNlckNvbnRlbnRGaWx0ZXJSZWYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJN0M4OUQyRDYxQTZDNkJFNjAwM0E1RkRFIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlv
bkludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbkludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdDOEVCMTE2MThEQjZBMTkwMDc5MTdDMiAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzlEMTUzNjE4NDU4NERBMDA5RDM5MTggLyogV0tC
cm93c2luZ0NvbnRleHRHcm91cEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLQnJvd3NpbmdDb250ZXh0R3JvdXBJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNjQ2NCw4ICs2NDYwLDYgQEAKIAkJCQk3Qzg5RDI5RTFBNjc4NTU0MDAz
QTVGREUgLyogV0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWYuaCAqLywKIAkJCQk3QzI0MTMwNjFB
QUNGQ0I0MDBBNThDMTUgLyogV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlUmVmLmNwcCAqLywK
IAkJCQk3QzI0MTMwNzFBQUNGQ0I0MDBBNThDMTUgLyogV0tVc2VyQ29udGVudEV4dGVuc2lvblN0
b3JlUmVmLmggKi8sCi0JCQkJN0M4OUQyQkQxQTZCMTFFRjAwM0E1RkRFIC8qIFdLVXNlckNvbnRl
bnRGaWx0ZXJSZWYuY3BwICovLAotCQkJCTdDODlEMkJFMUE2QjExRUYwMDNBNUZERSAvKiBXS1Vz
ZXJDb250ZW50RmlsdGVyUmVmLmggKi8sCiAJCQkJN0M4OUQyQTExQTY3ODg3NTAwM0E1RkRFIC8q
IFdLVXNlclNjcmlwdFJlZi5jcHAgKi8sCiAJCQkJN0M4OUQyQTIxQTY3ODg3NTAwM0E1RkRFIC8q
IFdLVXNlclNjcmlwdFJlZi5oICovLAogCQkJCTFBNTcxMDlDMUFCQTAwMjcwMDJGQUJCRSAvKiBX
S1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwICovLApAQCAtNzcyNCw3ICs3NzE4LDYgQEAKIAkJCQlC
Qzg0NTJBODExNjJDODA5MDBDQUI5QjUgLyogRHJhd2luZ0FyZWEuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdDODlEMkQ3MUE2QzZCRTYwMDNBNUZERSAvKiBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCNjU5MjMxMjA4QjREQjAwNDQ4MTZD
IC8qIERyYXdpbmdBcmVhSW5mby5oIGluIEhlYWRlcnMgKi8sCi0JCQkJN0M4OUQyQzAxQTZCMTFF
RjAwM0E1RkRFIC8qIFdLVXNlckNvbnRlbnRGaWx0ZXJSZWYuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBNjQyMjlBMTJERDAyOTIwMENBQUUyQyAvKiBEcmF3aW5nQXJlYU1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzI2NTIxNzExODI2MDgxMDAyNDNFMTIgLyogRHJhd2luZ0FyZWFQcm94
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2NDIzMDkxMkREMDlFQjAwQ0FBRTJDIC8qIERyYXdp
bmdBcmVhUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDA0NSw3ICsxMDAzOCw2
IEBACiAJCQkJQkMwMTdEMjAxNjI2MzMwODAwNzA1NEY1IC8qIFdLRE9NVGV4dEl0ZXJhdG9yLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUFCN0Q3OEUxMjg4Q0Q5QTAwQ0ZEMDhDIC8qIFdLRG93bmxv
YWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFGNDU5MkUxOTQ2NEIyMDAwRjlENEEyIC8qIFdL
RXJyb3IubW0gaW4gU291cmNlcyAqLywKLQkJCQk3Qzg5RDJCRjFBNkIxMUVGMDAzQTVGREUgLyog
V0tVc2VyQ29udGVudEZpbHRlclJlZi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0ZENTQ4QjEz
MkQ4MjY4MDA1NUQ4MTYgLyogV0tFcnJvckNGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3
NUZCMTI0RkYwMjcwMDY4RjIwQSAvKiBXS0Vycm9yUmVmLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdDODlEMkEzMUE2Nzg4NzUwMDNBNUZERSAvKiBXS1VzZXJTY3JpcHRSZWYuY3BwIGluIFNvdXJj
ZXMgKi8sCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAxODI5MTMpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNSBAQAorMjAxNS0wNC0xNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZWQgdW51c2VkIFdLVXNlckNvbnRlbnRG
aWx0ZXJSZWYuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDM4NTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL19XS1VzZXJDb250ZW50RXh0ZW5z
aW9uU3RvcmUubW06CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9tYWMvVGVzdENvbnRyb2xs
ZXJNYWMubW06CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0UHJl
ZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6cGxhdGZvcm1Db25maWd1cmVWaWV3Rm9yVGVzdCk6CisKIDIwMTUtMDQtMTYgIEJldGggRGFr
aW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZvcmNlIG1vdXNlIGV2ZW50cyBzaG91
bGQgZ28gdGhyb3VnaCBub3JtYWwgbW91c2UgZXZlbnQgaGFuZGxpbmcgY29kZSBwYXRocwpJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvX1dLVXNlckNvbnRlbnRF
eHRlbnNpb25TdG9yZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLm1tCShyZXZpc2lvbiAx
ODI4NTcpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9fV0tVc2Vy
Q29udGVudEV4dGVuc2lvblN0b3JlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw2IEBA
CiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2ltcG9ydCAiVGVzdC5oIgogI2ltcG9y
dCA8V2ViS2l0L19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVQcml2YXRlLmg+Ci0jaW1wb3J0
IDxXZWJLaXQvX1dLVXNlckNvbnRlbnRGaWx0ZXIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KIAogY2xhc3MgX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVRlc3QgOiBwdWJsaWMgdGVz
dGluZzo6VGVzdCB7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJv
bGxlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0
Q29udHJvbGxlck1hYy5tbQkocmV2aXNpb24gMTgyODU3KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9tYWMvVGVzdENvbnRyb2xsZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTMxLDkgKzMx
LDExIEBACiAjaW1wb3J0ICJQb3NlQXNDbGFzcy5oIgogI2ltcG9ydCAiVGVzdEludm9jYXRpb24u
aCIKICNpbXBvcnQgIldlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLmgiCisjaW1wb3J0IDxXZWJL
aXQvV0tQYWdlR3JvdXAuaD4KICNpbXBvcnQgPFdlYktpdC9XS1N0cmluZ0NGLmg+CiAjaW1wb3J0
IDxXZWJLaXQvV0tVUkxDRi5oPgotI2ltcG9ydCA8V2ViS2l0L1dLVXNlckNvbnRlbnRGaWx0ZXJS
ZWYuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLmg+Cisj
aW1wb3J0IDxXZWJLaXQvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVByaXZhdGUuaD4KICNp
bXBvcnQgPG1hY2gtby9keWxkLmg+CiAKIEBpbnRlcmZhY2UgTlNTb3VuZCAoRGV0YWlscykKQEAg
LTgyLDYgKzg0LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkVXNlVGhyZWFkZWRTY3JvbGxpbmcoYwog
CiB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3Rl
bnRWYWx1ZXMoKQogeworICAgIFtbX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSBkZWZhdWx0
U3RvcmVdIF9yZW1vdmVBbGxDb250ZW50RXh0ZW5zaW9uc107CiB9CiAKIHZvaWQgVGVzdENvbnRy
b2xsZXI6OnBsYXRmb3JtQ29uZmlndXJlVmlld0ZvclRlc3QoY29uc3QgVGVzdEludm9jYXRpb24m
IHRlc3QpCkBAIC0xMDcsMTIgKzExMCwxNSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9y
bUNvbmZpZ3VyZVZpCiAgICAgTlNTdHJpbmcgKmNvbnRlbnRFeHRlbnNpb25TdHJpbmcgPSBbTlNT
dHJpbmcgc3RyaW5nV2l0aENvbnRlbnRzT2ZVUkw6ZmlsdGVyVVJMIHVzZWRFbmNvZGluZzomZW5j
b2RpbmcgZXJyb3I6TlVMTF07CiAgICAgaWYgKCFjb250ZW50RXh0ZW5zaW9uU3RyaW5nKQogICAg
ICAgICByZXR1cm47Ci0KLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbmFtZSA9IGFkb3B0
V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRlc3RDb250ZW50RXh0ZW5zaW9ucyIp
KTsKLSAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gY29udGVudEV4dGVuc2lvblN0cmluZ1dL
ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZygoQ0ZTdHJpbmdSZWYpY29udGVu
dEV4dGVuc2lvblN0cmluZykpOwotICAgIFdLUmV0YWluUHRyPFdLVXNlckNvbnRlbnRGaWx0ZXJS
ZWY+IGZpbHRlciA9IGFkb3B0V0soV0tVc2VyQ29udGVudEZpbHRlckNyZWF0ZShuYW1lLmdldCgp
LCBjb250ZW50RXh0ZW5zaW9uU3RyaW5nV0suZ2V0KCkpKTsKLQotICAgIFdLUGFnZUdyb3VwQWRk
VXNlckNvbnRlbnRGaWx0ZXIoV0tQYWdlR2V0UGFnZUdyb3VwKFRlc3RDb250cm9sbGVyOjpzaW5n
bGV0b24oKS5tYWluV2ViVmlldygpLT5wYWdlKCkpLCBmaWx0ZXIuZ2V0KCkpOworICAgIAorICAg
IF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7CisgICAgW1tfV0tVc2VyQ29udGVudEV4dGVuc2lv
blN0b3JlIGRlZmF1bHRTdG9yZV0gY29tcGlsZUNvbnRlbnRFeHRlbnNpb25Gb3JJZGVudGlmaWVy
OkAiVGVzdENvbnRlbnRFeHRlbnNpb25zIiBlbmNvZGVkQ29udGVudEV4dGVuc2lvbjpjb250ZW50
RXh0ZW5zaW9uU3RyaW5nIGNvbXBsZXRpb25IYW5kbGVyOl4oX1dLVXNlckNvbnRlbnRGaWx0ZXIg
KmZpbHRlciwgTlNFcnJvciAqZXJyb3IpCisgICAgeworICAgICAgICBpZiAoIWVycm9yKQorICAg
ICAgICAgICAgV0tQYWdlR3JvdXBBZGRVc2VyQ29udGVudEZpbHRlcihXS1BhZ2VHZXRQYWdlR3Jv
dXAoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBhZ2UoKSksIChf
X2JyaWRnZSBXS1VzZXJDb250ZW50RmlsdGVyUmVmKWZpbHRlcik7CisgICAgICAgIGRvbmUgPSB0
cnVlOworICAgIH1dOworICAgIHBsYXRmb3JtUnVuVW50aWwoZG9uZSwgMCk7CiB9CiAKIHZvaWQg
VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUnVuVW50aWwoYm9vbCYgZG9uZSwgZG91YmxlIHRpbWVv
dXQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250961</attachid>
            <date>2015-04-16 15:51:23 -0700</date>
            <delta_ts>2015-04-16 16:42:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143852-20150416155025.patch</filename>
            <type>text/plain</type>
            <size>19671</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MjkxNSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE1LTA0LTE2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlZCB1
bnVzZWQgV0tVc2VyQ29udGVudEZpbHRlclJlZi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Mzg1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudEV4dGVuc2lv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxlZ2FjeUNvbnRlbnRFeHRlbnNpb25Db21waWxhdGlv
bkNsaWVudDo6TGVnYWN5Q29udGVudEV4dGVuc2lvbkNvbXBpbGF0aW9uQ2xpZW50KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6TGVnYWN5Q29udGVudEV4dGVuc2lvbkNvbXBpbGF0aW9uQ2xp
ZW50Ojp3cml0ZUJ5dGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TGVnYWN5Q29u
dGVudEV4dGVuc2lvbkNvbXBpbGF0aW9uQ2xpZW50Ojp3cml0ZUFjdGlvbnMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb246OmNyZWF0ZUZyb21D
b21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiBTaGFyZWQv
V2ViQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLVXNlckNvbnRlbnRGaWx0ZXJSZWYuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9XS1VzZXJDb250ZW50RmlsdGVyUmVmLmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLVXNlckNvbnRlbnRGaWx0ZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S1VzZXJDb250ZW50RmlsdGVyLm1tOgorICAgICAgICAoLVtfV0tVc2VyQ29udGVudEZpbHRlciBp
bml0V2l0aE5hbWU6c2VyaWFsaXplZFJ1bGVzOl0pOiBEZWxldGVkLgorICAgICAgICAqIFdlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxNS0wNC0xMyAgSmVyIE5vYmxlICA8
amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBXaGVuIHNpbXVsdGFuZW91c2x5
IGV4aXRpbmctYW5kLWVudGVyaW5nIGZ1bGxzY3JlZW4sIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIvUHJveHkgYmVjb21lcyBjb25mdXNlZCBhYm91dCB3aGF0IHZpZGVvIGVsZW1lbnQgaXQgcmVw
cmVzZW50cy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRF
eHRlbnNpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb21w
aWxlZENvbnRlbnRFeHRlbnNpb24uY3BwCShyZXZpc2lvbiAxODI5MTUpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzAsMzQgKzMwLDYgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLUxlZ2FjeUNvbnRl
bnRFeHRlbnNpb25Db21waWxhdGlvbkNsaWVudDo6TGVnYWN5Q29udGVudEV4dGVuc2lvbkNvbXBp
bGF0aW9uQ2xpZW50KFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpDb21waWxlZENvbnRlbnRF
eHRlbnNpb25EYXRhJiBkYXRhKQotICAgIDogbV9kYXRhKGRhdGEpCi17Ci19Ci0KLXZvaWQgTGVn
YWN5Q29udGVudEV4dGVuc2lvbkNvbXBpbGF0aW9uQ2xpZW50Ojp3cml0ZUJ5dGVjb2RlKFZlY3Rv
cjxXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6REZBQnl0ZWNvZGU+JiYgYnl0ZWNvZGUpCi17
Ci0gICAgbV9kYXRhLmJ5dGVjb2RlID0gV1RGOjptb3ZlKGJ5dGVjb2RlKTsKLX0KLQotdm9pZCBM
ZWdhY3lDb250ZW50RXh0ZW5zaW9uQ29tcGlsYXRpb25DbGllbnQ6OndyaXRlQWN0aW9ucyhWZWN0
b3I8V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlNlcmlhbGl6ZWRBY3Rpb25CeXRlPiYmIGFj
dGlvbnMpCi17Ci0gICAgbV9kYXRhLmFjdGlvbnMgPSBXVEY6Om1vdmUoYWN0aW9ucyk7Ci19Ci0K
LQotUmVmPFdlYkNvbXBpbGVkQ29udGVudEV4dGVuc2lvbj4gV2ViQ29tcGlsZWRDb250ZW50RXh0
ZW5zaW9uOjpjcmVhdGVGcm9tQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uRGF0YShjb25zdCBXZWJD
b3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Q29tcGlsZWRDb250ZW50RXh0ZW5zaW9uRGF0YSYgY29t
cGlsZXJEYXRhKQotewotICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IHNoYXJlZE1lbW9yeSA9IFNo
YXJlZE1lbW9yeTo6YWxsb2NhdGUoY29tcGlsZXJEYXRhLmJ5dGVjb2RlLnNpemUoKSArIGNvbXBp
bGVyRGF0YS5hY3Rpb25zLnNpemUoKSk7Ci0gICAgbWVtY3B5KHN0YXRpY19jYXN0PGNoYXIqPihz
aGFyZWRNZW1vcnktPmRhdGEoKSksIGNvbXBpbGVyRGF0YS5hY3Rpb25zLmRhdGEoKSwgY29tcGls
ZXJEYXRhLmFjdGlvbnMuc2l6ZSgpKTsKLSAgICBtZW1jcHkoc3RhdGljX2Nhc3Q8Y2hhcio+KHNo
YXJlZE1lbW9yeS0+ZGF0YSgpKSArIGNvbXBpbGVyRGF0YS5hY3Rpb25zLnNpemUoKSwgY29tcGls
ZXJEYXRhLmJ5dGVjb2RlLmRhdGEoKSwgY29tcGlsZXJEYXRhLmJ5dGVjb2RlLnNpemUoKSk7Ci0K
LSAgICBOZXR3b3JrQ2FjaGU6OkRhdGEgZmlsZURhdGE7IC8vIFdlIGRvbid0IGhhdmUgYW4gbW1h
cCdkIGZpbGUgdG8ga2VlcCBhbGl2ZSBoZXJlLCBzbyBqdXN0IHVzZSBhbiBlbXB0eSBEYXRhIG9i
amVjdC4KLSAgICBXZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb25EYXRhIGRhdGEoV1RGOjptb3Zl
KHNoYXJlZE1lbW9yeSksIGZpbGVEYXRhLCAwLCBjb21waWxlckRhdGEuYWN0aW9ucy5zaXplKCks
IGNvbXBpbGVyRGF0YS5hY3Rpb25zLnNpemUoKSwgY29tcGlsZXJEYXRhLmJ5dGVjb2RlLnNpemUo
KSk7Ci0KLSAgICByZXR1cm4gY3JlYXRlKFdURjo6bW92ZShkYXRhKSk7Ci19Ci0KIFJlZjxXZWJD
b21waWxlZENvbnRlbnRFeHRlbnNpb24+IFdlYkNvbXBpbGVkQ29udGVudEV4dGVuc2lvbjo6Y3Jl
YXRlKFdlYkNvbXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEmJiBkYXRhKQogewogICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFdlYkNvbXBpbGVkQ29udGVudEV4dGVuc2lvbihXVEY6Om1vdmUoZGF0
YSkpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRFeHRl
bnNpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29tcGlsZWRD
b250ZW50RXh0ZW5zaW9uLmgJKHJldmlzaW9uIDE4MjkxNSkKKysrIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzQs
MjQgKzM0LDggQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLS8vIEZJWE1FOiBSZW1vdmUgdGhp
cyBvbmNlIGV2ZXJ5b25lIGlzIGNvbnZlcnRlZCB0byB1c2luZyB0aGUgVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZS4KLWNsYXNzIExlZ2FjeUNvbnRlbnRFeHRlbnNpb25Db21waWxhdGlvbkNsaWVu
dCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVu
c2lvbkNvbXBpbGF0aW9uQ2xpZW50IHsKLXB1YmxpYzoKLSAgICBMZWdhY3lDb250ZW50RXh0ZW5z
aW9uQ29tcGlsYXRpb25DbGllbnQoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkNvbXBpbGVk
Q29udGVudEV4dGVuc2lvbkRhdGEmKTsKLQotICAgIHZpcnR1YWwgdm9pZCB3cml0ZUJ5dGVjb2Rl
KFZlY3RvcjxXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6REZBQnl0ZWNvZGU+JiYpIG92ZXJy
aWRlOwotICAgIHZpcnR1YWwgdm9pZCB3cml0ZUFjdGlvbnMoVmVjdG9yPFdlYkNvcmU6OkNvbnRl
bnRFeHRlbnNpb25zOjpTZXJpYWxpemVkQWN0aW9uQnl0ZT4mJikgb3ZlcnJpZGU7Ci0KLXByaXZh
dGU6Ci0gICAgV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkNvbXBpbGVkQ29udGVudEV4dGVu
c2lvbkRhdGEmIG1fZGF0YTsKLX07Ci0KLQogY2xhc3MgV2ViQ29tcGlsZWRDb250ZW50RXh0ZW5z
aW9uIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpDb21waWxlZENv
bnRlbnRFeHRlbnNpb24gewogcHVibGljOgotICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBvbmNl
IGV2ZXJ5b25lIGlzIGNvbnZlcnRlZCB0byB1c2luZyB0aGUgVXNlckNvbnRlbnRFeHRlbnNpb25T
dG9yZS4KLSAgICBzdGF0aWMgUmVmPFdlYkNvbXBpbGVkQ29udGVudEV4dGVuc2lvbj4gY3JlYXRl
RnJvbUNvbXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEoY29uc3QgV2ViQ29yZTo6Q29udGVudEV4
dGVuc2lvbnM6OkNvbXBpbGVkQ29udGVudEV4dGVuc2lvbkRhdGEmKTsKLQogICAgIHN0YXRpYyBS
ZWY8V2ViQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uPiBjcmVhdGUoV2ViQ29tcGlsZWRDb250ZW50
RXh0ZW5zaW9uRGF0YSYmKTsKICAgICB2aXJ0dWFsIH5XZWJDb21waWxlZENvbnRlbnRFeHRlbnNp
b24oKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlckNvbnRl
bnRGaWx0ZXJSZWYuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1VzZXJDb250ZW50RmlsdGVyUmVmLmNwcAkocmV2aXNpb24gMTgyOTE1KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVXNlckNvbnRlbnRGaWx0ZXJSZWYuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiV0tVc2VyQ29udGVudEZpbHRlclJlZi5oIgotCi0jaW5jbHVkZSAi
QVBJVXNlckNvbnRlbnRFeHRlbnNpb24uaCIKLSNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNs
dWRlICJXZWJDb21waWxlZENvbnRlbnRFeHRlbnNpb24uaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0Nv
bnRlbnRFeHRlbnNpb25Db21waWxlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudEV4dGVu
c2lvbkVycm9yLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLVdLVHlwZUlEIFdLVXNl
ckNvbnRlbnRGaWx0ZXJHZXRUeXBlSUQoKQotewotICAgIHJldHVybiB0b0FQSShBUEk6OlVzZXJD
b250ZW50RXh0ZW5zaW9uOjpBUElUeXBlKTsKLX0KLQotV0tVc2VyQ29udGVudEZpbHRlclJlZiBX
S1VzZXJDb250ZW50RmlsdGVyQ3JlYXRlKFdLU3RyaW5nUmVmIG5hbWVSZWYsIFdLU3RyaW5nUmVm
IHNlcmlhbGl6ZWRSdWxlc1JlZikKLXsKLSNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQot
ICAgIFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpDb21waWxlZENvbnRlbnRFeHRlbnNpb25E
YXRhIGRhdGE7Ci0gICAgTGVnYWN5Q29udGVudEV4dGVuc2lvbkNvbXBpbGF0aW9uQ2xpZW50IGNs
aWVudChkYXRhKTsKLQotICAgIGF1dG8gY29tcGlsZXJFcnJvciA9IFdlYkNvcmU6OkNvbnRlbnRF
eHRlbnNpb25zOjpjb21waWxlUnVsZUxpc3QoY2xpZW50LCB0b1dURlN0cmluZyhzZXJpYWxpemVk
UnVsZXNSZWYpKTsKLSAgICBpZiAoY29tcGlsZXJFcnJvcikKLSAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0KLSAgICBhdXRvIGNvbXBpbGVkQ29udGVudEV4dGVuc2lvbiA9IFdlYktpdDo6V2ViQ29t
cGlsZWRDb250ZW50RXh0ZW5zaW9uOjpjcmVhdGVGcm9tQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9u
RGF0YShkYXRhKTsKLQotICAgIHJldHVybiB0b0FQSSgmQVBJOjpVc2VyQ29udGVudEV4dGVuc2lv
bjo6Y3JlYXRlKHRvV1RGU3RyaW5nKG5hbWVSZWYpLCBXVEY6Om1vdmUoY29tcGlsZWRDb250ZW50
RXh0ZW5zaW9uKSkubGVha1JlZigpKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKG5hbWVSZWYp
OwotICAgIFVOVVNFRF9QQVJBTShzZXJpYWxpemVkUnVsZXNSZWYpOwotICAgIHJldHVybiBudWxs
cHRyOwotI2VuZGlmCi19CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tV
c2VyQ29udGVudEZpbHRlclJlZi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1VzZXJDb250ZW50RmlsdGVyUmVmLmgJKHJldmlzaW9uIDE4MjkxNSkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJDb250ZW50RmlsdGVyUmVmLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV0tV
c2VyQ29udGVudEZpbHRlclJlZl9oCi0jZGVmaW5lIFdLVXNlckNvbnRlbnRGaWx0ZXJSZWZfaAot
Ci0jaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVy
biAiQyIgewotI2VuZGlmCi0KLVdLX0VYUE9SVCBXS1R5cGVJRCBXS1VzZXJDb250ZW50RmlsdGVy
R2V0VHlwZUlEKCk7Ci0KLVdLX0VYUE9SVCBXS1VzZXJDb250ZW50RmlsdGVyUmVmIFdLVXNlckNv
bnRlbnRGaWx0ZXJDcmVhdGUoV0tTdHJpbmdSZWYgbmFtZSwgV0tTdHJpbmdSZWYgc2VyaWFsaXpl
ZFJ1bGVzKTsKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8qIFdL
VXNlckNvbnRlbnRGaWx0ZXJSZWZfaCAqLwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dlYktpdDJfQy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XZWJLaXQyX0MuaAkocmV2aXNpb24gMTgyOTE1KQorKysgU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw2
IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLVVJMUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYktpdC9X
S1VSTFJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLVXNlckNvbnRlbnRDb250cm9sbGVy
UmVmLmg+Ci0jaW5jbHVkZSA8V2ViS2l0L1dLVXNlckNvbnRlbnRGaWx0ZXJSZWYuaD4KICNpbmNs
dWRlIDxXZWJLaXQvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdl
YktpdC9XS1VzZXJTY3JpcHRSZWYuaD4KIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEZpbHRlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRGaWx0ZXIuaAkocmV2aXNp
b24gMTgyOTE1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2Vy
Q29udGVudEZpbHRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw4ICszMCw2IEBACiBXS19DTEFT
U19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSkKIEBpbnRlcmZhY2UgX1dLVXNlckNv
bnRlbnRGaWx0ZXIgOiBOU09iamVjdAogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhOYW1lOihO
U1N0cmluZyAqKW5hbWUgc2VyaWFsaXplZFJ1bGVzOihOU1N0cmluZyAqKXNlcmlhbGl6ZWRSdWxl
czsKLQogQGVuZAogCiAjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRGaWx0ZXIubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEZp
bHRlci5tbQkocmV2aXNpb24gMTgyOTE1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tVc2VyQ29udGVudEZpbHRlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMzUsMjMg
KzM1LDYgQEAKIAogQGltcGxlbWVudGF0aW9uIF9XS1VzZXJDb250ZW50RmlsdGVyCiAKLS0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aE5hbWU6KE5TU3RyaW5nICopbmFtZSBzZXJpYWxpemVkUnVsZXM6
KE5TU3RyaW5nICopc2VyaWFsaXplZFJ1bGVzCi17Ci0gICAgaWYgKCEoc2VsZiA9IFtzdXBlciBp
bml0XSkpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICBXZWJDb3JlOjpDb250ZW50RXh0ZW5z
aW9uczo6Q29tcGlsZWRDb250ZW50RXh0ZW5zaW9uRGF0YSBkYXRhOwotICAgIFdlYktpdDo6TGVn
YWN5Q29udGVudEV4dGVuc2lvbkNvbXBpbGF0aW9uQ2xpZW50IGNsaWVudChkYXRhKTsKLQotICAg
IGlmIChhdXRvIGNvbXBpbGVyRXJyb3IgPSBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Y29t
cGlsZVJ1bGVMaXN0KGNsaWVudCwgU3RyaW5nKHNlcmlhbGl6ZWRSdWxlcykpKQotICAgICAgICBb
TlNFeGNlcHRpb24gcmFpc2U6TlNHZW5lcmljRXhjZXB0aW9uIGZvcm1hdDpAIkZhaWxlZCB0byBj
b21waWxlIHJ1bGVzIHdpdGggZXJyb3I6ICVzIiwgY29tcGlsZXJFcnJvci5tZXNzYWdlKCkuY19z
dHIoKV07Ci0KLSAgICBhdXRvIGNvbXBpbGVkQ29udGVudEV4dGVuc2lvbiA9IFdlYktpdDo6V2Vi
Q29tcGlsZWRDb250ZW50RXh0ZW5zaW9uOjpjcmVhdGVGcm9tQ29tcGlsZWRDb250ZW50RXh0ZW5z
aW9uRGF0YShkYXRhKTsKLSAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6
VXNlckNvbnRlbnRFeHRlbnNpb24+KHNlbGYsIFN0cmluZyhuYW1lKSwgV1RGOjptb3ZlKGNvbXBp
bGVkQ29udGVudEV4dGVuc2lvbikpOwotCi0gICAgcmV0dXJuIHNlbGY7Ci19Ci0KIC0gKHZvaWQp
ZGVhbGxvYwogewogICAgIF91c2VyQ29udGVudEV4dGVuc2lvbi0+flVzZXJDb250ZW50RXh0ZW5z
aW9uKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCShyZXZpc2lvbiAxODI5MTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTExNDMsOCArMTE0
Myw2IEBACiAJCTdDODlEMkI5MUE2QjBGMkMwMDNBNUZERSAvKiBfV0tVc2VyQ29udGVudEZpbHRl
ci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDODlE
MkI3MUE2QjBGMkMwMDNBNUZERSAvKiBfV0tVc2VyQ29udGVudEZpbHRlci5tbSAqLzsgfTsKIAkJ
N0M4OUQyQkExQTZCMEYyQzAwM0E1RkRFIC8qIF9XS1VzZXJDb250ZW50RmlsdGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Qzg5RDJCODFBNkIwRjJD
MDAzQTVGREUgLyogX1dLVXNlckNvbnRlbnRGaWx0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3Qzg5RDJCQzFBNkIwRjVCMDAzQTVGREUgLyog
X1dLVXNlckNvbnRlbnRGaWx0ZXJJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4OUQyQkIxQTZCMEY1QjAwM0E1RkRFIC8qIF9XS1VzZXJD
b250ZW50RmlsdGVySW50ZXJuYWwuaCAqLzsgfTsKLQkJN0M4OUQyQkYxQTZCMTFFRjAwM0E1RkRF
IC8qIFdLVXNlckNvbnRlbnRGaWx0ZXJSZWYuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4OUQyQkQxQTZCMTFFRjAwM0E1RkRFIC8qIFdLVXNlckNv
bnRlbnRGaWx0ZXJSZWYuY3BwICovOyB9OwotCQk3Qzg5RDJDMDFBNkIxMUVGMDAzQTVGREUgLyog
V0tVc2VyQ29udGVudEZpbHRlclJlZi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0M4OUQyQkUxQTZCMTFFRjAwM0E1RkRFIC8qIFdLVXNlckNvbnRlbnRG
aWx0ZXJSZWYuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk3Qzg5RDJENzFBNkM2QkU2MDAzQTVGREUgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdDODlEMkQ2MUE2QzZCRTYwMDNBNUZERSAvKiBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b25JbnRlcm5hbC5oICovOyB9OwogCQk3QzhFQjExNzE4REI2QTE5MDA3OTE3QzIgLyogV0tQcmVm
ZXJlbmNlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDOEVCMTE2MThEQjZBMTkwMDc5MTdDMiAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDOUQx
NTM3MTg0NTg0REEwMDlEMzkxOCAvKiBXS0Jyb3dzaW5nQ29udGV4dEdyb3VwSW50ZXJuYWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDOUQxNTM2MTg0
NTg0REEwMDlEMzkxOCAvKiBXS0Jyb3dzaW5nQ29udGV4dEdyb3VwSW50ZXJuYWwuaCAqLzsgfTsK
QEAgLTMzNjgsOCArMzM2Niw2IEBACiAJCTdDODlEMkI3MUE2QjBGMkMwMDNBNUZERSAvKiBfV0tV
c2VyQ29udGVudEZpbHRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IF9XS1VzZXJDb250ZW50RmlsdGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3Qzg5RDJCODFBNkIwRjJDMDAzQTVGREUgLyogX1dLVXNlckNvbnRlbnRGaWx0ZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVXNlckNvbnRlbnRGaWx0ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M4OUQyQkIxQTZCMEY1QjAwM0E1RkRFIC8qIF9X
S1VzZXJDb250ZW50RmlsdGVySW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gX1dLVXNlckNvbnRlbnRGaWx0ZXJJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk3Qzg5RDJCRDFBNkIxMUVGMDAzQTVGREUgLyogV0tVc2VyQ29udGVudEZpbHRl
clJlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VzZXJDb250
ZW50RmlsdGVyUmVmLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0M4OUQyQkUx
QTZCMTFFRjAwM0E1RkRFIC8qIFdLVXNlckNvbnRlbnRGaWx0ZXJSZWYuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tVc2VyQ29udGVudEZpbHRlclJlZi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3Qzg5RDJENjFBNkM2QkU2MDAzQTVGREUgLyogX1dLUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0M4RUIxMTYxOERCNkExOTAwNzkxN0MyIC8qIFdLUHJlZmVyZW5j
ZXNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJlZmVyZW5j
ZXNQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDOUQxNTM2MTg0NTg0
REEwMDlEMzkxOCAvKiBXS0Jyb3dzaW5nQ29udGV4dEdyb3VwSW50ZXJuYWwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCcm93c2luZ0NvbnRleHRHcm91cEludGVybmFsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NDcxLDggKzY0NjcsNiBAQAogCQkJCTdD
ODlEMjlFMUE2Nzg1NTQwMDNBNUZERSAvKiBXS1VzZXJDb250ZW50Q29udHJvbGxlclJlZi5oICov
LAogCQkJCTdDMjQxMzA2MUFBQ0ZDQjQwMEE1OEMxNSAvKiBXS1VzZXJDb250ZW50RXh0ZW5zaW9u
U3RvcmVSZWYuY3BwICovLAogCQkJCTdDMjQxMzA3MUFBQ0ZDQjQwMEE1OEMxNSAvKiBXS1VzZXJD
b250ZW50RXh0ZW5zaW9uU3RvcmVSZWYuaCAqLywKLQkJCQk3Qzg5RDJCRDFBNkIxMUVGMDAzQTVG
REUgLyogV0tVc2VyQ29udGVudEZpbHRlclJlZi5jcHAgKi8sCi0JCQkJN0M4OUQyQkUxQTZCMTFF
RjAwM0E1RkRFIC8qIFdLVXNlckNvbnRlbnRGaWx0ZXJSZWYuaCAqLywKIAkJCQk0QTQxMEYzNTE5
QUY3QUMzMDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5jcHAgKi8sCiAJ
CQkJNEE0MTBGMzYxOUFGN0FDMzAwMkVCQUI1IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QuaCAqLywKIAkJCQk3Qzg5RDJBMTFBNjc4ODc1MDAzQTVGREUgLyogV0tVc2VyU2NyaXB0UmVm
LmNwcCAqLywKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDE4MjkxNSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE1IEBACisyMDE1LTA0LTE2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlZCB1bnVzZWQgV0tVc2VyQ29udGVu
dEZpbHRlclJlZi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0Mzg1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRl
bnNpb25TdG9yZS5tbToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJv
bGxlck1hYy5tbToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRQ
cmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9s
bGVyOjpwbGF0Zm9ybUNvbmZpZ3VyZVZpZXdGb3JUZXN0KToKKwogMjAxNS0wNC0xNiAgQmV0aCBE
YWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRm9yY2UgbW91c2UgZXZlbnRzIHNo
b3VsZCBnbyB0aHJvdWdoIG5vcm1hbCBtb3VzZSBldmVudCBoYW5kbGluZyBjb2RlIHBhdGhzCklu
ZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9fV0tVc2VyQ29udGVu
dEV4dGVuc2lvblN0b3JlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0JKHJldmlzaW9u
IDE4MjkxNSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL19XS1Vz
ZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0JKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDYg
QEAKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXN0LmgiCiAjaW1w
b3J0IDxXZWJLaXQvX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVByaXZhdGUuaD4KLSNpbXBv
cnQgPFdlYktpdC9fV0tVc2VyQ29udGVudEZpbHRlci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0
ci5oPgogCiBjbGFzcyBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlVGVzdCA6IHB1YmxpYyB0
ZXN0aW5nOjpUZXN0IHsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1Rlc3RDb250
cm9sbGVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1Rl
c3RDb250cm9sbGVyTWFjLm1tCShyZXZpc2lvbiAxODI5MTUpCisrKyBUb29scy9XZWJLaXRUZXN0
UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzEsOSAr
MzEsMTEgQEAKICNpbXBvcnQgIlBvc2VBc0NsYXNzLmgiCiAjaW1wb3J0ICJUZXN0SW52b2NhdGlv
bi5oIgogI2ltcG9ydCAiV2ViS2l0VGVzdFJ1bm5lclBhc3RlYm9hcmQuaCIKKyNpbXBvcnQgPFdl
YktpdC9XS1BhZ2VHcm91cC5oPgogI2ltcG9ydCA8V2ViS2l0L1dLU3RyaW5nQ0YuaD4KICNpbXBv
cnQgPFdlYktpdC9XS1VSTENGLmg+Ci0jaW1wb3J0IDxXZWJLaXQvV0tVc2VyQ29udGVudEZpbHRl
clJlZi5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUuaD4K
KyNpbXBvcnQgPFdlYktpdC9fV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlUHJpdmF0ZS5oPgog
I2ltcG9ydCA8bWFjaC1vL2R5bGQuaD4KIAogQGludGVyZmFjZSBOU1NvdW5kIChEZXRhaWxzKQpA
QCAtODIsNiArODQsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRVc2VUaHJlYWRlZFNjcm9sbGluZyhj
CiAKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lz
dGVudFZhbHVlcygpCiB7CisgICAgW1tfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlIGRlZmF1
bHRTdG9yZV0gX3JlbW92ZUFsbENvbnRlbnRFeHRlbnNpb25zXTsKIH0KIAogdm9pZCBUZXN0Q29u
dHJvbGxlcjo6cGxhdGZvcm1Db25maWd1cmVWaWV3Rm9yVGVzdChjb25zdCBUZXN0SW52b2NhdGlv
biYgdGVzdCkKQEAgLTEwNywxMiArMTEwLDE1IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRm
b3JtQ29uZmlndXJlVmkKICAgICBOU1N0cmluZyAqY29udGVudEV4dGVuc2lvblN0cmluZyA9IFtO
U1N0cmluZyBzdHJpbmdXaXRoQ29udGVudHNPZlVSTDpmaWx0ZXJVUkwgdXNlZEVuY29kaW5nOiZl
bmNvZGluZyBlcnJvcjpOVUxMXTsKICAgICBpZiAoIWNvbnRlbnRFeHRlbnNpb25TdHJpbmcpCiAg
ICAgICAgIHJldHVybjsKLQotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBuYW1lID0gYWRv
cHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVGVzdENvbnRlbnRFeHRlbnNpb25z
IikpOwotICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBjb250ZW50RXh0ZW5zaW9uU3RyaW5n
V0sgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKChDRlN0cmluZ1JlZiljb250
ZW50RXh0ZW5zaW9uU3RyaW5nKSk7Ci0gICAgV0tSZXRhaW5QdHI8V0tVc2VyQ29udGVudEZpbHRl
clJlZj4gZmlsdGVyID0gYWRvcHRXSyhXS1VzZXJDb250ZW50RmlsdGVyQ3JlYXRlKG5hbWUuZ2V0
KCksIGNvbnRlbnRFeHRlbnNpb25TdHJpbmdXSy5nZXQoKSkpOwotCi0gICAgV0tQYWdlR3JvdXBB
ZGRVc2VyQ29udGVudEZpbHRlcihXS1BhZ2VHZXRQYWdlR3JvdXAoVGVzdENvbnRyb2xsZXI6OnNp
bmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBhZ2UoKSksIGZpbHRlci5nZXQoKSk7CisgICAgCisg
ICAgX19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKKyAgICBbW19XS1VzZXJDb250ZW50RXh0ZW5z
aW9uU3RvcmUgZGVmYXVsdFN0b3JlXSBjb21waWxlQ29udGVudEV4dGVuc2lvbkZvcklkZW50aWZp
ZXI6QCJUZXN0Q29udGVudEV4dGVuc2lvbnMiIGVuY29kZWRDb250ZW50RXh0ZW5zaW9uOmNvbnRl
bnRFeHRlbnNpb25TdHJpbmcgY29tcGxldGlvbkhhbmRsZXI6XihfV0tVc2VyQ29udGVudEZpbHRl
ciAqZmlsdGVyLCBOU0Vycm9yICplcnJvcikKKyAgICB7CisgICAgICAgIGlmICghZXJyb3IpCisg
ICAgICAgICAgICBXS1BhZ2VHcm91cEFkZFVzZXJDb250ZW50RmlsdGVyKFdLUGFnZUdldFBhZ2VH
cm91cChUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+cGFnZSgpKSwg
KF9fYnJpZGdlIFdLVXNlckNvbnRlbnRGaWx0ZXJSZWYpZmlsdGVyKTsKKyAgICAgICAgZG9uZSA9
IHRydWU7CisgICAgfV07CisgICAgcGxhdGZvcm1SdW5VbnRpbChkb25lLCAwKTsKIH0KIAogdm9p
ZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SdW5VbnRpbChib29sJiBkb25lLCBkb3VibGUgdGlt
ZW91dCkK
</data>
<flag name="review"
          id="275766"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>