setwd("E:/Dropbox (Personal)/FSEGA/cursuri/2018-2019/R/cursuri")
pf <- read.csv('pseudo_facebook.tsv',sep='\t')

Grupati datele din pf in functie de dob_month.

library(dplyr)
pf_luna <- group_by(pf, dob_month)
str(pf_luna)
Classes ‘grouped_df’, ‘tbl_df’, ‘tbl’ and 'data.frame': 99003 obs. of  15 variables:
 $ userid               : int  2094382 1192601 2083884 1203168 1733186 1524765 1136133 1680361 1365174 1712567 ...
 $ age                  : int  14 14 14 14 14 14 13 13 13 13 ...
 $ dob_day              : int  19 2 16 25 4 1 14 4 1 2 ...
 $ dob_year             : int  1999 1999 1999 1999 1999 1999 2000 2000 2000 2000 ...
 $ dob_month            : int  11 11 11 12 12 12 1 1 1 2 ...
 $ gender               : Factor w/ 2 levels "female","male": 2 1 2 1 2 2 2 1 2 2 ...
 $ tenure               : int  266 6 13 93 82 15 12 0 81 171 ...
 $ friend_count         : int  0 0 0 0 0 0 0 0 0 0 ...
 $ friendships_initiated: int  0 0 0 0 0 0 0 0 0 0 ...
 $ likes                : int  0 0 0 0 0 0 0 0 0 0 ...
 $ likes_received       : int  0 0 0 0 0 0 0 0 0 0 ...
 $ mobile_likes         : int  0 0 0 0 0 0 0 0 0 0 ...
 $ mobile_likes_received: int  0 0 0 0 0 0 0 0 0 0 ...
 $ www_likes            : int  0 0 0 0 0 0 0 0 0 0 ...
 $ www_likes_received   : int  0 0 0 0 0 0 0 0 0 0 ...
 - attr(*, "groups")=Classes ‘tbl_df’, ‘tbl’ and 'data.frame':  12 obs. of  2 variables:
  ..$ dob_month: int  1 2 3 4 5 6 7 8 9 10 ...
  ..$ .rows    :List of 12
  .. ..$ : int  7 8 9 32 33 34 35 36 74 75 ...
  .. ..$ : int  10 11 12 37 38 39 40 81 82 83 ...
  .. ..$ : int  13 14 15 41 42 43 44 45 46 86 ...
  .. ..$ : int  16 47 48 49 50 91 92 93 94 128 ...
  .. ..$ : int  17 18 19 51 52 53 95 96 97 98 ...
  .. ..$ : int  54 55 99 100 101 135 136 137 180 181 ...
  .. ..$ : int  56 57 58 59 102 103 104 138 139 140 ...
  .. ..$ : int  20 105 106 107 108 109 141 142 143 144 ...
  .. ..$ : int  21 22 23 60 61 62 110 148 149 190 ...
  .. ..$ : int  63 64 65 66 67 111 112 150 151 152 ...
  .. ..$ : int  1 2 3 24 25 26 27 28 68 113 ...
  .. ..$ : int  4 5 6 29 30 31 69 70 71 72 ...
  ..- attr(*, ".drop")= logi TRUE

Pentru fiecare valoare a dob_month calculati pentru variabilele likes, mobile_likes si www_likes valoare medie, mediana, abaterea medie patratica, suma si numarul de observatii.

pf_luna_statistici <- summarise(pf_luna,
                     MedieLikes=mean(likes),
                     MedieMobile_likes=mean(mobile_likes),
                     MedieWWW_likes=mean(www_likes),
                     MedianaLikes=median(likes),
                     MedianaMobile_likes=median(mobile_likes),
                     MedianaWWW_likes=median(www_likes),
                     StDevLikes=sd(likes),
                     StDevMobile_likes=sd(mobile_likes),
                     StDevWWW_likes=sd(www_likes),
                     SumaLikes=sum(likes),
                     SumaMobile_likes=sum(mobile_likes),
                     SumaWWW_likes=sum(www_likes),
                     N=n())

Reprezentati mediile celor 3 variabile ca si linii poligonale.

library(ggplot2)
ggplot(aes(x=dob_month), data=pf_luna_statistici)+
  geom_line(aes(y=MedieLikes, color=I('coral')))+
  geom_line(aes(y=MedieMobile_likes, color='blue'))+
  geom_line(aes(y=MedieWWW_likes, color='green'))

Reprezentati medianele celor 3 variabile ca si linii poligonale.

