25.4 KB
/home/hans/code/fdroid/data/unsigned/com.markuspage.android.certtools_6.binary.apk vs.
/tmp/tmp_ugu0yl0/sigcp_com.markuspage.android.certtools_6.apk
1.53 KB
zipinfo {}
Offset 1, 12 lines modifiedOffset 1, 12 lines modified
1 Zip·​file·​size:​·​18355·​bytes,​·​number·​of·​entries:​·​101 Zip·​file·​size:​·​18363·​bytes,​·​number·​of·​entries:​·​10
2 -​rw-​-​-​-​·····​1.​0·​fat·····​3221·​bx·​stor·​09-​May-​23·​13:​42·​res/​drawable/​doofi_certificate_1.​png 
3 -​rw-​-​-​-​·····​1.​0·​fat·····​1592·​bx·​stor·​09-​May-​23·​13:​42·​resources.​arsc 
4 -​rw-​-​-​-​·····​2.​0·​fat·····​6228·​bl·​defN·​09-​May-​23·​13:​42·​AndroidManifest.​xml 
5 -​rw-​-​-​-​·····​2.​0·​fat····​17336·​bl·​defN·​09-​May-​23·​13:​42·​classes.​dex 
6 -​rw-​-​-​-​·····​2.​0·​fat······​696·​bl·​defN·​09-​May-​23·​13:​42·​res/​layout/​emptylist.​xml 
7 -​rw-​-​-​-​·····​2.​0·​fat······​660·​bl·​defN·​09-​May-​23·​13:​42·​res/​layout/​main.​xml 
8 -​rw-​-​-​-​·····​2.​0·​fat······​444·​bl·​defN·​09-​May-​23·​13:​42·​res/​menu/​options_menu.​xml 
9 -​rw-​-​-​-​·····​2.​0·​fat······​719·​bl·​defN·​09-​May-​23·​13:​42·​META-​INF/​MANIFEST.​MF2 -​rw-​-​-​-​·····​2.​0·​fat······​719·​bl·​defN·​09-​May-​23·​13:​42·​META-​INF/​MANIFEST.​MF
10 -​rw-​-​-​-​·····​2.​0·​fat······​791·​bl·​defN·​09-​May-​23·​13:​42·​META-​INF/​NETMACKA.​SF3 -​rw-​-​-​-​·····​2.​0·​fat······​791·​bl·​defN·​09-​May-​23·​13:​42·​META-​INF/​NETMACKA.​SF
11 -​rw-​-​-​-​·····​2.​0·​fat·····​1083·​bl·​defN·​09-​May-​23·​13:​42·​META-​INF/​NETMACKA.​DSA4 -​rw-​-​-​-​·····​2.​0·​fat·····​1083·​bl·​defN·​09-​May-​23·​13:​42·​META-​INF/​NETMACKA.​DSA
12 10·​files,​·32770·bytes·uncompressed,​·​17009·bytes·compressed:​··​48.​1%5 -​rw-​-​-​-​·····​2.​0·fat·····​6228·​bX·​defN·​17-​Sep-​23·01:​32·AndroidManifest.​xml
 6 -​rw-​-​-​-​·····​1.​0·​fat·····​3221·​b-​·​stor·​80-​Jan-​01·​00:​00·​res/​drawable/​doofi_certificate_1.​png
 7 -​rw-​-​-​-​·····​2.​0·​fat······​696·​bl·​defN·​17-​Sep-​23·​01:​32·​res/​layout/​emptylist.​xml
 8 -​rw-​-​-​-​·····​2.​0·​fat······​660·​bl·​defN·​17-​Sep-​23·​01:​32·​res/​layout/​main.​xml
 9 -​rw-​-​-​-​·····​2.​0·​fat······​444·​bl·​defN·​17-​Sep-​23·​01:​32·​res/​menu/​options_menu.​xml
 10 -​rw-​-​-​-​·····​1.​0·​fat·····​1612·​b-​·​stor·​80-​Jan-​01·​00:​00·​resources.​arsc
 11 -​rw-​-​-​-​·····​2.​0·​fat····​17316·​bl·​defN·​17-​Sep-​23·​01:​32·​classes.​dex
 12 10·​files,​·​32770·​bytes·​uncompressed,​·​17059·​bytes·​compressed:​··​47.​9%
