11c606a6 (kx 2023-04-11 01:18:34 +0300 1)
11c606a6 (kx 2023-04-11 01:18:34 +0300 2) /**********************************************************************
11c606a6 (kx 2023-04-11 01:18:34 +0300 3)
11c606a6 (kx 2023-04-11 01:18:34 +0300 4) Copyright 2019 Andrey V.Kosteltsev
11c606a6 (kx 2023-04-11 01:18:34 +0300 5)
11c606a6 (kx 2023-04-11 01:18:34 +0300 6) Licensed under the Radix.pro License, Version 1.0 (the "License");
11c606a6 (kx 2023-04-11 01:18:34 +0300 7) you may not use this file except in compliance with the License.
11c606a6 (kx 2023-04-11 01:18:34 +0300 8) You may obtain a copy of the License at
11c606a6 (kx 2023-04-11 01:18:34 +0300 9)
11c606a6 (kx 2023-04-11 01:18:34 +0300 10) https://radix.pro/licenses/LICENSE-1.0-en_US.txt
11c606a6 (kx 2023-04-11 01:18:34 +0300 11)
11c606a6 (kx 2023-04-11 01:18:34 +0300 12) Unless required by applicable law or agreed to in writing, software
11c606a6 (kx 2023-04-11 01:18:34 +0300 13) distributed under the License is distributed on an "AS IS" BASIS,
11c606a6 (kx 2023-04-11 01:18:34 +0300 14) WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
11c606a6 (kx 2023-04-11 01:18:34 +0300 15) implied.
11c606a6 (kx 2023-04-11 01:18:34 +0300 16)
11c606a6 (kx 2023-04-11 01:18:34 +0300 17) **********************************************************************/
11c606a6 (kx 2023-04-11 01:18:34 +0300 18)
11c606a6 (kx 2023-04-11 01:18:34 +0300 19) static void print_tree_html( FILE *output )
11c606a6 (kx 2023-04-11 01:18:34 +0300 20) {
11c606a6 (kx 2023-04-11 01:18:34 +0300 21) time_t t = time( NULL );
11c606a6 (kx 2023-04-11 01:18:34 +0300 22) struct tm tm = *localtime(&t);
11c606a6 (kx 2023-04-11 01:18:34 +0300 23)
11c606a6 (kx 2023-04-11 01:18:34 +0300 24) if( !output ) return;
11c606a6 (kx 2023-04-11 01:18:34 +0300 25)
11c606a6 (kx 2023-04-11 01:18:34 +0300 26) fprintf( output, "<!DOCTYPE html>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 27) fprintf( output, "<html>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 28) fprintf( output, " <head>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 29) fprintf( output, " <meta charset=\"utf-8\">\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 30) fprintf( output, " <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 31) fprintf( output, " <meta name=\"owner\" content=\"Andrey V.Kosteltsev\">\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 32) fprintf( output, " <meta name=\"author\" content=\"Andrey V.Kosteltsev\">\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 33) fprintf( output, " <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 34) fprintf( output, " <meta http-equiv=\"Content-script-type\" content=\"text/javascript\">\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 35) fprintf( output, " <meta http-equiv=\"Content-Style-Type\" content=\"text/css\">\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 36) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 37) fprintf( output, " <link href=\"data:image/x-icon;base64," );
11c606a6 (kx 2023-04-11 01:18:34 +0300 38) fprintf( output, "AAABAAMAMDAAAAEAIACoJQAANgAAACAgAAABACAAqBAAAN4lAAAQEAAAAQAgAGgEAACGNgAAKAAA" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 39) fprintf( output, "ADAAAABgAAAAAQAgAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKysrKyuP" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 40) fprintf( output, "Kysr2SsrK/grKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 41) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 42) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr+CsrK9krKyuPKysrKwAAAAAAAAAAAAAA" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 43) fprintf( output, "AAAAAAArKysDKysrWSsrK9krKyv+Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 44) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 45) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 46) fprintf( output, "K/8rKyv+Kysr2SsrK1krKysDAAAAAAAAAAArKytZKysr7isrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 47) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 48) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 49) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK+4rKytZAAAAACsrKywrKyvYKysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 50) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 51) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 52) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 53) fprintf( output, "KyvYKysrLCsrK48rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 54) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 55) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 56) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/KysrjysrK9grKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 57) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 58) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 59) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr2CsrK/crKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 60) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 61) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Ly8v/zIzM/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 62) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 63) fprintf( output, "/ysrK/8rKyv/Kysr9ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 64) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ykpKf8oKCj/KCgo/ykpKf8rKyv/cnh4/1NWVv8mJib/KCgo/ykpKf8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 65) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kioq/ygo" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 66) fprintf( output, "KP8oKCj/KSgo/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 67) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/LS0t/05QUf9YW1v/WFtc/0VHSP9UV1f/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 68) fprintf( output, "ho2O/0hKSv9YW1z/V1tb/1FUVP8vLy//Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 69) fprintf( output, "Kyv/Kysr/ysrK/8qKir/PT8//1daW/9XW1v/VFdX/zMzM/8rKyr/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 70) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8pKCj/W15f" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 71) fprintf( output, "/9Lf4f/g7e//2ebo/3h+f/+LkpP/RUdH/1NWV//N2dv/4e7w/9nm6P9xdnf/KSkp/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 72) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/yoqKv8zNDT/p7Cy/+Hu8P/h7/H/p7Cx/zQ0NP8q" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 73) fprintf( output, "Kir/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 74) fprintf( output, "K/8rKyv/Kysr/yoqKv85Ojr/t8HD/+r4+v/q+Pr/pa6v/3uBgv9qb2//KSkp/ysrK/98goP/5PHz" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 75) fprintf( output, "/+r4+v/P3N3/UVRU/ykpKf8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ykpKf94fn//" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 76) fprintf( output, "5PLz/+n4+v/U4eP/U1dX/ykpKf8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 77) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/+GjI3/5vT2/+n3+f/M2Nr/cHV2/4aN" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 78) fprintf( output, "jv8yMjL/Kioq/yoqKv8xMjL/n6ip/+n3+f/p+Pr/tL7A/zo7O/8qKir/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 79) fprintf( output, "/ysrK/8rKyv/KSkp/0xOT//O2tz/6ff5/+b09v+BiIn/Kioq/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 80) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/KSgo/1ZZWf/W" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 81) fprintf( output, "4uT/6ff5/+Px8/+BiIj/iZCR/0pNTf8pKSn/Kysr/ysrK/8pKSn/QUND/7/Ky//q+Pr/5/X3/5GZ" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 82) fprintf( output, "mv8tLi7/Kysr/ysrK/8rKyv/Kysr/ysrK/8qKir/MjIy/6avsP/p9/n/6fj6/7K8vv83ODj/Kioq" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 83) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 84) fprintf( output, "Kysr/ysrK/8qKir/Njc3/7G7vf/p+Pr/6fj6/6mytP94fn//bnN0/ykpKf8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 85) fprintf( output, "Kyv/KSgo/1teX//W4+T/6ff5/9/s7v9scXL/KSkp/ysrK/8rKyv/Kysr/ysrK/8pKSn/dHl6/+Pw" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 86) fprintf( output, "8v/p9/n/1uPl/1ZaWv8pKCj/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 87) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8qKir/f4aG/+Xz9f/p9/n/z9vd/3B1dv+Ij5D/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 88) fprintf( output, "NDQ0/yoqKv8rKyv/Kysr/ysrK/8rKyv/Kysr/yoqKv98goP/4/Hz/+n4+v/M2Nr/TVBQ/ykpKf8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 89) fprintf( output, "Kyv/Kysr/ykpKf9JS0z/zNjZ/+n3+f/m9Pb/hoyN/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 90) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ykpKf9RVFT/0t/h" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 91) fprintf( output, "/+n3+f/k8vT/hIuM/4iPkP9OUVH/KSkp/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/yoqKv8xMjL/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 92) fprintf( output, "n6ip/+n3+f/p+Pr/sLq7/zg5Of8qKir/Kioq/zExMf+iq6z/6ff5/+n4+v+2wML/OTo6/yoqKv8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 93) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 94) fprintf( output, "K/8rKyv/Kioq/zQ0Nf+stbb/6fj6/+n4+v+tt7j/dnt8/3F3d/8qKir/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 95) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8pKSn/QUND/7/KzP/q+Pr/5/T2/4yUlf8tLS3/KSgo/3B1dv/h7/H/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 96) fprintf( output, "6ff5/9jl5/9aXV7/KSgo/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 97) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/KSkp/3l/gP/k8vT/6ff5/9Lf4P9wdXb/ipGS/0JE" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 98) fprintf( output, "RP8qKir/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/KSgo/1tfX//W4+X/6fj6" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 99) fprintf( output, "/93q7P9mamv/REZH/8nV1v/p9/n/5/X3/4qRkv8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 100) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8pKSn/TE9P/8/b3f/p" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 101) fprintf( output, "9/n/5fP1/4eOj/+Ei4z/b3R1/7G7vP9obW7/Kioq/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 102) fprintf( output, "K/8rKyv/Kysr/yoqKv98goP/5PHz/+b09v9+hYX/nKSm/+n3+f/p+Pr/usTG/zs8PP8qKir/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 103) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 104) fprintf( output, "Kysr/yoqKv8zNDT/qLGy/+v6/P/r+fv/sbu9/3N4ef97gYL/n6ip/+v5+//V4eP/XmJj/ykpKf8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 105) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/yoqKv8yMjL/oaqr/6q0tf92fH3/3+3v/+n3" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 106) fprintf( output, "+f/a5+n/XWFi/ykoKP8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 107) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ykpKf9dYWL/w87Q/8nV1/++ycv/b3R1/4qRkv99hIX/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 108) fprintf( output, "4O3v/+j2+P/q+Pr/ws3P/0BCQv8qKSn/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8q" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 109) fprintf( output, "KSn/PD09/1tfX//E0NL/6ff5/+j2+P+OlZb/LCws/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 110) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/80NTX/PD09" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 111) fprintf( output, "/zs8PP88PT3/hIuM/2BkZP+zvb7/6vn7/+f19//n9ff/6Pb4/4mQkf8qKir/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 112) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/LS0t/5mhov/p9/n/6fj6/7vGyP86Ozv/Jycn/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 113) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 114) fprintf( output, "K/8rKyv/Kysr/ysrK/8qKir/Kioq/ygnJ/9iZmf/e4GC/ysrK/9iZmf/2OTm/+j2+P/n9ff/6ff5" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 115) fprintf( output, "/8jU1f8+QED/Kioq/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8pKCj/aGxt/9/s7v/p9/n/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 116) fprintf( output, "2+jq/32Dg/9yd3j/VVhZ/ywsLP8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 117) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kikp/0BCQv+OlZb/Ozw8/yoq" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 118) fprintf( output, "Kv8qKir/j5eY/+j2+P/n9ff/5/X3/+Pw8v9kaGn/KCgo/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 119) fprintf( output, "/ykpKf9BQ0P/w87Q/+n3+v/n9ff/oqqs/7vGyP/p9/n/0t7g/1JUVf8pKSn/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 120) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 121) fprintf( output, "Kyv/LS0t/4GHiP9bX1//KSgo/ysrK/8pKCj/UVRV/9rn6f/o9vj/5/X3/+n3+f+GjY7/KCgo/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 122) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/y0uLv+Wnp//6Pb4/+n4+v++ycv/XmFi/9fk5v/q+Pr/5/X3" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 123) fprintf( output, "/2lub/8nJyf/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 124) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8pKCj/XmJj/3+Fhv8sLS3/Kysr/ysrK/8qKir/Ojs7/8fS1P/p" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 125) fprintf( output, "9/n/5/X3/+r4+v+ZoqP/Kioq/ysrK/8rKyv/Kysr/ysrK/8rKyv/KSgo/2Roaf/d6uz/6ff5/93r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 126) fprintf( output, "7f9kaWn/Ly8v/5ObnP/T3+H/s72//4qRkv9eYmP/KSkp/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 127) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/yoqKv89Pz//jpWW/z4/QP8qKir/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 128) fprintf( output, "Kysr/ysrK/8qKir/Nzg4/8LOz//p9/n/5/X3/+r4+/+dpab/Kysr/ysrK/8rKyv/Kysr/ysrK/8q" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 129) fprintf( output, "KSn/P0BA/8DLzP/p+Pr/6Pb4/5aen/8uLi7/Kioq/y8wMP9NUFD/o6yt/+Px8//I09X/SEpK/ykp" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 130) fprintf( output, "Kf8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 131) fprintf( output, "/ywsLP9+hIX/X2Nk/ykoKP8rKyv/Kysr/ysrK/8pKSn/REZG/9He3//o9vn/5/X3/+r4+v+Ql5n/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 132) fprintf( output, "KSkp/ysrK/8rKyv/Kysr/ysrK/8tLS3/kZma/+j2+P/p9/n/w8/Q/0FDQ/8pKSn/Kysr/yoqKv8y" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 133) fprintf( output, "MzP/qLKz/+r4+v/p9/n/qrO0/zU2Nv8qKir/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 134) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/KSgo/1pdXv+CiIn/Li4u/ysrK/8rKyv/Kysr/ysrK/8oKCj/cHV2" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 135) fprintf( output, "/+Ty9P/n9ff/5/X3/+f19/9zeXn/KCgo/ysrK/8rKyv/Kysr/ykoKP9gZGX/2+nr/+n3+f/f7O7/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 136) fprintf( output, "aW1u/ykoKP8rKyv/Kysr/ysrK/8pKSn/R0lK/8bS1P/p+Pr/5vP1/4eOj/8sLCz/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 137) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8qKir/Ojs8/46Vlv9BQ0P/Kikp/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 138) fprintf( output, "K/8rKyv/Kysr/ykpKf8+QED/vsjK/+n3+f/n9ff/6Pb4/9fj5f9NT0//KSkp/ysrK/8rKyv/Kioq" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 139) fprintf( output, "/zw+Pv+8x8n/6fj6/+n3+f+ao6T/Li8v/ysrK/8rKyv/Kysr/ysrK/8rKyv/KSkp/2Roaf/b6Or/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 140) fprintf( output, "6ff5/9vo6v9kaWn/KSkp/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 141) fprintf( output, "Kyv/eoCB/2Roaf8pKSn/Kysr/yoqKv8pKSn/KCgo/z9AQP+mr7H/5/X4/+f19//n9ff/6vj6/6ew" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 142) fprintf( output, "sf8vLzD/Kysr/ysrK/8rKyv/LCws/42Vlv/n9ff/6ff5/8bS1P9ERkb/KSkp/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 143) fprintf( output, "/ysrK/8rKyv/Kysr/ywsLP+Hjo//5vP1/+n4+v/H09T/SEpK/ykpKf8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 144) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ykpKf9WWVn/hYyM/y8vL/8qKir/Li4u/zk6Ov9GSEn/cnh5/7/Ky//o" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 145) fprintf( output, "9vj/5/X3/+f19//o9vj/2ufp/1peXv8pKCj/Kysr/ysrK/8pKSn/XWFi/9rn6f/p9/r/4O7w/2xx" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 146) fprintf( output, "cv8pKSn/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/yoqKv81Njb/qrS1/+n3+f/p9/n/qrO0" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 147) fprintf( output, "/zU2Nv8qKir/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kioq/zg5Of+NlJX/RUdH/ykpKf8pKSn/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 148) fprintf( output, "TVBQ/77Jy//U4OL/5fP1/+n3+f/n9ff/5/X3/+j2+P/m9Pb/iZCR/ywsLP8rKyv/Kysr/yoqKv84" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 149) fprintf( output, "OTn/r7m6/9/t7//f7O7/nKSm/zAwMP8rKir/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 150) fprintf( output, "K/8pKSn/SUtL/8jT1f/p+Pr/5vP1/4eOj/8sLCz/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kioq" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 151) fprintf( output, "/3Z8ff9obW7/KSkp/ysrK/8oKCj/VVhZ/+Dt7//p9/n/5/X3/+f19//n9ff/6Pb4/+b09v+aoqT/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 152) fprintf( output, "NDU1/yoqKv8rKyv/Kysr/yoqKv80NDX/UlVV/1RXV/9TVlf/OTo6/yoqKv8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 153) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/KSkp/2Zqa//c6ev/6ff5/9vo6v9kaWn/KSkp/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 154) fprintf( output, "K/8rKyv/Kysr/ysrK/8pKSn/UVRV/4eOj/8xMTH/Kyoq/ysrK/8oKCj/VVhY/97r7f/o9vj/5/X3" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 155) fprintf( output, "/+j2+P/q+Pr/2ufp/4mQkf80NTX/Kioq/ysrK/8rKyv/Kysr/ysrK/8qKir/KSko/ykoKP8pKCj/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 156) fprintf( output, "Kioq/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ywsLP+J" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 157) fprintf( output, "kJH/5vT2/+n4+v/H09T/SEpK/ykpKf8rKyv/Kysr/yoqKv83ODj/jJSV/0hLS/8pKSn/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 158) fprintf( output, "K/8oKCj/VVlZ/+Hu8P/q+fv/5/X3/9fk5f+nsLL/Wl5e/ywsLP8qKir/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 159) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 160) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/yoqKv82Nzf/rLa3/+v6/P/s+/3/rbe4/zg5Of8qKir/Kysr/ykpKf9J" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 161) fprintf( output, "TEz/XmJj/yoqKv8rKyv/Kysr/ysrK/8pKSn/REZG/5Wcnv+QmJn/dHl6/01PUP8vMDD/KSgo/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 162) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 163) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8pKSn/SEpL/5Wdnv+bpKX/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 164) fprintf( output, "mKCh/09SUv8pKSn/Kysr/ysrK/8rKyv/Kioq/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/yoqKv8p" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 165) fprintf( output, "KSn/KCgo/ykpKf8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 166) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 167) fprintf( output, "/ysrK/8rKyv/Kioq/yoqKv8qKir/Kioq/ywsLP8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 168) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 169) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 170) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 171) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 172) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 173) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 174) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 175) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 176) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 177) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/krKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 178) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 179) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 180) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 181) fprintf( output, "Kyv/Kysr+SsrK9wrKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 182) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 183) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 184) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr3CsrK5crKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 185) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 186) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 187) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/KysrlysrKzQrKyve" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 188) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 189) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 190) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 191) fprintf( output, "/ysrK/8rKyveKysrNAAAAAArKytmKysr9CsrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 192) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 193) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 194) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/QrKytmAAAAAAAAAAArKysFKysraCsrK+QrKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 195) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 196) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 197) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr5CsrK2grKysFAAAAAAAA" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 198) fprintf( output, "AAAAAAAAKysrAisrKzorKyulKysr6ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 199) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 200) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK+sr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 201) fprintf( output, "KyulKysrOisrKwIAAAAAAAAAAPAAAAAADwAA4AAAAAAHAADAAAAAAAMAAIAAAAAAAQAAAAAAAAAA" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 202) fprintf( output, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 203) fprintf( output, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 204) fprintf( output, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 205) fprintf( output, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 206) fprintf( output, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 207) fprintf( output, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAEAAMAAAAAAAwAA4AAAAAAHAADwAAAA" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 208) fprintf( output, "AA8AACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrEisrK30r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 209) fprintf( output, "KyvcKysr/CsrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 210) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv8Kysr3CsrK30rKysSAAAA" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 211) fprintf( output, "ACsrKxIrKyueKysr+ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 212) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 213) fprintf( output, "Kyv/Kysr+ysrK54rKysSKysrfisrK/orKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 214) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 215) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr+isrK34rKyvbKysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 216) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kioq/yoqKv8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 217) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr2ysrK/srKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 218) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8pKSn/KSkp/ykpKf87PDz/Nzg4/ygoKP8pKSn/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 219) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8qKir/KSkp/ykpKf8rKyv/Kysr/ysrK/8rKyv7" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 220) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Li4u/0lMTP9QU1P/QUJD/21ycv9T" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 221) fprintf( output, "Vlb/UFNT/0JERP8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kioq/zY3N/9PUlL/TE5P/zAw" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 222) fprintf( output, "MP8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ygoKP9hZWb/1ODi" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 223) fprintf( output, "/8jU1f+Ahof/U1ZW/2NoaP/U4eP/xM/R/0pNTf8pKSn/Kysr/ysrK/8rKyv/Kysr/ysrK/8uLi7/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 224) fprintf( output, "lJyd/9/s7v+fp6n/MTIy/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8q" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 225) fprintf( output, "Kir/PT4+/73Iyv/o9vj/nKSl/2xxcf8uLi7/Li4u/5OanP/q+Pr/rLa3/zY3N/8qKir/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 226) fprintf( output, "K/8rKyv/KSgo/2Vqav/f7e//09/h/1BTU/8pKSn/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 227) fprintf( output, "/ysrK/8rKyv/Kysr/ywsLP+NlZb/6vj6/7rFxv96gIH/PkBA/yoqKv8qKir/Ojs7/7S+wP/o9/n/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 228) fprintf( output, "iI+Q/ywsLP8rKyv/Kysr/ykpKf8/QUH/wczO/+f19/99g4T/Kioq/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 229) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8oKCj/XGBg/9vo6v/X5Ob/h46P/1daW/8pKSn/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 230) fprintf( output, "K/8pKSn/UFNT/9Dc3v/d6uz/ZGhp/ykoKP8rKyv/LS0t/5ObnP/r+fv/r7i6/zU2Nv8qKir/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 231) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kioq/zk7O/+4w8T/6Pb4/52mp/9tcnL/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 232) fprintf( output, "LzAw/ysrK/8rKyv/Kysr/ysrK/8pKSn/b3R1/+Lv8f/H09X/R0lK/ycmJv9hZmb/3uvt/9Xh4/9T" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 233) fprintf( output, "Vlb/KSgo/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/h46P/+n3" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 234) fprintf( output, "+f+9yMn/fIKD/0pMTP8pKCj/Kysr/ysrK/8rKyv/Kysr/ysrK/8uLi7/kpqb/+r4+v+nsLH/RkhI" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 235) fprintf( output, "/73Iyv/o9vj/gYeI/yoqKv8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 236) fprintf( output, "KSkp/1hcXP/Z5uj/2ufp/4aNjv+DiYr/q7W2/05QUf8pKSn/Kysr/ysrK/8rKyv/Kysr/yoqKv86" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 237) fprintf( output, "Ozv/tsDC/7nExf+bo6T/6fj6/7K8vv83ODj/Kioq/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 238) fprintf( output, "K/8rKyv/Kysr/ysrK/8xMTH/mKCh/87a3P+ZoaL/fIKD/7bBwv/s+vz/tsDB/zo7O/8qKir/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 239) fprintf( output, "/ysrK/8rKyv/Kysr/ykpKf9JS0z/g4mK/9rn6f/W4+X/VVhZ/ykoKP8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 240) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/y0uLv88PT3/P0FB/21yc/9obG3/09/h/+n3+f/n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 241) fprintf( output, "9ff/eoCB/ykpKf8rKyv/Kysr/ysrK/8rKyv/Kioq/zo7O/+5xMX/6Pb4/4yUlf80NTX/Kioq/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 242) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ygoKP9RVFX/X2Nj" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 243) fprintf( output, "/yoqKv+Ei4z/5/T2/+r4+v+2wML/MjMz/ysqKv8rKyv/Kysr/ysrK/8rKyv/ipGT/+n3+f/Czc//" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 244) fprintf( output, "sbu9/7K8vf9CQ0T/KSkp/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8q" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 245) fprintf( output, "Kir/Ojs7/290df8zMzT/KCgo/0dKSv/U4eL/6vj6/9Hd3/9DRUX/KSkp/ysrK/8rKyv/KSgo/1pe" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 246) fprintf( output, "Xv/a5+n/2OXm/290df/K1tj/3Onr/2JmZ/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 247) fprintf( output, "/ysrK/8rKyv/Kysr/ywsLP9obG3/SEpL/ykpKf8qKir/Ojw8/8jU1f/q+Pr/1+Tm/0pMTf8pKSn/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 248) fprintf( output, "Kysr/yoqKv85Ojr/t8HD/+r4+v+JkJH/LCws/1ZZWv+bo6T/xM/R/2BkZf8pKCj/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 249) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8pKSn/T1JT/2JmZ/8qKir/Kysr/ykpKf9JS0z/1eLk/+r4" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 250) fprintf( output, "+v/Q3N7/QkRE/yopKf8rKyv/Kysr/4aNjv/p9/n/usTG/zo8PP8qKir/Jycn/3B2dv/l8/X/xM/R" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 251) fprintf( output, "/0RGR/8pKSn/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kioq/zc4Of9wdXX/NTU2/yoqKv8qKir/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 252) fprintf( output, "Kioq/4mQkf/n9ff/6vj6/7O9v/8yMjL/Kysr/ykoKP9XWlr/1+Tm/9vo6v9dYWH/KCgo/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 253) fprintf( output, "Kir/MDAw/5mhov/q+Pr/pa6v/zM0NP8qKir/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Zmpr/0tO" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 254) fprintf( output, "Tv8pKSn/Kysr/zY3N/97gYL/2+jq/+j2+P/m8/X/dnt8/ykoKP8qKir/ODk5/7S+wP/q+fv/jpWW" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 255) fprintf( output, "/ywsLP8rKyv/Kysr/ysrK/8pKSn/Pj8//7vFx//n9ff/gYiJ/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 256) fprintf( output, "KSkp/0xPT/9laWr/Kioq/z9BQf+Wnp//vsnK/+Px8v/o9vj/6vj6/7C6u/83ODj/Kioq/yoqKv93" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 257) fprintf( output, "fX3/2ufp/7fBw/89Pj7/Kioq/ysrK/8rKyv/Kysr/ysrK/8pKCj/Vlla/9Th4//a5+n/YGNk/yko" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 258) fprintf( output, "KP8rKyv/Kysr/yoqKv81Njb/cHV1/zc4OP8oKCj/TlFR/93q7P/q+fv/6ff5/+n3+f+4wsT/R0lK" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 259) fprintf( output, "/ykpKf8rKyv/LCws/0RFRv9OUVH/PkBA/yoqKv8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8qKir/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 260) fprintf( output, "d3x9/+Ty9P/Ez9H/RUZH/ykpKf8rKyv/Kysr/2JnZ/9OUVH/KSkp/ykpKf9OUVH/2+jq/+Ty9P/O" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 261) fprintf( output, "2tz/jpaX/z5AQP8pKSn/Kysr/ysrK/8rKyv/Kikp/ykpKf8qKir/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 262) fprintf( output, "K/8rKyv/Kysr/yoqKv8wMDD/m6Ok/+r4+v+mr7H/NTU1/yoqKv8wMDD/SkxN/y0tLf8rKyv/Kioq" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 263) fprintf( output, "/zo7O/9yd3j/ZWpq/0NFRf8rKyv/Kioq/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 264) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/yopKf89Pj7/dXp7/3Z7fP89Pj7/Kioq/ysrK/8q" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 265) fprintf( output, "Kir/Kysr/ysrK/8rKyv/Kioq/ygoKP8oKCj/KSkp/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 266) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/yoqKv8oKCj/KCgo" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 267) fprintf( output, "/yoqKv8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 268) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 269) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv8Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 270) fprintf( output, "K/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 271) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/CsrK94rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 272) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 273) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyveKysrhSsr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 274) fprintf( output, "K/wrKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 275) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 276) fprintf( output, "Kysr/CsrK4UrKysWKysrqCsrK/0rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 277) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 278) fprintf( output, "K/8rKyv/Kysr/ysrK/0rKyuoKysrFgAAAAArKysXKysriysrK+grKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 279) fprintf( output, "/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 280) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyvoKysriysrKxcAAAAA4AAAB4AAAAGAAAABAAAAAAAAAAAA" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 281) fprintf( output, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 282) fprintf( output, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAcAAAAMoAAAAEAAA" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 283) fprintf( output, "ACAAAAABACAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAKysrTCsrK9QrKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 284) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyvUKysrTCsrK9QrKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 285) fprintf( output, "Kyv/KSkp/yoqKv8qKir/Kioq/ysrK/8rKyv/Kysr/ysqKv8pKSn/Kysr/ysrK9QrKyv9Kysr/ysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 286) fprintf( output, "K/8rKyv/Li4u/0NFRf9GSUn/SkxM/zY3N/8qKir/Kysr/yoqKv8yMjL/REVG/y4uLv8rKyv9Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 287) fprintf( output, "/ysrK/8rKyv/KSgo/2lubv+0v8D/Wl5e/3l+f/+epqf/MzQ0/yoqKv8qKir/g4qL/5aeoP8vLzD/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 288) fprintf( output, "Kysr/ysrK/8rKyv/KSkp/0FDQ/+7xsf/iI+Q/zIzM/81Njb/pa6w/4GIif8oKCj/Vlla/73Iyf9O" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 289) fprintf( output, "UVH/KSkp/ysrK/8rKyv/Kysr/y4uLv+Wnp//sLq7/0pNTf8pKSn/KSkp/0hKSv+1wMH/Z2xt/6u1" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 290) fprintf( output, "tv97gYL/KSkp/ysrK/8rKyv/Kysr/ykpKf9UV1j/sry+/5ykpf+ZoqP/NTY2/yoqKv8pKSn/XWFh" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 291) fprintf( output, "/7G7vP+kra//MzQ0/yoqKv8rKyv/Kysr/ysrK/8rKyv/Njc3/1hbW/+Bh4j/4O7w/2ltbv8oKCj/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 292) fprintf( output, "KSgo/1FUVf/G0dP/j5eY/zM0NP8qKir/Kysr/ysrK/8rKyv/Kioq/0BBQf9CRET/QUND/9Tg4v+N" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 293) fprintf( output, "lZb/KCgn/zQ1Nf+qs7X/i5KT/5mio/9zeHn/Kysr/ysrK/8rKyv/Kioq/zM0NP9NUFD/KSkp/1Za" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 294) fprintf( output, "Wv/c6ev/gIaH/ycnJ/9+hIX/rLW3/zM0NP9FR0f/tsDC/11hYf8pKCj/Kysr/ywsLP9KTE3/QUND" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 295) fprintf( output, "/3B1df/Ez9H/z9vd/0hLS/9FR0f/sLq8/1RXV/8pKCj/KSkp/2htbf+0v8D/QkRE/ykpKf8/QUH/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 296) fprintf( output, "REZG/0VHSP/N2dv/ws7P/2FlZf8qKir/NTY2/0FDQ/8sLCz/Kysr/ysrK/8sLCz/ipGS/5igof8y" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 297) fprintf( output, "MjL/NTY2/y4uLv8yMzP/UFNU/zo7O/8pKSn/Kysr/yoqKv8qKin/Kysr/ysrK/8rKyv/Kioq/zQ1" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 298) fprintf( output, "Nf9SVVb/MzM0/yoqKv4rKyv/Kysr/ykpKf8qKir/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 299) fprintf( output, "/ysrK/8qKir/KSkp/ysrK/4rKyvXKysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 300) fprintf( output, "Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyvXKysrUSsrK9orKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8r" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 301) fprintf( output, "Kyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyvaKysrUYABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 302) fprintf( output, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABAAA=" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 303) fprintf( output, "\" rel=\"icon\" type=\"image/x-icon\" />\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 304) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 305) fprintf( output, " <title>%s – Requires Tree</title>\n", root );
11c606a6 (kx 2023-04-11 01:18:34 +0300 306) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 307) fprintf( output, " <style>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 308) fprintf( output, " @import url(https://fonts.googleapis.com/css?family=Roboto:400,700italic,700,500italic,500,400italic&subset=cyrillic-ext,latin);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 309) fprintf( output, " @import url(https://fonts.googleapis.com/css?family=Cousine:400,400italic,700,700italic&subset=cyrillic-ext,latin);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 310) fprintf( output, " </style>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 311) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 312) fprintf( output, " <style>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 313) fprintf( output, " body, html {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 314) fprintf( output, " margin: 0 0 0 0;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 315) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 316) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 317) fprintf( output, " #front_wrapper {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 318) fprintf( output, " margin: 0 auto;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 319) fprintf( output, " height: 100vh;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 320) fprintf( output, " position: relative;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 321) fprintf( output, " overflow: auto;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 322) fprintf( output, " background-color: #ececec;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 323) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 324) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 325) fprintf( output, " #spinner {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 326) fprintf( output, " margin: 0 auto;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 327) fprintf( output, " min-height: 256px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 328) fprintf( output, " text-align: center;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 329) fprintf( output, " display: flex;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 330) fprintf( output, " align-items: center;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 331) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 332) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 333) fprintf( output, " #tree_view {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 334) fprintf( output, " margin: 0 auto;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 335) fprintf( output, " min-height: 256px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 336) fprintf( output, " width: 2720px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 337) fprintf( output, " border: 0px solid #e7e7e7;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 338) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 339) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 340) fprintf( output, " .header-wrapper {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 341) fprintf( output, " height: 160px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 342) fprintf( output, " width: 100%%;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 343) fprintf( output, " margin: 0 auto;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 344) fprintf( output, " position: relative;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 345) fprintf( output, " background: transparent;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 346) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 347) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 348) fprintf( output, " .content-wrapper {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 349) fprintf( output, " background-color: #ffffff;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 350) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 351) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 352) fprintf( output, " .footer-wrapper {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 353) fprintf( output, " background: #ececec;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 354) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 355) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 356) fprintf( output, " .content {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 357) fprintf( output, " width: 1018px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 358) fprintf( output, " min-height: 256px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 359) fprintf( output, " padding: 18px 3px 12px 3px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 360) fprintf( output, " margin: 0 auto;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 361) fprintf( output, " background-color: #fdfdfd;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 362) fprintf( output, " position: relative;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 363) fprintf( output, " overflow: hidden;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 364) fprintf( output, " align: center;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 365) fprintf( output, " border: 1px solid #e7e7e7;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 366) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 367) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 368) fprintf( output, " .footer {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 369) fprintf( output, " width: 1022px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 370) fprintf( output, " height: 48px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 371) fprintf( output, " margin: 0 auto;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 372) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 373) fprintf( output, " -moz-border-radius-topleft: 0px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 374) fprintf( output, " -moz-border-radius-topright: 0px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 375) fprintf( output, " -moz-border-radius-bottomright: 4px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 376) fprintf( output, " -moz-border-radius-bottomleft: 4px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 377) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 378) fprintf( output, " -webkit-border-top-left-radius: 0px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 379) fprintf( output, " -webkit-border-top-right-radius: 0px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 380) fprintf( output, " -webkit-border-bottom-left-radius: 4px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 381) fprintf( output, " -webkit-border-bottom-right-radius: 4px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 382) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 383) fprintf( output, " border-top-left-radius: 0px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 384) fprintf( output, " border-top-right-radius: 0px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 385) fprintf( output, " border-bottom-left-radius: 4px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 386) fprintf( output, " border-bottom-right-radius: 4px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 387) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 388) fprintf( output, " border: 1px solid #545454;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 389) fprintf( output, " background-color: #4c4c4c;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 390) fprintf( output, " background: linear-gradient(288deg, rgb(84, 84, 84), rgb(76, 76, 76));\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 391) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 392) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 393) fprintf( output, " .footer-top {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 394) fprintf( output, " margin: 2px auto 1px auto;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 395) fprintf( output, " color: #ffffff;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 396) fprintf( output, " text-align: center;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 397) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 398) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 399) fprintf( output, " .footer-bottom {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 400) fprintf( output, " margin: 0 8px 0 8px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 401) fprintf( output, " min-height: 20px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 402) fprintf( output, " color: #ffffff;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 403) fprintf( output, " font-size: 10px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 404) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 405) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 406) fprintf( output, " .logo {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 407) fprintf( output, " width: 1024px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 408) fprintf( output, " height: 80px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 409) fprintf( output, " margin: 0 auto;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 410) fprintf( output, " background-color: transparent;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 411) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 412) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 413) fprintf( output, " .navigator {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 414) fprintf( output, " width: 1024px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 415) fprintf( output, " height: 79px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 416) fprintf( output, " margin: 0 auto;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 417) fprintf( output, " padding: 1px 0 0;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 418) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 419) fprintf( output, " -moz-border-radius-topleft: 4px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 420) fprintf( output, " -moz-border-radius-topright: 4px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 421) fprintf( output, " -moz-border-radius-bottomright: 0px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 422) fprintf( output, " -moz-border-radius-bottomleft: 0px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 423) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 424) fprintf( output, " -webkit-border-top-left-radius: 4px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 425) fprintf( output, " -webkit-border-top-right-radius: 4px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 426) fprintf( output, " -webkit-border-bottom-left-radius: 0px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 427) fprintf( output, " -webkit-border-bottom-right-radius: 0px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 428) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 429) fprintf( output, " border-top-left-radius: 4px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 430) fprintf( output, " border-top-right-radius: 4px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 431) fprintf( output, " border-bottom-left-radius: 0px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 432) fprintf( output, " border-bottom-right-radius: 0px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 433) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 434) fprintf( output, " border: 1px solid #545454;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 435) fprintf( output, " background-color: #4c4c4c;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 436) fprintf( output, " background: linear-gradient(288deg, rgb(84, 84, 84), rgb(76, 76, 76));\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 437) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 438) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 439) fprintf( output, " .copyright {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 440) fprintf( output, " color: #f0f0ea;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 441) fprintf( output, " text-decoration: none;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 442) fprintf( output, " font-family: 'Roboto', helvetica, arial, sans-serif;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 443) fprintf( output, " font-weight: bold;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 444) fprintf( output, " font-style: normal;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 445) fprintf( output, " font-size: 12px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 446) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 447) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 448) fprintf( output, " .copyright:hover {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 449) fprintf( output, " text-decoration: underline;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 450) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 451) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 452) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 453) fprintf( output, " .date-title {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 454) fprintf( output, " height: 16px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 455) fprintf( output, " font: 12px 'Roboto', sans-serif;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 456) fprintf( output, " font-weight: bold;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 457) fprintf( output, " padding-top: 6px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 458) fprintf( output, " margin-bottom: -10px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 459) fprintf( output, " padding-left: 16px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 460) fprintf( output, " color: #c0c0c0;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 461) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 462) fprintf( output, " .time-title {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 463) fprintf( output, " color: #82946f;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 464) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 465) fprintf( output, " .hardware-title {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 466) fprintf( output, " height: 20px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 467) fprintf( output, " float: right;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 468) fprintf( output, " text-align: right;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 469) fprintf( output, " padding-right: 16px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 470) fprintf( output, " width: 512px; font: 14px 'Roboto', sans-serif;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 471) fprintf( output, " font-weight: bold;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 472) fprintf( output, " color: #f0f0ea;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 473) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 474) fprintf( output, " .hw-title {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 475) fprintf( output, " font: 10px 'Roboto', sans-serif;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 476) fprintf( output, " font-weight: bold;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 477) fprintf( output, " color: #cadaba;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 478) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 479) fprintf( output, " .tree-title {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 480) fprintf( output, " height: 42px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 481) fprintf( output, " padding-left: 16px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 482) fprintf( output, " font: 28px 'Roboto', sans-serif;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 483) fprintf( output, " font-weight: bold;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 484) fprintf( output, " color: #f0f0ea;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 485) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 486) fprintf( output, " .tree-hw-title {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 487) fprintf( output, " color: #cadaba;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 488) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 489) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 490) fprintf( output, " /* SVG spinner icon animation */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 491) fprintf( output, " .spinner {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 492) fprintf( output, " -webkit-animation: rotate 2s linear infinite;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 493) fprintf( output, " animation: rotate 2s linear infinite;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 494) fprintf( output, " z-index: 2;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 495) fprintf( output, " position: relative;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 496) fprintf( output, " top: 50%%;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 497) fprintf( output, " left: 50%%;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 498) fprintf( output, " margin: -25px 0 0 -25px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 499) fprintf( output, " width: 50px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 500) fprintf( output, " height: 50px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 501) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 502) fprintf( output, " .spinner-text {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 503) fprintf( output, " z-index: 2;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 504) fprintf( output, " position: absolute;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 505) fprintf( output, " top: 0;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 506) fprintf( output, " left: 0;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 507) fprintf( output, " margin: 36px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 508) fprintf( output, " font: 28px 'Roboto', sans-serif;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 509) fprintf( output, " color: #c0c0c0;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 510) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 511) fprintf( output, " .spinner .path {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 512) fprintf( output, " stroke: #cccccc;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 513) fprintf( output, " stroke-linecap: round;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 514) fprintf( output, " -webkit-animation: dash 1.5s ease-in-out infinite;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 515) fprintf( output, " animation: dash 1.5s ease-in-out infinite;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 516) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 517) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 518) fprintf( output, " @-webkit-keyframes rotate {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 519) fprintf( output, " 100%% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 520) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 521) fprintf( output, " @keyframes rotate {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 522) fprintf( output, " 100%% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 523) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 524) fprintf( output, " @-webkit-keyframes dash {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 525) fprintf( output, " 0%% { stroke-dasharray: 1, 150; stroke-dashoffset: 0; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 526) fprintf( output, " 50%% { stroke-dasharray: 90, 150; stroke-dashoffset: -35; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 527) fprintf( output, " 100%% { stroke-dasharray: 90, 150; stroke-dashoffset: -124; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 528) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 529) fprintf( output, " @keyframes dash {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 530) fprintf( output, " 0%% { stroke-dasharray: 1, 150; stroke-dashoffset: 0; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 531) fprintf( output, " 50%% { stroke-dasharray: 90, 150; stroke-dashoffset: -35; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 532) fprintf( output, " 100%% { stroke-dasharray: 90, 150; stroke-dashoffset: -124; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 533) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 534) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 535) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 536) fprintf( output, " .node {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 537) fprintf( output, " cursor: pointer;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 538) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 539) fprintf( output, " .node text {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 540) fprintf( output, " font: 14px 'Cousine', monospace;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 541) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 542) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 543) fprintf( output, " .tree-tooltip {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 544) fprintf( output, " position: absolute;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 545) fprintf( output, " text-align: left;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 546) fprintf( output, " padding: 16px 16px 8px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 547) fprintf( output, " background-color: #fafafa;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 548) fprintf( output, " border: 1px solid #71ad93;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 549) fprintf( output, " border-radius: 8px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 550) fprintf( output, " pointer-events: none;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 551) fprintf( output, " color: #343434;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 552) fprintf( output, " -webkit-box-shadow: 0 0 5px #aaa;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 553) fprintf( output, " box-shadow: 0 0 5px #aaa;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 554) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 555) fprintf( output, " .tooltip-header {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 556) fprintf( output, " font: 14px Roboto, sans-serif;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 557) fprintf( output, " font-weight: bold;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 558) fprintf( output, " color: DarkRed;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 559) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 560) fprintf( output, " white-space: nowrap;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 561) fprintf( output, " text-align: left;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 562) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 563) fprintf( output, " .tooltip-header-not-packaged {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 564) fprintf( output, " font: 11px Cousine,monospace;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 565) fprintf( output, " font-weight: bold;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 566) fprintf( output, " color: DarkRed;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 567) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 568) fprintf( output, " white-space: nowrap;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 569) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 570) fprintf( output, " padding-left: 8px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 571) fprintf( output, " padding-right: 8px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 572) fprintf( output, " padding-bottom: 8px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 573) fprintf( output, " text-align: left;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 574) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 575) fprintf( output, " .tooltip-description {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 576) fprintf( output, " font: 14px Roboto, sans-serif;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 577) fprintf( output, " font-style: italic;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 578) fprintf( output, " font-weight: bold;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 579) fprintf( output, " color: #343434;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 580) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 581) fprintf( output, " white-space: nowrap;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 582) fprintf( output, " text-align: left;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 583) fprintf( output, " padding-left: 1.5em;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 584) fprintf( output, " padding-top: .5em;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 585) fprintf( output, " font-style: italic;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 586) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 587) fprintf( output, " .tooltip-content {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 588) fprintf( output, " font: 11px 'Cousine', monospace;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 589) fprintf( output, " font-weight: bold;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 590) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 591) fprintf( output, " white-space: pre;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 592) fprintf( output, " margin: 12px 0 8px;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 593) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 594) fprintf( output, " .flavour {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 595) fprintf( output, " color: DarkBlue;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 596) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 597) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 598) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 599) fprintf( output, " @media (min-width: 1200px) {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 600) fprintf( output, " .navigator { width: 1140px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 601) fprintf( output, " .logo { width: 1140px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 602) fprintf( output, " .footer { width: 1140px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 603) fprintf( output, " .content { width: 1134px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 604) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 605) fprintf( output, " @media (min-width: 992px) and (max-width: 1199px) {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 606) fprintf( output, " .navigator { width: 960px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 607) fprintf( output, " .logo { width: 960px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 608) fprintf( output, " .footer { width: 960px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 609) fprintf( output, " .content { width: 954px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 610) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 611) fprintf( output, " @media (min-width: 768px) and (max-width: 991px) {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 612) fprintf( output, " .navigator { width: 720px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 613) fprintf( output, " .logo { width: 720px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 614) fprintf( output, " .footer { width: 720px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 615) fprintf( output, " .content { width: 714px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 616) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 617) fprintf( output, " @media (min-width: 576px) and (max-width: 767px) {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 618) fprintf( output, " .navigator { width: 540px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 619) fprintf( output, " .logo { width: 540px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 620) fprintf( output, " .footer { width: 540px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 621) fprintf( output, " .content { width: 534px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 622) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 623) fprintf( output, " .node text { font-size: 12px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 624) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 625) fprintf( output, " .tooltip-header { font-size: 12px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 626) fprintf( output, " .tooltip-description { font-size: 12px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 627) fprintf( output, " .tooltip-content { font-size: 10px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 628) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 629) fprintf( output, " @media (max-width: 575px) {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 630) fprintf( output, " .navigator { width: 480px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 631) fprintf( output, " .logo { width: 480px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 632) fprintf( output, " .footer { width: 480px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 633) fprintf( output, " .content { width: 474px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 634) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 635) fprintf( output, " .node text { font-size: 12px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 636) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 637) fprintf( output, " .tooltip-header { font-size: 12px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 638) fprintf( output, " .tooltip-description { font-size: 12px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 639) fprintf( output, " .tooltip-content { font-size: 10px; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 640) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 641) fprintf( output, " </style>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 642) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 643) fprintf( output, " <script src=\"https://code.jquery.com/jquery-3.4.1.min.js\"></script>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 644) fprintf( output, " <script src=\"https://code.jquery.com/ui/1.12.1/jquery-ui.min.js\"></script>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 645) fprintf( output, " <script src=\"https://d3js.org/d3.v5.min.js\"></script>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 646) fprintf( output, " <script>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 647) fprintf( output, " !function(o){function t(o,t){if(!(o.originalEvent.touches.length>1)){o.preventDefault();var e=o.originalEvent.changedTouches[0],n=document.createEvent(\"MouseEvents\");n.initMouseEvent(t,!0,!0,window,1,e.screenX,e.screenY,e.clientX,e.clientY,!1,!1,!1,!1,0,null),o.target.dispatchEvent(n)}}if(o.support.touch=\"ontouchend\"in document,o.support.touch){var e,n,u=o.ui.mouse.prototype,c=u._mouseInit,i=u._mouseDestroy;u._touchStart=function(o){var u=this;!n&&u._mouseCapture(o.originalEvent.changedTouches[0])&&(n=!0,u._touchMoved=!1,e=o,t(o,\"mouseover\"),t(o,\"mousemove\"),t(o,\"mousedown\"))},u._touchMove=function(o){if(n){var u=e.originalEvent.touches[0].screenX,c=e.originalEvent.touches[0].screenY,i=o.originalEvent.touches[0].screenX,r=o.originalEvent.touches[0].screenY;if(u===i&&c===r)return void(this._touchMoved=!1);this._touchMoved=!0,t(o,\"mousemove\")}},u._touchEnd=function(o){n&&(t(o,\"mouseup\"),t(o,\"mouseout\"),this._touchMoved||t(o,\"click\"),n=!1)},u._mouseInit=function(){var t=this;t.element.bind({touchstart:o.proxy(t,\"_touchStart\"),touchmove:o.proxy(t,\"_touchMove\"),touchend:o.proxy(t,\"_touchEnd\")}),c.call(t)},u._mouseDestroy=function(){var t=this;t.element.unbind({touchstart:o.proxy(t,\"_touchStart\"),touchmove:o.proxy(t,\"_touchMove\"),touchend:o.proxy(t,\"_touchEnd\")}),i.call(t)}}}(jQuery);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 648) fprintf( output, " $(function() {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 649) fprintf( output, " $( \"#tree_view\" ).draggable();\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 650) fprintf( output, " });\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 651) fprintf( output, " </script>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 652) fprintf( output, " <script>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 653) fprintf( output, " function load_json( url, callback ) {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 654) fprintf( output, " var xobj = new XMLHttpRequest();\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 655) fprintf( output, " xobj.overrideMimeType(\"application/json\");\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 656) fprintf( output, " xobj.open('GET', url, true);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 657) fprintf( output, " xobj.onreadystatechange = function () {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 658) fprintf( output, " if (xobj.readyState == 4 && xobj.status == \"200\") {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 659) fprintf( output, " callback(xobj.responseText);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 660) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 661) fprintf( output, " };\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 662) fprintf( output, " xobj.send(null);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 663) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 664) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 665) fprintf( output, " var pkgs;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 666) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 667) fprintf( output, " $(document).ready(function() {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 668) fprintf( output, " load_json( '%s', function(response) {\n", json_pkgs_file );
11c606a6 (kx 2023-04-11 01:18:34 +0300 669) fprintf( output, " pkgs = JSON.parse(response);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 670) fprintf( output, " });\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 671) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 672) fprintf( output, " $('#tree_view')\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 673) fprintf( output, " .mousedown(function() { $(this).css( 'cursor', 'grab' ); })\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 674) fprintf( output, " .mouseup( function() { $(this).css( 'cursor', 'auto' ); });\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 675) fprintf( output, " });\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 676) fprintf( output, " </script>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 677) fprintf( output, " </head>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 678) fprintf( output, " <body>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 679) fprintf( output, " <div id=\"front_wrapper\">\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 680) fprintf( output, " <div class=\"header-wrapper\">\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 681) fprintf( output, " <div class=\"logo\"></div>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 682) fprintf( output, " <div class=\"navigator\">\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 683) fprintf( output, " <div style=\"height: 36px;\">\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 684) fprintf( output, " <div class=\"date-title\">%04d-%02d-%02d <span class=\"time-title\">%02d:%02d:%02d</span></div>\n",
11c606a6 (kx 2023-04-11 01:18:34 +0300 685) tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday,
11c606a6 (kx 2023-04-11 01:18:34 +0300 686) tm.tm_hour, tm.tm_min, tm.tm_sec );
11c606a6 (kx 2023-04-11 01:18:34 +0300 687) fprintf( output, " <div class=\"hardware-title\">\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 688) fprintf( output, " <span class=\"hw-title\">HARDWARE:</span> %s\n", hardware );
11c606a6 (kx 2023-04-11 01:18:34 +0300 689) fprintf( output, " </div>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 690) fprintf( output, " </div>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 691) fprintf( output, " <div class=\"tree-title\">\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 692) fprintf( output, " <span class=\"tree-hw-title\">%s</span> – Requires Tree\n", root );
11c606a6 (kx 2023-04-11 01:18:34 +0300 693) fprintf( output, " </div>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 694) fprintf( output, " </div> <!-- \"navigator\" -->\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 695) fprintf( output, " </div> <!-- \"header_wrapper\" -->\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 696) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 697) fprintf( output, " <div class=\"content-wrapper\">\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 698) fprintf( output, " <div class=\"content\">\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 699) fprintf( output, " <div id=\"spinner\">\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 700) fprintf( output, " <svg class=\"spinner\" viewBox=\"0 0 50 50\"><circle class=\"path\" cx=\"25\" cy=\"25\" r=\"20\" fill=\"none\" stroke-width=\"5\"></circle></svg>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 701) fprintf( output, " <div class=\"spinner-text\">Loading ...</div>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 702) fprintf( output, " </div>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 703) fprintf( output, " <div id=\"tree_view\" class=\"ui-widget-content\">\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 704) fprintf( output, " </div>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 705) fprintf( output, " </div> <!-- \"content\" -->\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 706) fprintf( output, " </div> <!-- \"content_wrapper\" -->\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 707) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 708) fprintf( output, " <div class=\"footer-wrapper\">\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 709) fprintf( output, " <div class=\"footer\">\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 710) fprintf( output, " <div class=\"footer-top\">\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 711) fprintf( output, " <a class=\"copyright\" target=\"_blank\" href=\"%s\">© %s</a>\n", bug_url, copying );
11c606a6 (kx 2023-04-11 01:18:34 +0300 712) fprintf( output, " </div>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 713) fprintf( output, " <div class=\"footer-bottom\">\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 714) fprintf( output, " </div>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 715) fprintf( output, " </div> <!-- \"footer\" -->\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 716) fprintf( output, " </div> <!-- \"footer_wrapper\" -->\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 717) fprintf( output, " </div> <!-- \"front_wrapper\" -->\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 718) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 719) fprintf( output, " <script>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 720) fprintf( output, " var margin = {top: 20, right: 120, bottom: 20, left: 220},\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 721) fprintf( output, " width = %d - margin.right - margin.left,\n", svg_width );
11c606a6 (kx 2023-04-11 01:18:34 +0300 722) fprintf( output, " height = %d - margin.top - margin.bottom;\n", svg_height );
11c606a6 (kx 2023-04-11 01:18:34 +0300 723) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 724) fprintf( output, " var i = 0,\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 725) fprintf( output, " duration = 750,\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 726) fprintf( output, " root = 0;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 727) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 728) fprintf( output, " var treemap = d3.tree()\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 729) fprintf( output, " .size([height, width]);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 730) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 731) fprintf( output, " var svg = d3.select(document.getElementById( 'tree_view' )).append(\"svg\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 732) fprintf( output, " .attr(\"width\", width + margin.right + margin.left)\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 733) fprintf( output, " .attr(\"height\", height + margin.top + margin.bottom)\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 734) fprintf( output, " .append(\"g\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 735) fprintf( output, " .attr(\"transform\", \"translate(\" + margin.left + \",\" + margin.top + \")\");\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 736) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 737) fprintf( output, " var div = d3.select(document.getElementById( 'front_wrapper' )).append(\"div\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 738) fprintf( output, " .attr(\"class\", \"tree-tooltip\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 739) fprintf( output, " .style(\"display\", \"none\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 740) fprintf( output, " .style(\"opacity\", 0);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 741) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 742) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 743) fprintf( output, " load_json( '%s', function(response) {\n", json_tree_file );
11c606a6 (kx 2023-04-11 01:18:34 +0300 744) fprintf( output, " var treeData = JSON.parse(response);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 745) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 746) fprintf( output, " /* Assigns parent, children, height, depth: */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 747) fprintf( output, " root = d3.hierarchy(treeData, function(d) { return d.children; });\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 748) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 749) fprintf( output, " root.x0 = height / 2;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 750) fprintf( output, " root.y0 = 0;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 751) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 752) fprintf( output, " function collapse(d) {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 753) fprintf( output, " if( d.children ) {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 754) fprintf( output, " d._children = d.children;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 755) fprintf( output, " d._children.forEach(collapse);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 756) fprintf( output, " d.children = null;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 757) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 758) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 759) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 760) fprintf( output, " document.getElementById('spinner').remove();\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 761) fprintf( output, " root.children.forEach(collapse);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 762) fprintf( output, " update(root);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 763) fprintf( output, " });\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 764) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 765) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 766) fprintf( output, " function update(source) {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 767) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 768) fprintf( output, " var tree = treemap( root );\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 769) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 770) fprintf( output, " /* Compute the new tree layout. */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 771) fprintf( output, " var nodes = tree.descendants(),\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 772) fprintf( output, " links = tree.descendants().slice(1);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 773) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 774) fprintf( output, " /* Normalize for fixed-depth. */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 775) fprintf( output, " nodes.forEach(function(d) { d.y = d.depth * 220; });\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 776) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 777) fprintf( output, " /* Update the nodes . . . */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 778) fprintf( output, " var node = svg.selectAll(\"g.node\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 779) fprintf( output, " .data(nodes, function(d) { return d.id || (d.id = ++i); });\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 780) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 781) fprintf( output, " /* Enter any new nodes at the parent's previous position. */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 782) fprintf( output, " var nodeEnter = node.enter().append(\"g\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 783) fprintf( output, " .attr(\"class\", \"node\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 784) fprintf( output, " .attr(\"transform\", function(d) { return \"translate(\" + source.y0 + \",\" + source.x0 + \")\"; })\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 785) fprintf( output, " .on(\"click\", click)\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 786) fprintf( output, " .on(\"mouseover\", function(d) {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 787) fprintf( output, " div.transition()\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 788) fprintf( output, " .duration(200)\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 789) fprintf( output, " .style(\"opacity\", .92);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 790) fprintf( output, " {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 791) fprintf( output, " var content = '<div class=\"tooltip-header-not-packaged\">' + 'void' + '</div>';\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 792) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 793) fprintf( output, " if( d.name === \"void\" ) {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 794) fprintf( output, " /* draw div.tree-tooltip to get actual size */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 795) fprintf( output, " div.html( content )\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 796) fprintf( output, " .style(\"left\", (d3.event.pageX + document.getElementById( 'front_wrapper' ).scrollLeft + 12) + \"px\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 797) fprintf( output, " .style(\"top\", (d3.event.pageY + document.getElementById( 'front_wrapper' ).scrollTop + 12) + \"px\");\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 798) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 799) fprintf( output, " else\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 800) fprintf( output, " {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 801) fprintf( output, " /* find package in the pkgs array: */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 802) fprintf( output, " var pkg = pkgs.find(obj => { return obj.id === d.data.name; });\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 803) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 804) fprintf( output, " if( pkg === undefined )\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 805) fprintf( output, " {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 806) fprintf( output, " content = '<div class=\"tooltip-header-not-packaged\">' + 'not packaged collection' + '</div>';\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 807) fprintf( output, " /* draw div.tree-tooltip to get actual size */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 808) fprintf( output, " div.html( content )\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 809) fprintf( output, " .style(\"left\", (d3.event.pageX + document.getElementById( 'front_wrapper' ).scrollLeft + 12) + \"px\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 810) fprintf( output, " .style(\"top\", (d3.event.pageY + document.getElementById( 'front_wrapper' ).scrollTop + 12) + \"px\");\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 811) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 812) fprintf( output, " else\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 813) fprintf( output, " {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 814) fprintf( output, " content = '<div class=\"tooltip-header\">' + pkg.name + '</div>' +\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 815) fprintf( output, " '<div class=\"tooltip-description\">' + pkg.description + '</div>' +\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 816) fprintf( output, " '<div class=\"tooltip-content\">' +\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 817) fprintf( output, " ' group: ' + pkg.group + '\\n' +\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 818) fprintf( output, " ' architecture: ' + pkg.arch + '\\n' +\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 819) fprintf( output, " ' hardware: ' + pkg.hardware + '\\n';\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 820) fprintf( output, " if( pkg.flavour !== undefined )\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 821) fprintf( output, " {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 822) fprintf( output, " content += ' <span class=\"flavour\">edition</span>: ' + pkg.flavour + '\\n';\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 823) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 824) fprintf( output, " content += ' license: ' + pkg.license + '\\n' +\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 825) fprintf( output, " ' bug report url: ' + root.data.distro[2] + '\\n' +\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 826) fprintf( output, " ' distribution: ' + root.data.distro[0] + '-' + root.data.distro[1] + '\\n' +\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 827) fprintf( output, " ' package tarball: ' + pkg.name + '-' + pkg.version + '-' + pkg.arch + '-' + root.data.distro[0] + '-' + root.data.distro[1] + '.'+ '%s' + '\\n' +\n", tarball_suffix );
11c606a6 (kx 2023-04-11 01:18:34 +0300 828) fprintf( output, " ' uncompressed size: ' + pkg.uncompressed_size + '\\n' +\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 829) fprintf( output, " ' number of files: ' + pkg.total_files + '\\n' +\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 830) fprintf( output, " '</div>' +\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 831) fprintf( output, " '</div>' +\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 832) fprintf( output, " '</div>';\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 833) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 834) fprintf( output, " /* draw div.tree-tooltip to get actual size */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 835) fprintf( output, " div.html( content )\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 836) fprintf( output, " .style(\"left\", (d3.event.pageX + document.getElementById( 'front_wrapper' ).scrollLeft + 12) + \"px\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 837) fprintf( output, " .style(\"top\", (d3.event.pageY + document.getElementById( 'front_wrapper' ).scrollTop + 12) + \"px\");\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 838) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 839) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 840) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 841) fprintf( output, " /* draw div.tree-tooltip at actual position */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 842) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 843) fprintf( output, " var cW = $( window ).width();\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 844) fprintf( output, " var cH = $( window ).height();\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 845) fprintf( output, " var cX = d3.event.pageX;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 846) fprintf( output, " var cY = d3.event.pageY;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 847) fprintf( output, " var tW = $('div.tree-tooltip').width();\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 848) fprintf( output, " var tH = $('div.tree-tooltip').height();\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 849) fprintf( output, " var oX;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 850) fprintf( output, " var oY;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 851) fprintf( output, " var dX = ( cW - cX ) - ( tW + 12 );\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 852) fprintf( output, " var dY = ( cH - cY ) - ( tH + 12 );\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 853) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 854) fprintf( output, " /* shift left to according to width=16 of browser vertical scroll bar */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 855) fprintf( output, " if( dX <= 24 ) { dX = 24 - dX; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 856) fprintf( output, " else { dX = 0; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 857) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 858) fprintf( output, " /* shift top to according to width=16 of browser horizontal scroll bar */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 859) fprintf( output, " if( dY <= 24 ) { dY = 24 - dY; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 860) fprintf( output, " else { dY = 0; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 861) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 862) fprintf( output, " if( ( cW - cX ) < ( tW + 12 ) ) { oX = - 12 - tW; } else { oX = 12 - dX; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 863) fprintf( output, " if( ( cH - cY ) < ( tH + 12 ) ) { oY = - 12 - tH; } else { oY = 12 - dY; }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 864) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 865) fprintf( output, " if( (( cW - cX ) < ( tW + 12 )) && (cX < ( tW + 12 )) )\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 866) fprintf( output, " {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 867) fprintf( output, " /* in this case we have to center tooltip */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 868) fprintf( output, " oX = - (tW + 12) / 2 + (cW/2 - cX);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 869) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 870) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 871) fprintf( output, " div.html( content )\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 872) fprintf( output, " .style(\"left\", (d3.event.pageX + document.getElementById( 'front_wrapper' ).scrollLeft + oX) + \"px\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 873) fprintf( output, " .style(\"top\", (d3.event.pageY + document.getElementById( 'front_wrapper' ).scrollTop + oY) + \"px\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 874) fprintf( output, " .style(\"display\",\"block\");\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 875) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 876) fprintf( output, " })\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 877) fprintf( output, " .on(\"mouseout\", function(d) {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 878) fprintf( output, " div.transition()\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 879) fprintf( output, " .duration(500)\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 880) fprintf( output, " .style(\"opacity\", 0);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 881) fprintf( output, " });\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 882) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 883) fprintf( output, " nodeEnter.append(\"circle\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 884) fprintf( output, " .attr('class', 'node')\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 885) fprintf( output, " /* Additional attributes (see the 'style' section) */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 886) fprintf( output, " .attr(\"stroke\", \"#5d5d5d\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 887) fprintf( output, " .attr(\"stroke-width\", \"1.0\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 888) fprintf( output, " /* End of additional attributes */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 889) fprintf( output, " .attr(\"r\", 1e-6)\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 890) fprintf( output, " .style(\"fill\", function(d) { return d._children ? \"#abd8d4\" : \"#fff\"; });\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 891) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 892) fprintf( output, " nodeEnter.append(\"text\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 893) fprintf( output, " .attr(\"x\", function(d) { return d.children || d._children ? -10 : 10; })\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 894) fprintf( output, " .attr(\"dy\", \"-.35em\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 895) fprintf( output, " .attr(\"text-anchor\", function(d) { return d.children || d._children ? \"end\" : \"start\"; })\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 896) fprintf( output, " .text(function(d) { return (d.data.name.indexOf(\":\",0) > 0 ) ? d.data.name.substr(d.data.name.indexOf(\":\",0) + 1) : d.data.name; })\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 897) fprintf( output, " .style(\"fill-opacity\", 1);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 898) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 899) fprintf( output, " /* Update */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 900) fprintf( output, " var nodeUpdate = nodeEnter.merge(node);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 901) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 902) fprintf( output, " /* Transition nodes to their new position. */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 903) fprintf( output, " nodeUpdate.transition()\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 904) fprintf( output, " .duration(duration)\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 905) fprintf( output, " .attr(\"transform\", function(d) { return \"translate(\" + d.y + \",\" + d.x + \")\"; });\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 906) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 907) fprintf( output, " nodeUpdate.select(\"circle.node\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 908) fprintf( output, " .attr(\"r\", 4.5)\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 909) fprintf( output, " .style(\"fill\", function(d) {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 910) fprintf( output, " if( d._children )\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 911) fprintf( output, " {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 912) fprintf( output, " return \"#abd8d4\";\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 913) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 914) fprintf( output, " else\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 915) fprintf( output, " {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 916) fprintf( output, " if( d.children == undefined )\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 917) fprintf( output, " {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 918) fprintf( output, " if( d.name == \"void\" )\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 919) fprintf( output, " {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 920) fprintf( output, " return \"#c9c9c9\";\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 921) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 922) fprintf( output, " else\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 923) fprintf( output, " {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 924) fprintf( output, " return \"#fff\";\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 925) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 926) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 927) fprintf( output, " else\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 928) fprintf( output, " {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 929) fprintf( output, " return \"#d2ebd8\";\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 930) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 931) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 932) fprintf( output, " })\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 933) fprintf( output, " .attr('cursor', 'pointer');\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 934) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 935) fprintf( output, " /* Transition exiting nodes to the parent's new position. */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 936) fprintf( output, " var nodeExit = node.exit().transition()\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 937) fprintf( output, " .duration(duration)\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 938) fprintf( output, " .attr(\"transform\", function(d) { return \"translate(\" + source.y + \",\" + source.x + \")\"; })\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 939) fprintf( output, " .remove();\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 940) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 941) fprintf( output, " nodeExit.select(\"circle\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 942) fprintf( output, " .attr(\"r\", 1e-6);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 943) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 944) fprintf( output, " nodeExit.select(\"text\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 945) fprintf( output, " .style(\"fill-opacity\", 1e-6);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 946) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 947) fprintf( output, " /* Update the links . . . */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 948) fprintf( output, " var link = svg.selectAll('path.link')\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 949) fprintf( output, " .data(links, function(d) { return d.id; });\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 950) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 951) fprintf( output, " /* Enter any new links at the parent's previous position. */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 952) fprintf( output, " var linkEnter = link.enter().insert('path', 'g')\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 953) fprintf( output, " .attr(\"class\", \"link\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 954) fprintf( output, " .attr(\"d\", function(d) {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 955) fprintf( output, " var o = {x: source.x0, y: source.y0};\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 956) fprintf( output, " return diagonal(o, o);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 957) fprintf( output, " });\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 958) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 959) fprintf( output, " /* Update */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 960) fprintf( output, " var linkUpdate = linkEnter.merge(link);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 961) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 962) fprintf( output, " /* Transition links to their new position. */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 963) fprintf( output, " linkUpdate.transition()\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 964) fprintf( output, " .duration(duration)\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 965) fprintf( output, " /* Additional attributes (see the 'style' section) */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 966) fprintf( output, " .style(\"fill\", \"none\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 967) fprintf( output, " .attr(\"stroke\", \"DarkGray\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 968) fprintf( output, " .attr(\"stroke-width\", \"1.5\")\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 969) fprintf( output, " /* End of additional attributes */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 970) fprintf( output, " .attr(\"d\", function(d){ return diagonal(d, d.parent) });\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 971) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 972) fprintf( output, " /* Transition exiting nodes to the parent's new position. */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 973) fprintf( output, " var linkExit = link.exit().transition()\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 974) fprintf( output, " .duration(duration)\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 975) fprintf( output, " .attr(\"d\", function(d) {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 976) fprintf( output, " var o = {x: source.x, y: source.y};\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 977) fprintf( output, " return diagonal(o, o);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 978) fprintf( output, " })\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 979) fprintf( output, " .remove();\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 980) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 981) fprintf( output, " /* Stash the old positions for transition. */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 982) fprintf( output, " nodes.forEach(function(d) {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 983) fprintf( output, " d.x0 = d.x;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 984) fprintf( output, " d.y0 = d.y;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 985) fprintf( output, " });\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 986) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 987) fprintf( output, " /* Creates a curved (diagonal) path from parent to the child nodes. */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 988) fprintf( output, " function diagonal(s, d) {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 989) fprintf( output, " path = `M ${s.y} ${s.x}\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 990) fprintf( output, " C ${(s.y + d.y) / 2} ${s.x},\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 991) fprintf( output, " ${(s.y + d.y) / 2} ${d.x},\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 992) fprintf( output, " ${d.y} ${d.x}`;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 993) fprintf( output, " return path;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 994) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 995) fprintf( output, "\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 996) fprintf( output, " /* Toggle children on click. */\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 997) fprintf( output, " function click(d) {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 998) fprintf( output, " if (d.children) {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 999) fprintf( output, " d._children = d.children;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 1000) fprintf( output, " d.children = null;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 1001) fprintf( output, " } else {\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 1002) fprintf( output, " d.children = d._children;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 1003) fprintf( output, " d._children = null;\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 1004) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 1005) fprintf( output, " update(d);\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 1006) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 1007) fprintf( output, " }\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 1008) fprintf( output, " </script>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 1009) fprintf( output, " </body>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 1010) fprintf( output, "</html>\n" );
11c606a6 (kx 2023-04-11 01:18:34 +0300 1011) }