ggplot(aes(x=dob_month), data=pf_luna_statistici)+
  geom_line(aes(y=MedianaLikes, color=I('coral')))+
  geom_line(aes(y=MedianaMobile_likes, color='blue'))+
  geom_line(aes(y=MedianaWWW_likes, color='green'))

Grupati datele din pf in functie de tenure.

pf_tenure <- group_by(pf, tenure)
str(pf_tenure)
Classes ‘grouped_df’, ‘tbl_df’, ‘tbl’ and 'data.frame': 99003 obs. of  15 variables:
 $ userid               : int  2094382 1192601 2083884 1203168 1733186 1524765 1136133 1680361 1365174 1712567 ...
 $ age                  : int  14 14 14 14 14 14 13 13 13 13 ...
 $ dob_day              : int  19 2 16 25 4 1 14 4 1 2 ...
 $ dob_year             : int  1999 1999 1999 1999 1999 1999 2000 2000 2000 2000 ...
 $ dob_month            : int  11 11 11 12 12 12 1 1 1 2 ...
 $ gender               : Factor w/ 2 levels "female","male": 2 1 2 1 2 2 2 1 2 2 ...
 $ tenure               : int  266 6 13 93 82 15 12 0 81 171 ...
 $ friend_count         : int  0 0 0 0 0 0 0 0 0 0 ...
 $ friendships_initiated: int  0 0 0 0 0 0 0 0 0 0 ...
 $ likes                : int  0 0 0 0 0 0 0 0 0 0 ...
 $ likes_received       : int  0 0 0 0 0 0 0 0 0 0 ...
 $ mobile_likes         : int  0 0 0 0 0 0 0 0 0 0 ...
 $ mobile_likes_received: int  0 0 0 0 0 0 0 0 0 0 ...
 $ www_likes            : int  0 0 0 0 0 0 0 0 0 0 ...
 $ www_likes_received   : int  0 0 0 0 0 0 0 0 0 0 ...
 - attr(*, "groups")=Classes ‘tbl_df’, ‘tbl’ and 'data.frame':  2427 obs. of  2 variables:
  ..$ tenure: int  0 1 2 3 4 5 6 7 8 9 ...
  ..$ .rows :List of 2427
  .. ..$ : int  8 15 23 28 46 53 55 122 164 165 ...
  .. ..$ : int  200 240 255 276 407 476 548 613 798 799 ...
  .. ..$ : int  134 168 277 459 594 623 667 710 939 1188 ...
  .. ..$ : int  85 94 153 384 501 691 813 868 1051 1087 ...
  .. ..$ : int  19 67 104 279 302 350 382 403 538 675 ...
  .. ..$ : int  140 147 209 340 364 478 500 669 814 817 ...
  .. ..$ : int  2 59 80 215 218 253 356 556 943 969 ...
  .. ..$ : int  66 93 194 234 258 374 670 696 734 758 ...
  .. ..$ : int  383 529 661 779 815 906 1202 1286 1511 1548 ...
  .. ..$ : int  20 21 90 137 449 539 543 668 697 773 ...
  .. ..$ : int  22 79 205 219 268 625 717 764 789 1118 ...
  .. ..$ : int  52 109 248 307 348 405 580 589 748 759 ...
  .. ..$ : int  7 58 115 176 363 394 557 862 1048 1160 ...
  .. ..$ : int  3 39 171 208 210 214 249 519 547 959 ...
  .. ..$ : int  62 101 175 182 188 189 190 238 269 666 ...
  .. ..$ : int  6 33 157 244 324 587 665 786 935 1147 ...
  .. ..$ : int  16 239 296 304 513 624 676 752 757 825 ...
  .. ..$ : int  31 73 270 555 662 716 994 1020 1098 1099 ...
  .. ..$ : int  57 111 204 237 609 610 689 730 911 1041 ...
  .. ..$ : int  163 254 368 418 436 658 761 927 1153 1626 ...
  .. ..$ : int  68 103 198 223 283 445 690 833 1150 1198 ...
  .. ..$ : int  45 98 113 131 233 537 572 611 654 656 ...
  .. ..$ : int  49 71 108 117 247 252 536 588 657 803 ...
  .. ..$ : int  44 92 207 224 271 380 417 484 553 574 ...
  .. ..$ : int  29 61 89 152 245 261 416 422 423 435 ...
  .. ..$ : int  18 78 162 373 652 1072 1324 1382 1477 1485 ...
  .. ..$ : int  114 246 339 377 444 673 1570 1827 1842 2086 ...
  .. ..$ : int  65 100 112 228 282 310 335 475 521 528 ...
  .. ..$ : int  26 546 600 905 1583 1764 1780 1996 2051 2109 ...
  .. ..$ : int  120 124 191 763 899 1277 1328 1711 1736 1762 ...
  .. ..$ : int  50 72 838 1240 1840 2516 3689 3736 4560 4867 ...
  .. ..$ : int  130 796 1082 1713 1888 2380 2632 3267 3268 3710 ...
  .. ..$ : int  672 1010 1597 1789 2931 3341 3534 3772 3797 4143 ...
  .. ..$ : int  197 311 653 655 989 1097 1631 1723 2235 2272 ...
  .. ..$ : int  17 70 474 1023 1908 2000 2408 2534 2545 3498 ...
  .. ..$ : int  729 1581 1939 2972 2987 3416 3443 3593 3774 3808 ...
  .. ..$ : int  178 1156 2096 3326 3866 4232 4325 5263 5363 5592 ...
  .. ..$ : int  110 1148 1253 1510 1925 1956 2031 2117 2131 3763 ...
  .. ..$ : int  232 725 1390 2147 2187 2861 3431 3500 3656 4811 ...
  .. ..$ : int  199 512 944 982 1146 1818 1889 2430 3233 3305 ...
  .. ..$ : int  492 622 682 1222 1732 1741 2793 2899 3062 3987 ...
  .. ..$ : int  30 842 1187 1329 1440 1457 1466 1771 2132 2236 ...
  .. ..$ : int  315 1689 1778 1951 2036 2102 2821 3207 3408 4207 ...
  .. ..$ : int  1295 1502 2410 2522 3175 4740 4781 5100 5673 6249 ...
  .. ..$ : int  782 987 1788 1850 2511 2807 3631 4895 5759 5772 ...
  .. ..$ : int  88 316 647 1730 2282 2634 3022 3093 3533 4617 ...
  .. ..$ : int  415 931 1986 3299 4957 5533 5562 5582 6017 6154 ...
  .. ..$ : int  1331 2326 3336 3417 3423 4634 4821 4850 6287 6460 ...
  .. ..$ : int  275 1001 1959 4755 4958 5418 5736 6451 6752 6958 ...
  .. ..$ : int  369 1204 1261 1569 2920 3274 3524 3969 4178 4682 ...
  .. ..$ : int  458 769 794 1435 1561 2409 2486 3316 3598 3790 ...
  .. ..$ : int  193 319 651 705 1621 3258 3451 4157 4546 5462 ...
  .. ..$ : int  27 139 490 1149 1275 1282 1970 1984 2191 2431 ...
  .. ..$ : int  146 747 1037 1047 1101 1758 1800 1834 1918 3184 ...
  .. ..$ : int  893 947 972 1682 2054 2069 3046 3495 3927 4635 ...
  .. ..$ : int  12 485 1336 1367 1943 3250 3475 3756 4084 4625 ...
  .. ..$ : int  97 988 2224 3433 4739 4832 4983 5274 5800 6935 ...
  .. ..$ : int  1521 1961 2042 2162 2325 2597 2859 3297 3617 3670 ...
  .. ..$ : int  323 334 567 593 695 770 1409 1763 2168 2321 ...
  .. ..$ : int  649 1210 1479 1578 1787 2242 2320 3519 4406 4862 ...
  .. ..$ : int  1002 2897 2959 3464 3724 4846 4859 4901 5338 5749 ...
  .. ..$ : int  14 608 646 1974 1988 2463 3115 3390 3740 3865 ...
  .. ..$ : int  286 1378 2019 2095 2133 2815 2956 3372 3624 3704 ...
  .. ..$ : int  99 585 732 1243 1819 3273 3611 4562 5025 5855 ...
  .. ..$ : int  159 1346 1838 1862 4414 5139 5322 5794 5956 6308 ...
  .. ..$ : int  1233 3234 3558 3902 4571 5624 6057 6209 6872 8189 ...
  .. ..$ : int  129 362 442 579 648 872 1465 1719 1772 1774 ...
  .. ..$ : int  54 491 746 824 2304 3565 4598 5113 5408 5599 ...
  .. ..$ : int  507 1323 1405 1629 2776 3132 3411 3771 3810 4645 ...
  .. ..$ : int  443 3714 3882 4471 4756 5290 5652 5835 6804 8096 ...
  .. ..$ : int  599 860 2849 2919 2962 3781 4279 4440 4790 7085 ...
  .. ..$ : int  121 518 535 762 919 2108 2353 3777 4664 5194 ...
  .. ..$ : int  964 1345 2142 2689 3532 3741 3852 4620 7064 7127 ...
  .. ..$ : int  102 650 1411 1680 1809 1999 2369 4751 4863 4911 ...
  .. ..$ : int  1080 1320 1468 1872 2576 3036 4314 4885 5097 5392 ...
  .. ..$ : int  322 724 898 4037 4388 4814 5622 5679 5795 5898 ...
  .. ..$ : int  421 778 1086 1770 3229 3371 3768 4058 4489 5497 ...
  .. ..$ : int  687 1403 1534 1814 2752 3785 4657 6264 7056 7196 ...
  .. ..$ : int  920 1102 1993 2754 2985 4512 4691 4752 5768 6370 ...
  .. ..$ : int  341 728 1473 2742 3514 3784 3947 4951 5410 5430 ...
  .. ..$ : int  156 251 473 1767 1935 2465 2657 3567 3800 6388 ...
  .. ..$ : int  9 151 170 2533 3757 4918 5145 5632 6090 6190 ...
  .. ..$ : int  5 2446 3334 4393 4502 4588 4927 5720 6926 7232 ...
  .. ..$ : int  1522 1614 1704 3655 3792 3820 4877 4923 5541 6260 ...
  .. ..$ : int  64 542 1384 2038 2901 2966 3663 4276 4683 5257 ...
  .. ..$ : int  785 1128 1344 1416 2346 3059 3162 3331 3509 3692 ...
  .. ..$ : int  856 1251 1812 2148 2652 3283 3329 3590 5284 5742 ...
  .. ..$ : int  2041 2200 2766 3298 3946 4233 6899 7481 7823 8750 ...
  .. ..$ : int  2025 2037 2697 3085 3313 5013 5359 6512 6627 7506 ...
  .. ..$ : int  96 472 768 1265 2167 2909 3291 3783 4017 4552 ...
  .. ..$ : int  83 1058 1124 1155 1606 1948 2175 3842 5289 5787 ...
  .. ..$ : int  806 1783 3471 4376 4590 4729 4797 4813 4972 5402 ...
  .. ..$ : int  1448 2450 3109 3531 3677 4788 5366 5577 5676 5852 ...
  .. ..$ : int  4 56 1017 1246 1374 1725 2803 3024 4155 4505 ...
  .. ..$ : int  482 950 1338 1793 1848 1891 2210 5268 6189 6304 ...
  .. ..$ : int  483 965 1574 1615 1964 2339 2656 3212 3383 3713 ...
  .. ..$ : int  262 645 1901 2896 2995 3145 4508 4909 5431 5750 ...
  .. ..$ : int  784 3712 7322 7743 9479 9585 9597 10224 10599 11348 ...
  .. ..$ : int  11 24 1284 1582 2053 2460 4527 4538 4636 5012 ...
  .. .. [list output truncated]
  ..- attr(*, ".drop")= logi TRUE