1.32 KB
smali/com/markuspage/android/certtools/CertToolsActivity$1.smali
Offset 20, 14 lines modifiedOffset 20, 15 lines modified
20 #·​instance·​fields20 #·​instance·​fields
21 .​field·​final·​synthetic·​this$0:​Lcom/​markuspage/​android/​certtools/​CertToolsActivity;​21 .​field·​final·​synthetic·​this$0:​Lcom/​markuspage/​android/​certtools/​CertToolsActivity;​
  
  
22 #·​direct·​methods22 #·​direct·​methods
23 .​method·​constructor·​<init>(Lcom/​markuspage/​android/​certtools/​CertToolsActivity;​)​V23 .​method·​constructor·​<init>(Lcom/​markuspage/​android/​certtools/​CertToolsActivity;​)​V
24 ····​.​locals·​024 ····​.​locals·​0
 25 ····​.​param·​p1,​·​"this$0"····​#·​Lcom/​markuspage/​android/​certtools/​CertToolsActivity;​
  
25 ····​.​prologue26 ····​.​prologue
26 ····​.​line·​7627 ····​.​line·​76
27 ····​iput-​object·​p1,​·​p0,​·​Lcom/​markuspage/​android/​certtools/​CertToolsActivity$1;​-​>this$0:​Lcom/​markuspage/​android/​certtools/​CertToolsActivity;​28 ····​iput-​object·​p1,​·​p0,​·​Lcom/​markuspage/​android/​certtools/​CertToolsActivity$1;​-​>this$0:​Lcom/​markuspage/​android/​certtools/​CertToolsActivity;​
  
28 ····​invoke-​direct·​{p0},​·​Ljava/​lang/​Object;​-​><init>()​V29 ····​invoke-​direct·​{p0},​·​Ljava/​lang/​Object;​-​><init>()​V
  
Offset 62, 22 lines modifiedOffset 63, 25 lines modified
  
62 ····​move-​result-​object·​v263 ····​move-​result-​object·​v2
  
63 ····​move-​object·​v1,​·​p264 ····​move-​object·​v1,​·​p2
  
64 ····​check-​cast·​v1,​·​Landroid/​widget/​TextView;​65 ····​check-​cast·​v1,​·​Landroid/​widget/​TextView;​
  
 66 ····​.​line·​81
65 ····​invoke-​virtual·​{v1},​·​Landroid/​widget/​TextView;​-​>getText()​Ljava/​lang/​CharSequence;​67 ····​invoke-​virtual·​{v1},​·​Landroid/​widget/​TextView;​-​>getText()​Ljava/​lang/​CharSequence;​
  
66 ····​move-​result-​object·​v168 ····​move-​result-​object·​v1
  
 69 ····​.​line·​80
67 ····​invoke-​static·​{v2,​·​v1,​·​v3},​·​Landroid/​widget/​Toast;​-​>makeText(Landroid/​content/​Context;​Ljava/​lang/​CharSequence;​I)​Landroid/​widget/​Toast;​70 ····​invoke-​static·​{v2,​·​v1,​·​v3},​·​Landroid/​widget/​Toast;​-​>makeText(Landroid/​content/​Context;​Ljava/​lang/​CharSequence;​I)​Landroid/​widget/​Toast;​
  
68 ····​move-​result-​object·​v171 ····​move-​result-​object·​v1
  
 72 ····​.​line·​81
69 ····​invoke-​virtual·​{v1},​·​Landroid/​widget/​Toast;​-​>show()​V73 ····​invoke-​virtual·​{v1},​·​Landroid/​widget/​Toast;​-​>show()​V
  
70 ····​.​line·​8374 ····​.​line·​83
71 ····​new-​instance·​v0,​·​Landroid/​content/​Intent;​75 ····​new-​instance·​v0,​·​Landroid/​content/​Intent;​
  
72 ····​invoke-​virtual·​{p2},​·​Landroid/​view/​View;​-​>getContext()​Landroid/​content/​Context;​76 ····​invoke-​virtual·​{p2},​·​Landroid/​view/​View;​-​>getContext()​Landroid/​content/​Context;​
  
398 B
smali/com/markuspage/android/certtools/CertTools.smali
Offset 133, 14 lines modifiedOffset 133, 15 lines modified
  
133 ····​move-​result·​v8133 ····​move-​result·​v8
  
