1/*
2 * Copyright (c) 2023-2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16class Mat4 {
17    constructor(
18        m0: double,
19        m1: double,
20        m2: double,
21        m3: double,
22        m4: double,
23        m5: double,
24        m6: double,
25        m7: double,
26        m8: double,
27        m9: double,
28        m10: double,
29        m11: double,
30        m12: double,
31        m13: double,
32        m14: double,
33        m15: double,
34        m16: double,
35        m17: double,
36        m18: double,
37        m19: double,
38        m20: double,
39        m21: double,
40        m22: double,
41        m23: double,
42        m24: double,
43        m25: double,
44        m26: double,
45        m27: double,
46        m28: double,
47        m29: double,
48        m30: double,
49        m31: double,
50        m32: double,
51        m33: double,
52        m34: double,
53        m35: double,
54        m36: double,
55        m37: double,
56        m38: double,
57        m39: double,
58        m40: double,
59        m41: double,
60        m42: double,
61        m43: double,
62        m44: double,
63        m45: double,
64        m46: double,
65        m47: double,
66        m48: double,
67        m49: double,
68        m50: double,
69        m51: double,
70        m52: double,
71        m53: double,
72        m54: double,
73        m55: double,
74        m56: double,
75        m57: double,
76        m58: double,
77        m59: double,
78        m60: double,
79        m61: double,
80        m62: double,
81        m63: double,
82        m64: double,
83        m65: double,
84        m66: double,
85        m67: double,
86        m68: double,
87        m69: double,
88        m70: double,
89        m71: double,
90        m72: double,
91        m73: double,
92        m74: double,
93        m75: double,
94        m76: double,
95        m77: double,
96        m78: double,
97        m79: double,
98        m80: double,
99        m81: double,
100        m82: double,
101        m83: double,
102        m84: double,
103        m85: double,
104        m86: double,
105        m87: double,
106        m88: double,
107        m89: double,
108        m90: double,
109        m91: double,
110        m92: double,
111        m93: double,
112        m94: double,
113        m95: double,
114        m96: double,
115        m97: double,
116        m98: double,
117        m99: double,
118        m100: double,
119        m101: double,
120        m102: double,
121        m103: double,
122        m104: double,
123        m105: double,
124        m106: double,
125        m107: double,
126        m108: double,
127        m109: double,
128        m110: double,
129        m111: double,
130        m112: double,
131        m113: double,
132        m114: double,
133        m115: double,
134        m116: double,
135        m117: double,
136        m118: double,
137        m119: double,
138        m120: double,
139        m121: double,
140        m122: double,
141        m123: double,
142        m124: double,
143        m125: double,
144        m126: double,
145        m127: double,
146        m128: double,
147        m129: double,
148        m130: double,
149        m131: double,
150        m132: double,
151        m133: double,
152        m134: double,
153        m135: double,
154        m136: double,
155        m137: double,
156        m138: double,
157        m139: double,
158        m140: double,
159        m141: double,
160        m142: double,
161        m143: double,
162        m144: double,
163        m145: double,
164        m146: double,
165        m147: double,
166        m148: double,
167        m149: double,
168        m150: double,
169        m151: double,
170        m152: double,
171        m153: double,
172        m154: double,
173        m155: double,
174        m156: double,
175        m157: double,
176        m158: double,
177        m159: double,
178        m160: double,
179        m161: double,
180        m162: double,
181        m163: double,
182        m164: double,
183        m165: double,
184        m166: double,
185        m167: double,
186        m168: double,
187        m169: double,
188        m170: double,
189        m171: double,
190        m172: double,
191        m173: double,
192        m174: double,
193        m175: double,
194        m176: double,
195        m177: double,
196        m178: double,
197        m179: double,
198        m180: double,
199        m181: double,
200        m182: double,
201        m183: double,
202        m184: double,
203        m185: double,
204        m186: double,
205        m187: double,
206        m188: double,
207        m189: double,
208        m190: double,
209        m191: double,
210        m192: double,
211        m193: double,
212        m194: double,
213        m195: double,
214        m196: double,
215        m197: double,
216        m198: double,
217        m199: double,
218        m200: double,
219        m201: double,
220        m202: double,
221        m203: double,
222        m204: double,
223        m205: double,
224        m206: double,
225        m207: double,
226        m208: double,
227        m209: double,
228        m210: double,
229        m211: double,
230        m212: double,
231        m213: double,
232        m214: double,
233        m215: double,
234        m216: double,
235        m217: double,
236        m218: double,
237        m219: double,
238        m220: double,
239        m221: double,
240        m222: double,
241        m223: double,
242        m224: double,
243        m225: double,
244        m226: double,
245        m227: double,
246        m228: double,
247        m229: double,
248        m230: double,
249        m231: double,
250        m232: double,
251        m233: double,
252        m234: double,
253        m235: double,
254        m236: double,
255        m237: double,
256        m238: double,
257        m239: double,
258        m240: double,
259        m241: double,
260        m242: double,
261        m243: double,
262        m244: double,
263        m245: double,
264        m246: double,
265        m247: double,
266        m248: double,
267        m249: double,
268        m250: double,
269        m251: double,
270        m252: double,
271        m253: double,
272        m254: double,
273        m255: double
274    ) {}
275}
276
277function func(): void {}
278
279class ParticleSystem {
280    public f: int;
281    public m = new Mat4(
282        0,
283        0,
284        0,
285        0,
286        0,
287        0,
288        0,
289        0,
290        0,
291        0,
292        0,
293        0,
294        0,
295        0,
296        0,
297        0,
298        0,
299        0,
300        0,
301        0,
302        0,
303        0,
304        0,
305        0,
306        0,
307        0,
308        0,
309        0,
310        0,
311        0,
312        0,
313        0,
314        0,
315        0,
316        0,
317        0,
318        0,
319        0,
320        0,
321        0,
322        0,
323        0,
324        0,
325        0,
326        0,
327        0,
328        0,
329        0,
330        0,
331        0,
332        0,
333        0,
334        0,
335        0,
336        0,
337        0,
338        0,
339        0,
340        0,
341        0,
342        0,
343        0,
344        0,
345        0,
346        0,
347        0,
348        0,
349        0,
350        0,
351        0,
352        0,
353        0,
354        0,
355        0,
356        0,
357        0,
358        0,
359        0,
360        0,
361        0,
362        0,
363        0,
364        0,
365        0,
366        0,
367        0,
368        0,
369        0,
370        0,
371        0,
372        0,
373        0,
374        0,
375        0,
376        0,
377        0,
378        0,
379        0,
380        0,
381        0,
382        0,
383        0,
384        0,
385        0,
386        0,
387        0,
388        0,
389        0,
390        0,
391        0,
392        0,
393        0,
394        0,
395        0,
396        0,
397        0,
398        0,
399        0,
400        0,
401        0,
402        0,
403        0,
404        0,
405        0,
406        0,
407        0,
408        0,
409        0,
410        0,
411        0,
412        0,
413        0,
414        0,
415        0,
416        0,
417        0,
418        0,
419        0,
420        0,
421        0,
422        0,
423        0,
424        0,
425        0,
426        0,
427        0,
428        0,
429        0,
430        0,
431        0,
432        0,
433        0,
434        0,
435        0,
436        0,
437        0,
438        0,
439        0,
440        0,
441        0,
442        0,
443        0,
444        0,
445        0,
446        0,
447        0,
448        0,
449        0,
450        0,
451        0,
452        0,
453        0,
454        0,
455        0,
456        0,
457        0,
458        0,
459        0,
460        0,
461        0,
462        0,
463        0,
464        0,
465        0,
466        0,
467        0,
468        0,
469        0,
470        0,
471        0,
472        0,
473        0,
474        0,
475        0,
476        0,
477        0,
478        0,
479        0,
480        0,
481        0,
482        0,
483        0,
484        0,
485        0,
486        0,
487        0,
488        0,
489        0,
490        0,
491        0,
492        0,
493        0,
494        0,
495        0,
496        0,
497        0,
498        0,
499        0,
500        0,
501        0,
502        0,
503        0,
504        0,
505        0,
506        0,
507        0,
508        0,
509        0,
510        0,
511        0,
512        0,
513        0,
514        0,
515        0,
516        0,
517        0,
518        0,
519        0,
520        0,
521        0,
522        0,
523        0,
524        0,
525        0,
526        0,
527        0,
528        0,
529        0,
530        0,
531        0,
532        0,
533        0,
534        0,
535        0,
536        0,
537        0
538    );
539
540    foo() {
541        let x0 = 0;
542        let x1 = 1;
543        let x2 = 2;
544        let x3 = 3;
545        let x4 = 4;
546        let x5 = 5;
547        let x6 = 6;
548        let x7 = 7;
549        let x8 = 8;
550        let x9 = 9;
551        let x10 = 10;
552        let x11 = 11;
553        let x12 = 12;
554        let x13 = 13;
555        let x14 = 14;
556        let x15 = 15;
557        let x16 = 16;
558        let x: () => Mat4 = (): Mat4 => {
559            return this.m;
560        }
561    }
562
563    bar() {
564        let x0 = 0
565        let x1 = 0
566        let x2 = 0
567        let x3 = 0
568        let x4 = 0
569        let x5 = 0
570        let x6 = 0
571        let x7 = 0
572        let x8 = 0
573        let x9 = 0
574        let x10 = 0
575        let x11 = 0
576        let x12 = 0
577        let x13 = 0
578        let x14 = 0
579        let x15 = 0
580        let x16 = 0
581        let x17 = 0
582        let x18 = 0
583        let x19 = 0
584        let x20 = 0
585        let x21 = 0
586        let x22 = 0
587        let x23 = 0
588        let x24 = 0
589        let x25 = 0
590        let x26 = 0
591        let x27 = 0
592        let x28 = 0
593        let x29 = 0
594        let x30 = 0
595        let x31 = 0
596        let x32 = 0
597        let x33 = 0
598        let x34 = 0
599        let x35 = 0
600        let x36 = 0
601        let x37 = 0
602        let x38 = 0
603        let x39 = 0
604        let x40 = 0
605        let x41 = 0
606        let x42 = 0
607        let x43 = 0
608        let x44 = 0
609        let x45 = 0
610        let x46 = 0
611        let x47 = 0
612        let x48 = 0
613        let x49 = 0
614        let x50 = 0
615        let x51 = 0
616        let x52 = 0
617        let x53 = 0
618        let x54 = 0
619        let x55 = 0
620        let x56 = 0
621        let x57 = 0
622        let x58 = 0
623        let x59 = 0
624        let x60 = 0
625        let x61 = 0
626        let x62 = 0
627        let x63 = 0
628        let x64 = 0
629        let x65 = 0
630        let x66 = 0
631        let x67 = 0
632        let x68 = 0
633        let x69 = 0
634        let x70 = 0
635        let x71 = 0
636        let x72 = 0
637        let x73 = 0
638        let x74 = 0
639        let x75 = 0
640        let x76 = 0
641        let x77 = 0
642        let x78 = 0
643        let x79 = 0
644        let x80 = 0
645        let x81 = 0
646        let x82 = 0
647        let x83 = 0
648        let x84 = 0
649        let x85 = 0
650        let x86 = 0
651        let x87 = 0
652        let x88 = 0
653        let x89 = 0
654        let x90 = 0
655        let x91 = 0
656        let x92 = 0
657        let x93 = 0
658        let x94 = 0
659        let x95 = 0
660        let x96 = 0
661        let x97 = 0
662        let x98 = 0
663        let x99 = 0
664        let x100 = 0
665        let x101 = 0
666        let x102 = 0
667        let x103 = 0
668        let x104 = 0
669        let x105 = 0
670        let x106 = 0
671        let x107 = 0
672        let x108 = 0
673        let x109 = 0
674        let x110 = 0
675        let x111 = 0
676        let x112 = 0
677        let x113 = 0
678        let x114 = 0
679        let x115 = 0
680        let x116 = 0
681        let x117 = 0
682        let x118 = 0
683        let x119 = 0
684        let x120 = 0
685        let x121 = 0
686        let x122 = 0
687        let x123 = 0
688        let x124 = 0
689        let x125 = 0
690        let x126 = 0
691        let x127 = 0
692        let x128 = 0
693        let x129 = 0
694        let x130 = 0
695        let x131 = 0
696        let x132 = 0
697        let x133 = 0
698        let x134 = 0
699        let x135 = 0
700        let x136 = 0
701        let x137 = 0
702        let x138 = 0
703        let x139 = 0
704        let x140 = 0
705        let x141 = 0
706        let x142 = 0
707        let x143 = 0
708        let x144 = 0
709        let x145 = 0
710        let x146 = 0
711        let x147 = 0
712        let x148 = 0
713        let x149 = 0
714        let x150 = 0
715        let x151 = 0
716        let x152 = 0
717        let x153 = 0
718        let x154 = 0
719        let x155 = 0
720        let x156 = 0
721        let x157 = 0
722        let x158 = 0
723        let x159 = 0
724        let x160 = 0
725        let x161 = 0
726        let x162 = 0
727        let x163 = 0
728        let x164 = 0
729        let x165 = 0
730        let x166 = 0
731        let x167 = 0
732        let x168 = 0
733        let x169 = 0
734        let x170 = 0
735        let x171 = 0
736        let x172 = 0
737        let x173 = 0
738        let x174 = 0
739        let x175 = 0
740        let x176 = 0
741        let x177 = 0
742        let x178 = 0
743        let x179 = 0
744        let x180 = 0
745        let x181 = 0
746        let x182 = 0
747        let x183 = 0
748        let x184 = 0
749        let x185 = 0
750        let x186 = 0
751        let x187 = 0
752        let x188 = 0
753        let x189 = 0
754        let x190 = 0
755        let x191 = 0
756        let x192 = 0
757        let x193 = 0
758        let x194 = 0
759        let x195 = 0
760        let x196 = 0
761        let x197 = 0
762        let x198 = 0
763        let x199 = 0
764        let x200 = 0
765        let x201 = 0
766        let x202 = 0
767        let x203 = 0
768        let x204 = 0
769        let x205 = 0
770        let x206 = 0
771        let x207 = 0
772        let x208 = 0
773        let x209 = 0
774        let x210 = 0
775        let x211 = 0
776        let x212 = 0
777        let x213 = 0
778        let x214 = 0
779        let x215 = 0
780        let x216 = 0
781        let x217 = 0
782        let x218 = 0
783        let x219 = 0
784        let x220 = 0
785        let x221 = 0
786        let x222 = 0
787        let x223 = 0
788        let x224 = 0
789        let x225 = 0
790        let x226 = 0
791        let x227 = 0
792        let x228 = 0
793        let x229 = 0
794        let x230 = 0
795        let x231 = 0
796        let x232 = 0
797        let x233 = 0
798        let x234 = 0
799        let x235 = 0
800        let x236 = 0
801        let x237 = 0
802        let x238 = 0
803        let x239 = 0
804        let x240 = 0
805        let x241 = 0
806        let x242 = 0
807        let x243 = 0
808        let x244 = 0
809        let x245 = 0
810        let x246 = 0
811        let x247 = 0
812        let x248 = 0
813        let x249 = 0
814        let x250 = 0
815        let x251 = 0
816        let x252 = 0
817        let x253 = 0
818        let x254 = 0
819        let x255 = 0
820        let x = this.f
821        this.f = 0
822    }
823}
824
825function foo(p1: int, p2: int): int {
826    let x0 = 0
827    let x1 = 0
828    let x2 = 0
829    let x3 = 0
830    let x4 = 0
831    let x5 = 0
832    let x6 = 0
833    let x7 = 0
834    let x8 = 0
835    let x9 = 0
836    let x10 = 0
837    let x11 = 0
838    let x12 = 0
839    let x13 = 0
840    let x14 = 0
841    let x15 = 0
842    let x16 = 0
843    let x17 = 0
844    let x18 = 0
845    let x19 = 0
846    let x20 = 0
847    let x21 = 0
848    let x22 = 0
849    let x23 = 0
850    let x24 = 0
851    let x25 = 0
852    let x26 = 0
853    let x27 = 0
854    let x28 = 0
855    let x29 = 0
856    let x30 = 0
857    let x31 = 0
858    let x32 = 0
859    let x33 = 0
860    let x34 = 0
861    let x35 = 0
862    let x36 = 0
863    let x37 = 0
864    let x38 = 0
865    let x39 = 0
866    let x40 = 0
867    let x41 = 0
868    let x42 = 0
869    let x43 = 0
870    let x44 = 0
871    let x45 = 0
872    let x46 = 0
873    let x47 = 0
874    let x48 = 0
875    let x49 = 0
876    let x50 = 0
877    let x51 = 0
878    let x52 = 0
879    let x53 = 0
880    let x54 = 0
881    let x55 = 0
882    let x56 = 0
883    let x57 = 0
884    let x58 = 0
885    let x59 = 0
886    let x60 = 0
887    let x61 = 0
888    let x62 = 0
889    let x63 = 0
890    let x64 = 0
891    let x65 = 0
892    let x66 = 0
893    let x67 = 0
894    let x68 = 0
895    let x69 = 0
896    let x70 = 0
897    let x71 = 0
898    let x72 = 0
899    let x73 = 0
900    let x74 = 0
901    let x75 = 0
902    let x76 = 0
903    let x77 = 0
904    let x78 = 0
905    let x79 = 0
906    let x80 = 0
907    let x81 = 0
908    let x82 = 0
909    let x83 = 0
910    let x84 = 0
911    let x85 = 0
912    let x86 = 0
913    let x87 = 0
914    let x88 = 0
915    let x89 = 0
916    let x90 = 0
917    let x91 = 0
918    let x92 = 0
919    let x93 = 0
920    let x94 = 0
921    let x95 = 0
922    let x96 = 0
923    let x97 = 0
924    let x98 = 0
925    let x99 = 0
926    let x100 = 0
927    let x101 = 0
928    let x102 = 0
929    let x103 = 0
930    let x104 = 0
931    let x105 = 0
932    let x106 = 0
933    let x107 = 0
934    let x108 = 0
935    let x109 = 0
936    let x110 = 0
937    let x111 = 0
938    let x112 = 0
939    let x113 = 0
940    let x114 = 0
941    let x115 = 0
942    let x116 = 0
943    let x117 = 0
944    let x118 = 0
945    let x119 = 0
946    let x120 = 0
947    let x121 = 0
948    let x122 = 0
949    let x123 = 0
950    let x124 = 0
951    let x125 = 0
952    let x126 = 0
953    let x127 = 0
954    let x128 = 0
955    let x129 = 0
956    let x130 = 0
957    let x131 = 0
958    let x132 = 0
959    let x133 = 0
960    let x134 = 0
961    let x135 = 0
962    let x136 = 0
963    let x137 = 0
964    let x138 = 0
965    let x139 = 0
966    let x140 = 0
967    let x141 = 0
968    let x142 = 0
969    let x143 = 0
970    let x144 = 0
971    let x145 = 0
972    let x146 = 0
973    let x147 = 0
974    let x148 = 0
975    let x149 = 0
976    let x150 = 0
977    let x151 = 0
978    let x152 = 0
979    let x153 = 0
980    let x154 = 0
981    let x155 = 0
982    let x156 = 0
983    let x157 = 0
984    let x158 = 0
985    let x159 = 0
986    let x160 = 0
987    let x161 = 0
988    let x162 = 0
989    let x163 = 0
990    let x164 = 0
991    let x165 = 0
992    let x166 = 0
993    let x167 = 0
994    let x168 = 0
995    let x169 = 0
996    let x170 = 0
997    let x171 = 0
998    let x172 = 0
999    let x173 = 0
1000    let x174 = 0
1001    let x175 = 0
1002    let x176 = 0
1003    let x177 = 0
1004    let x178 = 0
1005    let x179 = 0
1006    let x180 = 0
1007    let x181 = 0
1008    let x182 = 0
1009    let x183 = 0
1010    let x184 = 0
1011    let x185 = 0
1012    let x186 = 0
1013    let x187 = 0
1014    let x188 = 0
1015    let x189 = 0
1016    let x190 = 0
1017    let x191 = 0
1018    let x192 = 0
1019    let x193 = 0
1020    let x194 = 0
1021    let x195 = 0
1022    let x196 = 0
1023    let x197 = 0
1024    let x198 = 0
1025    let x199 = 0
1026    let x200 = 0
1027    let x201 = 0
1028    let x202 = 0
1029    let x203 = 0
1030    let x204 = 0
1031    let x205 = 0
1032    let x206 = 0
1033    let x207 = 0
1034    let x208 = 0
1035    let x209 = 0
1036    let x210 = 0
1037    let x211 = 0
1038    let x212 = 0
1039    let x213 = 0
1040    let x214 = 0
1041    let x215 = 0
1042    let x216 = 0
1043    let x217 = 0
1044    let x218 = 0
1045    let x219 = 0
1046    let x220 = 0
1047    let x221 = 0
1048    let x222 = 0
1049    let x223 = 0
1050    let x224 = 0
1051    let x225 = 0
1052    let x226 = 0
1053    let x227 = 0
1054    let x228 = 0
1055    let x229 = 0
1056    let x230 = 0
1057    let x231 = 0
1058    let x232 = 0
1059    let x233 = 0
1060    let x234 = 0
1061    let x235 = 0
1062    let x236 = 0
1063    let x237 = 0
1064    let x238 = 0
1065    let x239 = 0
1066    let x240 = 0
1067    let x241 = 0
1068    let x242 = 0
1069    let x243 = 0
1070    let x244 = 0
1071    let x245 = 0
1072    let x246 = 0
1073    let x247 = 0
1074    let x248 = 0
1075    let x249 = 0
1076    let x250 = 0
1077    let x251 = 0
1078    let x252 = 0
1079    let x253 = 0
1080    let x254 = 0
1081    let x255 = 0
1082    return p1 + p2
1083}
1084
1085