pf_tenure_statistici <- summarise(pf_tenure,
                     MedieLikes=mean(likes),
                     MedieMobile_likes=mean(mobile_likes),
                     MedieWWW_likes=mean(www_likes),
                     MedianaLikes=median(likes),
                     MedianaMobile_likes=median(mobile_likes),
                     MedianaWWW_likes=median(www_likes),
                     StDevLikes=sd(likes),
                     StDevMobile_likes=sd(mobile_likes),
                     StDevWWW_likes=sd(www_likes),
                     SumaLikes=sum(likes),
                     SumaMobile_likes=sum(mobile_likes),
                     SumaWWW_likes=sum(www_likes),
                     N=n())

Reprezentati mediile celor 3 variabile ca si linii poligonale.

ggplot(aes(x=tenure), data=pf_tenure_statistici)+
  geom_line(aes(y=MedieLikes, color=I('coral')))+
  geom_line(aes(y=MedieMobile_likes, color='blue'))+
  geom_line(aes(y=MedieWWW_likes, color='green'))

LS0tDQp0aXRsZTogIlNlbWluYXIgNCAtIGRpbWluZWF0YSINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCmBgYHtyfQ0Kc2V0d2QoIkU6L0Ryb3Bib3ggKFBlcnNvbmFsKS9GU0VHQS9jdXJzdXJpLzIwMTgtMjAxOS9SL2N1cnN1cmkiKQ0KcGYgPC0gcmVhZC5jc3YoJ3BzZXVkb19mYWNlYm9vay50c3YnLHNlcD0nXHQnKQ0KYGBgDQoNCkdydXBhdGkgZGF0ZWxlIGRpbiBwZiBpbiBmdW5jdGllIGRlIGRvYl9tb250aC4NCg0KYGBge3J9DQpsaWJyYXJ5KGRwbHlyKQ0KYGBgDQoNCmBgYHtyfQ0KcGZfbHVuYSA8LSBncm91cF9ieShwZiwgZG9iX21vbnRoKQ0Kc3RyKHBmX2x1bmEpDQpgYGANCg0KUGVudHJ1IGZpZWNhcmUgdmFsb2FyZSBhIGRvYl9tb250aCBjYWxjdWxhdGkgcGVudHJ1IHZhcmlhYmlsZWxlIGxpa2VzLCBtb2JpbGVfbGlrZXMgc2kgd3d3X2xpa2VzIHZhbG9hcmUgbWVkaWUsIG1lZGlhbmEsIGFiYXRlcmVhIG1lZGllIHBhdHJhdGljYSwgc3VtYSBzaSBudW1hcnVsIGRlIG9ic2VydmF0aWkuDQoNCmBgYHtyfQ0KcGZfbHVuYV9zdGF0aXN0aWNpIDwtIHN1bW1hcmlzZShwZl9sdW5hLA0KICAgICAgICAgICAgICAgICAgICAgTWVkaWVMaWtlcz1tZWFuKGxpa2VzKSwNCiAgICAgICAgICAgICAgICAgICAgIE1lZGllTW9iaWxlX2xpa2VzPW1lYW4obW9iaWxlX2xpa2VzKSwNCiAgICAgICAgICAgICAgICAgICAgIE1lZGllV1dXX2xpa2VzPW1lYW4od3d3X2xpa2VzKSwNCiAgICAgICAgICAgICAgICAgICAgIE1lZGlhbmFMaWtlcz1tZWRpYW4obGlrZXMpLA0KICAgICAgICAgICAgICAgICAgICAgTWVkaWFuYU1vYmlsZV9saWtlcz1tZWRpYW4obW9iaWxlX2xpa2VzKSwNCiAgICAgICAgICAgICAgICAgICAgIE1lZGlhbmFXV1dfbGlrZXM9bWVkaWFuKHd3d19saWtlcyksDQogICAgICAgICAgICAgICAgICAgICBTdERldkxpa2VzPXNkKGxpa2VzKSwNCiAgICAgICAgICAgICAgICAgICAgIFN0RGV2TW9iaWxlX2xpa2VzPXNkKG1vYmlsZV9saWtlcyksDQogICAgICAgICAgICAgICAgICAgICBTdERldldXV19saWtlcz1zZCh3d3dfbGlrZXMpLA0KICAgICAgICAgICAgICAgICAgICAgU3VtYUxpa2VzPXN1bShsaWtlcyksDQogICAgICAgICAgICAgICAgICAgICBTdW1hTW9iaWxlX2xpa2VzPXN1bShtb2JpbGVfbGlrZXMpLA0KICAgICAgICAgICAgICAgICAgICAgU3VtYVdXV19saWtlcz1zdW0od3d3X2xpa2VzKSwNCiAgICAgICAgICAgICAgICAgICAgIE49bigpKQ0KDQpgYGANCg0KUmVwcmV6ZW50YXRpIG1lZGlpbGUgY2Vsb3IgMyB2YXJpYWJpbGUgY2Egc2kgbGluaWkgcG9saWdvbmFsZS4NCg0KYGBge3J9DQpsaWJyYXJ5KGdncGxvdDIpDQpgYGANCg0KDQpgYGB7cn0NCmdncGxvdChhZXMoeD1kb2JfbW9udGgpLCBkYXRhPXBmX2x1bmFfc3RhdGlzdGljaSkrDQogIGdlb21fbGluZShhZXMoeT1NZWRpZUxpa2VzLCBjb2xvcj1JKCdjb3JhbCcpKSkrDQogIGdlb21fbGluZShhZXMoeT1NZWRpZU1vYmlsZV9saWtlcywgY29sb3I9J2JsdWUnKSkrDQogIGdlb21fbGluZShhZXMoeT1NZWRpZVdXV19saWtlcywgY29sb3I9J2dyZWVuJykpDQpgYGANClJlcHJlemVudGF0aSBtZWRpYW5lbGUgY2Vsb3IgMyB2YXJpYWJpbGUgY2Egc2kgbGluaWkgcG9saWdvbmFsZS4NCg0KDQpgYGB7cn0NCmdncGxvdChhZXMoeD1kb2JfbW9udGgpLCBkYXRhPXBmX2x1bmFfc3RhdGlzdGljaSkrDQogIGdlb21fbGluZShhZXMoeT1NZWRpYW5hTGlrZXMsIGNvbG9yPUkoJ2NvcmFsJykpKSsNCiAgZ2VvbV9saW5lKGFlcyh5PU1lZGlhbmFNb2JpbGVfbGlrZXMsIGNvbG9yPSdibHVlJykpKw0KICBnZW9tX2xpbmUoYWVzKHk9TWVkaWFuYVdXV19saWtlcywgY29sb3I9J2dyZWVuJykpDQpgYGANCg0KDQpHcnVwYXRpIGRhdGVsZSBkaW4gcGYgaW4gZnVuY3RpZSBkZSB0ZW51cmUuDQoNCmBgYHtyfQ0KcGZfdGVudXJlIDwtIGdyb3VwX2J5KHBmLCB0ZW51cmUpDQpzdHIocGZfdGVudXJlKQ0KYGBgDQoNCg0KYGBge3J9DQpwZl90ZW51cmVfc3RhdGlzdGljaSA8LSBzdW1tYXJpc2UocGZfdGVudXJlLA0KICAgICAgICAgICAgICAgICAgICAgTWVkaWVMaWtlcz1tZWFuKGxpa2VzKSwNCiAgICAgICAgICAgICAgICAgICAgIE1lZGllTW9iaWxlX2xpa2VzPW1lYW4obW9iaWxlX2xpa2VzKSwNCiAgICAgICAgICAgICAgICAgICAgIE1lZGllV1dXX2xpa2VzPW1lYW4od3d3X2xpa2VzKSwNCiAgICAgICAgICAgICAgICAgICAgIE1lZGlhbmFMaWtlcz1tZWRpYW4obGlrZXMpLA0KICAgICAgICAgICAgICAgICAgICAgTWVkaWFuYU1vYmlsZV9saWtlcz1tZWRpYW4obW9iaWxlX2xpa2VzKSwNCiAgICAgICAgICAgICAgICAgICAgIE1lZGlhbmFXV1dfbGlrZXM9bWVkaWFuKHd3d19saWtlcyksDQogICAgICAgICAgICAgICAgICAgICBTdERldkxpa2VzPXNkKGxpa2VzKSwNCiAgICAgICAgICAgICAgICAgICAgIFN0RGV2TW9iaWxlX2xpa2VzPXNkKG1vYmlsZV9saWtlcyksDQogICAgICAgICAgICAgICAgICAgICBTdERldldXV19saWtlcz1zZCh3d3dfbGlrZXMpLA0KICAgICAgICAgICAgICAgICAgICAgU3VtYUxpa2VzPXN1bShsaWtlcyksDQogICAgICAgICAgICAgICAgICAgICBTdW1hTW9iaWxlX2xpa2VzPXN1bShtb2JpbGVfbGlrZXMpLA0KICAgICAgICAgICAgICAgICAgICAgU3VtYVdXV19saWtlcz1zdW0od3d3X2xpa2VzKSwNCiAgICAgICAgICAgICAgICAgICAgIE49bigpKQ0KDQpgYGANCg0KDQpSZXByZXplbnRhdGkgbWVkaWlsZSBjZWxvciAzIHZhcmlhYmlsZSBjYSBzaSBsaW5paSBwb2xpZ29uYWxlLg0KDQoNCmBgYHtyfQ0KZ2dwbG90KGFlcyh4PXRlbnVyZSksIGRhdGE9cGZfdGVudXJlX3N0YXRpc3RpY2kpKw0KICBnZW9tX2xpbmUoYWVzKHk9TWVkaWVMaWtlcywgY29sb3I9SSgnY29yYWwnKSkpKw0KICBnZW9tX2xpbmUoYWVzKHk9TWVkaWVNb2JpbGVfbGlrZXMsIGNvbG9yPSdibHVlJykpKw0KICBnZW9tX2xpbmUoYWVzKHk9TWVkaWVXV1dfbGlrZXMsIGNvbG9yPSdncmVlbicpKQ0KYGBgDQo=