134 ····​if-​nez·​v8,​·​:​cond_2134 ····​if-​nez·​v8,​·​:​cond_2
  
135 ····​const-​string·​v8,​·​"-​-​-​-​-​BEGIN·​TRUSTED·​CERTIFICATE-​-​-​-​-​"135 ····​const-​string·​v8,​·​"-​-​-​-​-​BEGIN·​TRUSTED·​CERTIFICATE-​-​-​-​-​"
  
 136 ····​.​line·​60
136 ····​invoke-​virtual·​{v4,​·​v8},​·​Ljava/​lang/​String;​-​>equals(Ljava/​lang/​Object;​)​Z137 ····​invoke-​virtual·​{v4,​·​v8},​·​Ljava/​lang/​String;​-​>equals(Ljava/​lang/​Object;​)​Z
  
137 ····​move-​result·​v8138 ····​move-​result·​v8
  
138 ····​if-​nez·​v8,​·​:​cond_2139 ····​if-​nez·​v8,​·​:​cond_2
  
139 ····​.​line·​61140 ····​.​line·​61
21.7 KB
smali/com/markuspage/android/certtools/CertToolsActivity.smali
Offset 71, 151 lines modifiedOffset 71, 150 lines modified
  
71 .​method·​private·​createFromIntent(Land​roid/​content/​Intent;​)​V71 .​method·​private·​createFromIntent(Land​roid/​content/​Intent;​)​V
72 ····​.​locals·​1472 ····​.​locals·​14
73 ····​.​param·​p1,​·​"intent"····​#·​Landroid/​content/​Intent;​73 ····​.​param·​p1,​·​"intent"····​#·​Landroid/​content/​Intent;​
  
74 ····​.​prologue74 ····​.​prologue
75 ····​.​line·​6975 ····​.​line·​69
76 ····​iget-​object·​v10,​·​p0,​·​Lcom/​markuspage/​android/​certtools/​CertToolsActivity;​-​>items:​Ljava/​util/​List;​76 ····​iget-​object·​v9,​·​p0,​·​Lcom/​markuspage/​android/​certtools/​CertToolsActivity;​-​>items:​Ljava/​util/​List;​
  
77 ····​invoke-​interface·​{v10},​·​Ljava/​util/​List;​-​>clear()​V77 ····​invoke-​interface·​{v9},​·​Ljava/​util/​List;​-​>clear()​V
  
78 ····​.​line·​7078 ····​.​line·​70
79 ····​invoke-​virtual·​{p1},​·​Landroid/​content/​Intent;​-​>getData()​Landroid/​net/​Uri;​79 ····​invoke-​virtual·​{p1},​·​Landroid/​content/​Intent;​-​>getData()​Landroid/​net/​Uri;​
  
80 ····​move-​result-​object·​v1080 ····​move-​result-​object·​v9
  
81 ····​if-​nez·​v10,​·​:​cond_181 ····​if-​nez·​v9,​·​:​cond_1
  
82 ····​.​line·​7182 ····​.​line·​71
83 ····​iget-​object·​v10,​·​p0,​·​Lcom/​markuspage/​android/​certtools/​CertToolsActivity;​-​>items:​Ljava/​util/​List;​83 ····​iget-​object·​v9,​·​p0,​·​Lcom/​markuspage/​android/​certtools/​CertToolsActivity;​-​>items:​Ljava/​util/​List;​
  
84 ····​sget-​object·​v11,​·​Lcom/​markuspage/​android/​certtools/​CertToolsActivity;​-​>NO_CERTIFICATES:​Lcom/​markuspage/​android/​certtools/​PEMItem;​84 ····​sget-​object·​v10,​·​Lcom/​markuspage/​android/​certtools/​CertToolsActivity;​-​>NO_CERTIFICATES:​Lcom/​markuspage/​android/​certtools/​PEMItem;​
  
85 ····​invoke-​interface·​{v10,​·​v11},​·​Ljava/​util/​List;​-​>add(Ljava/​lang/​Object;​)​Z85 ····​invoke-​interface·​{v9,​·​v10},​·​Ljava/​util/​List;​-​>add(Ljava/​lang/​Object;​)​Z
  
86 ····​.​line·​12286 ····​.​line·​122
87 ····​:​cond_087 ····​:​cond_0
88 ····​:​goto_088 ····​:​goto_0
89 ····​return-​void89 ····​return-​void
  
90 ····​.​line·​7390 ····​.​line·​73
91 ····​:​cond_191 ····​:​cond_1
92 ····​invoke-​virtual·​{p0},​·​Lcom/​markuspage/​android/​certtools/​CertToolsActivity;​-​>getListView()​Landroid/​widget/​ListView;​92 ····​invoke-​virtual·​{p0},​·​Lcom/​markuspage/​android/​certtools/​CertToolsActivity;​-​>getListView()​Landroid/​widget/​ListView;​
  
93 ····​move-​result-​object·​v893 ····​move-​result-​object·​v7
  
94 ····​.​line·​7494 ····​.​line·​74
95 ····​.​local·​v8,​·​"lv":​Landroid/​widget/​ListView;​95 ····​.​local·​v7,​·​"lv":​Landroid/​widget/​ListView;​
96 ····​const/​4·​v10,​·​0x196 ····​const/​4·​v9,​·​0x1
  
97 ····​invoke-​virtual·​{v8,​·​v10},​·​Landroid/​widget/​ListView;​-​>setTextFilterEnabled​(Z)​V97 ····​invoke-​virtual·​{v7,​·​v9},​·​Landroid/​widget/​ListView;​-​>setTextFilterEnabled​(Z)​V
  
98 ····​.​line·​7698 ····​.​line·​76
99 ····​new-​instance·​v10,​·​Lcom/​markuspage/​android/​certtools/​CertToolsActivity$1;​99 ····​new-​instance·​v9,​·​Lcom/​markuspage/​android/​certtools/​CertToolsActivity$1;​
  
100 ····​invoke-​direct·​{v10,​·​p0},​·​Lcom/​markuspage/​android/​certtools/​CertToolsActivity$1;​-​><init>(Lcom/​markuspage/​android/​certtools/​CertToolsActivity;​)​V100 ····​invoke-​direct·​{v9,​·​p0},​·​Lcom/​markuspage/​android/​certtools/​CertToolsActivity$1;​-​><init>(Lcom/​markuspage/​android/​certtools/​CertToolsActivity;​)​V
  
101 ····​invoke-​virtual·​{v8,​·​v10},​·​Landroid/​widget/​ListView;​-​>setOnItemClickListen​er(Landroid/​widget/​AdapterView$OnItemCli​ckListener;​)​V101 ····​invoke-​virtual·​{v7,​·​v9},​·​Landroid/​widget/​ListView;​-​>setOnItemClickListen​er(Landroid/​widget/​AdapterView$OnItemCli​ckListener;​)​V
  
102 ····​.​line·​90102 ····​.​line·​90
103 ····​sget-​object·​v10,​·​Ljava/​lang/​System;​-​>out:​Ljava/​io/​PrintStream;​103 ····​sget-​object·​v9,​·​Ljava/​lang/​System;​-​>out:​Ljava/​io/​PrintStream;​
  
104 ····​new-​instance·​v11,​·​Ljava/​lang/​StringBuilder;​104 ····​new-​instance·​v10,​·​Ljava/​lang/​StringBuilder;​
  
105 ····​invoke-​direct·​{v11},​·​Ljava/​lang/​StringBuilder;​-​><init>()​V105 ····​invoke-​direct·​{v10},​·​Ljava/​lang/​StringBuilder;​-​><init>()​V
  
106 ····​const-​string·​v12,​·​"Intent:​·​"106 ····​const-​string·​v11,​·​"Intent:​·​"
  
107 ····​invoke-​virtual·​{v11,​·​v12},​·​Ljava/​lang/​StringBuilder;​-​>append(Ljava/​lang/​String;​)​Ljava/​lang/​StringBuilder;​107 ····​invoke-​virtual·​{v10,​·​v11},​·​Ljava/​lang/​StringBuilder;​-​>append(Ljava/​lang/​String;​)​Ljava/​lang/​StringBuilder;​
  
108 ····​move-​result-​object·​v11108 ····​move-​result-​object·​v10
  
109 ····​invoke-​virtual·​{v11,​·​p1},​·​Ljava/​lang/​StringBuilder;​-​>append(Ljava/​lang/​Object;​)​Ljava/​lang/​StringBuilder;​109 ····​invoke-​virtual·​{v10,​·​p1},​·​Ljava/​lang/​StringBuilder;​-​>append(Ljava/​lang/​Object;​)​Ljava/​lang/​StringBuilder;​
  
110 ····​move-​result-​object·​v11110 ····​move-​result-​object·​v10
  
111 ····​invoke-​virtual·​{v11},​·​Ljava/​lang/​StringBuilder;​-​>toString()​Ljava/​lang/​String;​111 ····​invoke-​virtual·​{v10},​·​Ljava/​lang/​StringBuilder;​-​>toString()​Ljava/​lang/​String;​
  
112 ····​move-​result-​object·​v11112 ····​move-​result-​object·​v10
  
113 ····​invoke-​virtual·​{v10,​·​v11},​·​Ljava/​io/​PrintStream;​-​>println(Ljava/​lang/​String;​)​V113 ····​invoke-​virtual·​{v9,​·​v10},​·​Ljava/​io/​PrintStream;​-​>println(Ljava/​lang/​String;​)​V
  
114 ····​.​line·​92114 ····​.​line·​92
115 ····​invoke-​virtual·​{p0},​·​Lcom/​markuspage/​android/​certtools/​CertToolsActivity;​-​>getContentResolver()​Landroid/​content/​ContentResolver;​115 ····​invoke-​virtual·​{p0},​·​Lcom/​markuspage/​android/​certtools/​CertToolsActivity;​-​>getContentResolver()​Landroid/​content/​ContentResolver;​
  
116 ····​move-​result-​object·​v3116 ····​move-​result-​object·​v3
  
117 ····​.​line·​93117 ····​.​line·​93
118 ····​.​local·​v3,​·​"cr":​Landroid/​content/​ContentResolver;​118 ····​.​local·​v3,​·​"cr":​Landroid/​content/​ContentResolver;​
119 ····​invoke-​virtual·​{p1},​·​Landroid/​content/​Intent;​-​>getData()​Landroid/​net/​Uri;​119 ····​invoke-​virtual·​{p1},​·​Landroid/​content/​Intent;​-​>getData()​Landroid/​net/​Uri;​
  
120 ····​move-​result-​object·​v9120 ····​move-​result-​object·​v8
  
121 ····​.​line·​94121 ····​.​line·​94
122 ····​.​local·​v9,​·​"uri":​Landroid/​net/​Uri;​122 ····​.​local·​v8,​·​"uri":​Landroid/​net/​Uri;​
123 ····​new-​instance·​v5,​·​Ljava/​io/​File;​123 ····​new-​instance·​v5,​·​Ljava/​io/​File;​
  
124 ····​invoke-​virtual·​{v9},​·​Landroid/​net/​Uri;​-​>getPath()​Ljava/​lang/​String;​124 ····​invoke-​virtual·​{v8},​·​Landroid/​net/​Uri;​-​>getPath()​Ljava/​lang/​String;​
  
125 ····​move-​result-​object·​v10125 ····​move-​result-​object·​v9
  
126 ····​invoke-​direct·​{v5,​·​v10},​·​Ljava/​io/​File;​-​><init>(Ljava/​lang/​String;​)​V126 ····​invoke-​direct·​{v5,​·​v9},​·​Ljava/​io/​File;​-​><init>(Ljava/​lang/​String;​)​V
  
127 ····​.​line·​95127 ····​.​line·​95
128 ····​.​local·​v5,​·​"file":​Ljava/​io/​File;​128 ····​.​local·​v5,​·​"file":​Ljava/​io/​File;​
129 ····​invoke-​virtual·​{v5},​·​Ljava/​io/​File;​-​>getName()​Ljava/​lang/​String;​129 ····​invoke-​virtual·​{v5},​·​Ljava/​io/​File;​-​>getName()​Ljava/​lang/​String;​
  
130 ····​move-​result-​object·​v10130 ····​move-​result-​object·​v9
  
131 ····​invoke-​virtual·​{p0,​·​v10},​·​Lcom/​markuspage/​android/​certtools/​CertToolsActivity;​-​>setTitle(Ljava/​lang/​CharSequence;​)​V131 ····​invoke-​virtual·​{p0,​·​v9},​·​Lcom/​markuspage/​android/​certtools/​CertToolsActivity;​-​>setTitle(Ljava/​lang/​CharSequence;​)​V
  
132 ····​.​line·​100132 ····​.​line·​100
133 ····​:​try_start_0133 ····​:​try_start_0
134 ····​invoke-​virtual·​{v3,​·​v9},​·​Landroid/​content/​ContentResolver;​-​>openInputStream(Land​roid/​net/​Uri;​)​Ljava/​io/​InputStream;​134 ····​invoke-​virtual·​{v3,​·​v8},​·​Landroid/​content/​ContentResolver;​-​>openInputStream(Land​roid/​net/​Uri;​)​Ljava/​io/​InputStream;​
  
135 ····​move-​result-​object·​v10135 ····​move-​result-​object·​v9
  
136 ····​invoke-​static·​{v10},​·​Lcom/​markuspage/​android/​certtools/​CertTools;​-​>getCertsFromPEM(Ljav​a/​io/​InputStream;​)​Ljava/​util/​List;​136 ····​invoke-​static·​{v9},​·​Lcom/​markuspage/​android/​certtools/​CertTools;​-​>getCertsFromPEM(Ljav​a/​io/​InputStream;​)​Ljava/​util/​List;​
137 ····​:​try_end_0137 ····​:​try_end_0
138 ····​.​catch·​Ljava/​io/​IOException;​·​{:​try_start_0·​.​.​·​:​try_end_0}·​:​catch_1138 ····​.​catch·​Ljava/​io/​IOException;​·​{:​try_start_0·​.​.​·​:​try_end_0}·​:​catch_1
139 ····​.​catch·​Ljava/​io/​FileNotFoundException​;​·​{:​try_start_0·​.​.​·​:​try_end_0}·​:​catch_0139 ····​.​catch·​Ljava/​io/​FileNotFoundException​;​·​{:​try_start_0·​.​.​·​:​try_end_0}·​:​catch_0
140 ····​.​catch·​Ljava/​security/​cert/​CertificateException;​·​{:​try_start_0·​.​.​·​:​try_end_0}·​:​catch_3140 ····​.​catch·​Ljava/​security/​cert/​CertificateException;​·​{:​try_start_0·​.​.​·​:​try_end_0}·​:​catch_3
  
141 ····​move-​result-​object·​v2141 ····​move-​result-​object·​v2
  
142 ····​.​line·​105142 ····​.​line·​105
143 ····​.​local·​v2,​·​"certs":​Ljava/​util/​List;​,​·​"Ljava/​util/​List<Ljava/​security/​cert/​Certificate;​>;​"143 ····​.​local·​v2,​·​"certs":​Ljava/​util/​List;​,​·​"Ljava/​util/​List<Ljava/​security/​cert/​Certificate;​>;​"
144 ····​:​goto_1144 ····​:​goto_1
145 ····​const/​4·​v7,​·​0x0145 ····​const/​4·​v6,​·​0x0
  
146 ····​.​line·​106146 ····​.​line·​106
147 ····​.​local·​v7,​·​"index":​I147 ····​.​local·​v6,​·​"index":​I
148 ····​:​try_start_1148 ····​:​try_start_1
149 ····​invoke-​interface·​{v2},​·​Ljava/​util/​List;​-​>iterator()​Ljava/​util/​Iterator;​149 ····​invoke-​interface·​{v2},​·​Ljava/​util/​List;​-​>iterator()​Ljava/​util/​Iterator;​
  
150 ····​move-​result-​object·​v6150 ····​move-​result-​object·​v9
  
Max diff block lines reached; 15433/22132 bytes (69.73%) of diff not shown.
296 B
smali/com/markuspage/android/certtools/R.smali
Offset 20, 10 lines modifiedOffset 20, 9 lines modified
20 .​method·​public·​constructor·​<init>()​V20 .​method·​public·​constructor·​<init>()​V
21 ····​.​locals·​021 ····​.​locals·​0
  
22 ····​.​prologue22 ····​.​prologue
23 ····​.​line·​1023 ····​.​line·​10
24 ····​invoke-​direct·​{p0},​·​Ljava/​lang/​Object;​-​><init>()​V24 ····​invoke-​direct·​{p0},​·​Ljava/​lang/​Object;​-​><init>()​V
  
25 ····​.​line·​26 
26 ····​return-​void25 ····​return-​void
27 .​end·​method26 .​end·​method