Commit graph

51 commits

Author SHA1 Message Date
56e11c4d76
fix the logo tooo 2023-05-02 12:16:04 -04:00
850f4ba9ab
hacky emergency mobile support 2023-05-02 12:14:25 -04:00
fbe2222d1b
thanks naku 2023-04-29 16:32:59 -04:00
5af2762e12
Force dynamic on OAuth routes
See https://github.com/vercel/next.js/discussions/48989.
2023-04-29 19:18:55 +00:00
45decdb110
resize check 2023-04-29 12:12:32 -04:00
1340bf531a
add back hold-to-unlink 2023-04-28 22:31:38 -04:00
3e24c99db4
minor annoyances I found on my laptop 2023-04-28 22:16:08 -04:00
457c33e4a1
fix error on migadu icon 2023-04-28 18:34:36 -04:00
42f1b54fbd
I'm Julian, and you're watching How To Optimize Information Badly 101 2023-04-28 18:30:36 -04:00
b38a73eeac
add migadu icon 2023-04-28 17:25:37 -04:00
f5640f41f3
add tailscale icon 2023-04-28 17:12:49 -04:00
aec287c003
add connection icons 2023-04-28 16:09:12 -04:00
4315459e87
Merge branch 'main' of git.n2.pm:NotNet/gluestick 2023-04-28 12:09:00 -04:00
9aa36dd589
fix some avatar shenanigans 2023-04-28 12:08:51 -04:00
15360eb6b9
raise avatar limits to 2 MB, 1024x1024 2023-04-28 12:08:36 -04:00
da5373ef25
make logger a global 2023-04-28 12:07:44 -04:00
1e282617a9 add new logo and other tweak!!!!!1 2023-04-28 09:06:47 -07:00
967bb2a2d2 first proto of nice about me page :3 2023-04-28 08:53:58 -07:00
fd79df9ec1 add lunchtype fonts 2023-04-28 07:39:04 -07:00
cbcb8268b0
invite user to github automatically 2023-04-27 21:01:30 -04:00
c51e363b10
it's a secret, don't tell anyone 2023-04-27 15:40:29 -04:00
e542e3fb4a
Merge branch 'main' into tic80 2023-04-27 15:37:01 -04:00
d246e39211
add connections section, unlink, relink 2023-04-27 15:33:53 -04:00
91e54793ff
rework authentication system 2023-04-27 13:47:30 -04:00
366910861c
this sucks 2023-04-27 11:52:09 -04:00
8d428d90a8 borgus 2023-04-26 20:32:52 -07:00
2e4a05ded3 fix color changer wrong pos 2023-04-26 20:22:54 -07:00
38eb8866b3 add toasts 2023-04-26 20:22:49 -07:00
2acdeb8c95 chom 2023-04-26 19:59:17 -07:00
c0b8ee2427 clean up avatar url allowed code 2023-04-26 18:22:56 -07:00
f9f28810a2 glorbus 2023-04-26 18:21:28 -07:00
1363e9796c
complete colors 2023-04-26 15:38:32 -04:00
0ed5d400b7
only lock register button before api call 2023-04-26 15:19:22 -04:00
e8afec54b5
add some color values + remove ones i can't find lol 2023-04-26 14:51:47 -04:00
d6f21728da
perchitis 2023-04-26 14:38:03 -04:00
dfaab3a290
redirect if in weird states 2023-04-26 14:19:58 -04:00
d0310ea0eb
add user page, changing information 2023-04-26 13:56:59 -04:00
15f9ac6ffc
add logging + ldap state ensurance 2023-04-26 12:08:30 -04:00
234518a62e
use discord avatar as fallback 2023-04-25 21:23:55 -04:00
9c65c76026
babyproofing 2023-04-25 21:15:55 -04:00
e01278e050
clean up expiring auth tickets 2023-04-25 20:03:36 -04:00
2756694ac6
skip registration progress if you've done it before 2023-04-25 20:00:13 -04:00
d5ec97ed73
proper login flow 2023-04-25 19:56:52 -04:00
084a2f7618
refactor database to split ticket/user/oauth 2023-04-25 19:28:07 -04:00
ebea014083
lmao 2023-04-25 17:54:21 -04:00
03ff799dfd
create user account on ldap 2023-04-25 16:18:35 -04:00
b206220c0d
add graphql codegen + fix some things 2023-04-25 14:33:16 -04:00
4b00ebbf39
Add more colors (thanks cyn\!) 2023-04-25 13:26:28 -04:00
afad5f80d1 RIGBY!!
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.                     ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*(#&&&&,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*#&&&%//////###&/,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                      .,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,/&&&(///////////####&,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                            ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%&&(////////////////###%&,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,   DID YOU EAT ALL THE COOKIES?                 .,,,,,,,,,,,,,,,,,,,,,,,,,,/&&#///////////////////(###&&,,,%%,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.                                                   ,,,,,,,,,,,,,,,,,,,,,&&#//////////////////////(###&%*&&##&,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                      .,,,,,,,,,,,,,,,&&(/////////////////////////###&%&(/(##&,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                        .,,,,,,,,,,(&#///////////////////////////(##&&%///###&/,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.                                                         ,,,,,,,%&//////////////////////////////##&&////(####&,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                          .,,,#&////////////////////////////////#&&/////#####&/,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                          .,&#////////////////////////////////(#&//////######&,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.                                                         *&//////////////////////////////////(&///////(#####%&,,,,,,,,,,&&%&,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                       (&///////////////////////////////////#/////////((####&*,,,,,,&&/##%%,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                     *&////////////////////////////////////(/////////#/#####&,,,,&%//###&#,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                    &//////////////////////,////////////////////////#/(####&(,&%///####&(,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.                                                 %#///////////#&%////////# #//////////////////////(//####%&&////(####&(,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                                                &/////////%&#&####////////&#////////////////////////(####&/////#####&%,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.                                             &//////#&#,,,,*&###//////////////////////////////////###&//////######&,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,                                          *&/&//&&*,,,,,,,,&%##/////////////////////////////////(#&///////######&&,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,&#(((((#&&,,*%(&,,,,,,,,,,,,,,,,,,,,,,,,,,.                                       .&/%&&,,,,,,,,,    &##////////////#////////////////////#(///////######&&&,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,#&##(##((((&&#(%,,,,,,,,,,,,,,,,,,,,,,,,,,,                                 ,,,,,,%%/&,,,,.        &##////////////////////////////////#////////(#/####&#&,,,,,,,,,,,,,,,,,,,
,,,,,,,,,&/,,,,,,,,,,&&&(((((((((&&#((((((&((&,,,,,,,,,,,/&&&&&,,,,,,,,,,,                        .,,,,,,,,,,,,,&#,            &##/////////////////////////////////////////#//###%%#&(,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,&#(((##(((((((&((((((((((#((((((((((((((#((((((&,,,,,,,,,,,,,,,.   #&&&&&,,,,,,,,,,,,,,,,,,,,,,&.            .&#(////////////////////////////////////////////###&###&,,,,,,,,,,,,,,,,,,
,,,,,,,*///*,,,&(####%&&((((#((%%&&&%%%%((((((((((((((((((((((((&,,,,,,,,,,,,,,,&&%%&&&%&&&%%%%&&&,,,,,,,,,,,,,,&&             &#/////////////////////////////////////////#//(#######&,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,%#,&#(#&#(##((%&*,,,,,,&%%%(#(((((((((((((((((#(#&,,,,,,,,,,,,%&%%%%&&%%%%%%%%&&&*,,,,,,,,%&&&&&&&&            &##////////////////////////////////////////////########&,,,,,,,,,,,,,,,,,,
,,,,,,,,,,&%,,,,,%(#((#%&&((%&,       ,&%%%(((##((((((((((((###&,,,,,,,*&&,(&%%%%&%%%%%%%%%&&&&%###########%&&&&&&           /&#/////////((((((/////////////////////////////(########&/,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,&((##&*,,&%#&        . .&&%(&%&%((&%########&&,,,,,,,,,&&&%&%%%%%%%%%&&%#########################&           &,     &&&&&&&&&&&&&&&&&&&%////////////////////#(#######&,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,&#&(,(    &#&*         /&&,//*#&&&((###(##,,,,,,,,,,,,,&%&&%%%%%%%%&&&&&%%%%%%%%%%%%%############&(         &, ,      &&&&&&&&&&&&&&&&&&&&&////////////////#/########&,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,*&    &#%&.       .&#,,,,,,,,//(&(##&&##,,,,,,,,,,,&%%&%%%%%%%%%%%%%&&&%,,,/%&&&&&%%%%%%%%%%##&%      &%,&         &&&&&&&&&&&&&&&&&&&&&&/////////////#/########&(,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,&#(((%%%((((##(%&&#.(&&%,,,,,,,,,,//(&(#%(%&,,,,,,,,,,,,&%%%&%%%%%%%%%%%&&&&,,,,,,,,,,,,,,,,,*&&&%%%#&& (&&&            &&&&&&&&&&&&&&&&&&&&&&#///////////(/(#######&#,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,*&&%%%&&,,,,,,,,,,,,,,,,,,,,,,,,,,,/&((#((#%&&%,,,,,,,,,,/%%%%%%%%%%%%%%%&&&/,,,,,,,,,,,,,,,,,,,,,,,(&%#####%%           &&&&&&&&&&&&&&&&&&&&&&//////////////#######&/,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,(&&&&(,,,,,/,*%,,,,*(,,,,,,,,,,,*((#((((((##((###&&,,,,,,&((((((((((((((##%(,,,,,,,,,,,,,,,,,,,,,,,,,,&%######%        (&&&&&&&&&&&&&&&&&&&&&/////////////(######%&,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,#&//&,,.,%&&**//#(/,,,,,,,,,,*%(((((((#((((((((#%#%&,,,,&(#((#((((((((#%#&,,,,,,,,,,,,,,,,,,,,,,,,,,,,&######&,          *&&&&&&&&&&&&&&#/////////////(######&&,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,*&,,,.....,,,,,(&%(/////////*,&((((((#(((((((((#((####&,,,&(#(((((#(((((##&*,,,,,,,,,,,,,,,,,,,,&&%,,,*/&######%%           /////(///////////////////######&&&&(#&#,,,,,,,,,,,,,,,,,,,,,
..............&*,,,...,,,,,,,,(&*/#%////(%%%%(&(((#((*/(((((#(((((((###&*,,#((((((((((((&&&&,,,,,,,,,&&&&&&&&&&&&&&&&&&&&%######&           //////////////////////(##%&(//////##&,,,,,,,,,,,,,,,,,,,,,,,
............&,,,,...,,,,,,,,,,*%(#%/&%%#&,,,,,&(((##&*,,,,/(((((((#((#%##(,,%&%%%%%%%%%%%&&&&,,,,,,,,,,,,,,,,,,,(&&&&%%%%%%%%%#&            ///////////////////////////////(##&/,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,&*,,,,..,,,,,,,,,&#((((((((%#%,,,,,,&((((#&/,,,,,,,/((#(((#(###%,,,%%%%%%%%%%%%&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,/&&&/,,,,,,        ////////////////////////////(###&,...............,,,,,,,,,,,
,,,,,,,,,%////&*.,,,,,,,,,,&(((((((((%&,,,,,,/#((((#&&/,,,,,,,,((((((((###&,,,&%%%%%%%%%%%&&&/,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*&&&,,,,.  .////////////////////////###%&&&&&&&(,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,&///////%(,,,,,,,,/#&&##((((#(((&&,,&((((#%#&&/&*,,,,,,/(((((((####,,,&((((((((((##%/,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&%,,  ///////////////////////(%%%%&&&%###&,,,,,,,,,,,,,,,,,,,,,,,
...,,,,,,,*&///////%*,,,//////&#&##%(((((((((((#((#%*,,&,,,,,,,,,/(#((#(#%#&,,,((#((#(((((%#&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*&&&%%%&&&&&(///////////////////(#&&&&&&&&#####&,,,,,,,,,,,,,,,,,.....
,,,,,,,,,,,,,&(//////&//////&#####*&####(((((((((((&,,,(*,,,,,,,,,(((((((##%,,,,&(((((((((##&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&#//////////////////////////////////##############&,....................
.,,,,,,,,,,,,,,,*&&(//(//%&####&,,,,,,&&###%#(((((%##&.(,,,,,,,,,,,((((((###&...&%%%%%%%%&&&...................................&/////////////////////////////////////##############&,.,,,,,,,,,,,,,,,,,,
............,,,,,,,,,,,,*&&###&#&,,,,,,,,,,(&&&%######%%,,,,,,,,,,,/((((((##&...&%%%%%%%&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,........,&///////////////////////////&#/////////##############&/,,,,,,,,,,,,,,,,,,
........................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,///**,....................................................&#////////////////////////////%&#(///////####%#########&,,,,,,,,,,,,,,,,,,
......................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&#//////////////////////////////&##///////####&#########&/,,,,,,,,,,,,,,,.
,,,,,,,,,,,,,,,,..........................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&(///////////////////////////////&##///////####&&########&....,,,,,,,,,,,,
............................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&/////////////////////////////////&##///////#####&########&/,,,,,,,,,,,,,,
.............................................................................................................................,&////////////////##%%/////////////&#/////////#####&&#######&*,............
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&////////////////###&(///////////(////////////######&#######&(............
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&////////////////####&/////////////////////////(######&######%%...........
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..............&////////////////(####&/////////////////////////############(.............
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...........,***//(####(///////////////****,,,.....................,,,,,,,
..................,,,,,,,,,,,,,,,,,,,,,*(&&&&#*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..
...................................&&(((((((((((((%&%,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,%&&&&&%,,,,,,,(&&&&&#(((((((((((((%&&&*,,&&((((((#&%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,......................
.................................&(((#(((((((((((((#((&%.............&#&%...,,%&#((####&*/&&&((((((((((((((##((((((((((((((%&#((((((((((&(,,,,,,,.......................................................
...............................#&(#((((((((###((((((((#((&%.........(%##&..&&((#####&&%(((((((((#(((((((((((((((((##########%&&(((((((((##&,............................................................
..............................%%((((((&%###&&%%%%&&##(((((((&*......&(#%&&(((((##&((((((((#((((((((((((((########&&&&&%&((((#(((((((((((###&(...........................................................
..............................&(((((####&&%%%%%%%%%&&###((((((%&...&((#&(((((#%(((#((((((((((((((((#&&%(((((((((((((((((#&&&((((((((((((####&...........................................................
.............................#%(((####%&%%%%%%%%%%%%%&####(((#(((&%#((&((((((((#((((((((##((((((((((((((((((((((((((((((((((((%&#(((((((#####&..........................................................
.............................&(((#%##%&%%%%&&&&&&&&&&%&#####(((#((((&&((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((&%(((###%##&................                     .....................
.............................%#((#%##&%%%&&&&&&&&&&&&&&&###(((((((#(((((((((((#(((((((((((((((((((#(((((((((((((((((((##((((((((((((&&###%###&..........                               .................
.............................*&#(####&%%&&&&&&&&&&&&&&&&###((((((((((((((((#(((((((((((((((((((((((((((#%################(((#(((((((((&&####%#......                                       .............
..............................&#(####&%%&&&&&&&&&&&&&&&&%###((#(((((((((((((((((((((((((((((#(((((((((((((###%&&%################((((((#&###&....                                            ...........
...............................&(%####&%&&&&&&&&&&&&%&&&&###(((((((((((((((((((((((((((((((((((((((((((((((((#######%&&&%#############(((&%&...                                                .........
................................&######&&&&&&&&&&&&&%##(#&&###((((((((((%&&&&&&&&&&&&&((((((((((((((&((#&((((#(((%##%#######&&&&#########%&..                                                   ........
..................................&####%###&&&&&&&&%&%###(((((####((((%%%%&&&&&&&&&&&&&&&&&&&&&&&%(((&((#(#((((((((((###&&&&&&&%#%#%&&&%##&                                                      .......
....................................&&############%%##&&####%(((((((%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%((((((&(((((&&&&&&&&&&&&&&&&&&*.....          OF COURSE NOT! SEE! I SAVED YOU ONE.         .......
........................................#&&&&&&&&&&&&&&%######(((((%%%%&&&&&%%%%%%%%%%%%%%%%%%%%%%&&%%%#(((&(&&&&&&&&&&&%%&&&&&&&&&......                                                         ......
................................................&&###########((((((%%%%&&&&&&&&&&&&&&&&&&&&&&&&&%%%&&%%%(((%%&&&&&%%%%%%%&&&&&&&&#&......                                                         ......
........................................................&####(((((%%%%&#,,,,,,,,,,,,,,,,,,,&,,,,,,,,&%%%((%%&&%&&&&(&(,,,,,,,,,,,,&/.....                                                         ......
.................................................../&&&&&####((((((%%%&(,.                 &      ..&%%%#(%%&&,,,,,,.&            &......                                                         ......
..................................................,/%&&&%(*,,%&((((%%%%&                   &       %&%%%(((%%&       #.          &&%*(%&&/                                                        ......
.............................................*&%/////(#/*,,,,*,,,,((%%%&                   ,      *&%%%%((((%%&(                &%%,,,///&&                                                      .......
.............................................*,..&(//,,,,,,,,,,,,,,,/&&&&*                       &&%%%%((((((#%%&%          (&&(,,,,,,,#&*(.                                                     .......
...............................................&(////,*,,,,,,,,,,,,,,,,,,,,,,*%&/              %&%%%%(((((((#(((%%%&&&&&&(,,,,,(&/,,,,,,,*&                                                     ........
..............................................&///////*,/,,,,,,,,,,,,,,,,,,**,,,,,,*&&      %&%%%%%#(((((((#((((#((&&&&&#((((#&&&*,,,,,,,/,&(                                                   ........
..............................................&///////,//,,,,,,,,,,,,,,&(&#%&,,,,,,,,,,,(&%%%%%%%((((((((#((((&&%%%%%(((((((((%%%%&,,,,,,///&/                                                 .........
...............................................&#////////,,,,,,,,,,,,,,,&###&/&,,,,,,,,,,,,,/,,,,,,,,,,,,,,,(&&&&&%%%%%%%%%%%%%%%&&#,,,//////&                                                ..........
.................................................&(///////,,,,,,,,,,,,,,&###&  *&%,,,,,,,,,(,*(,,(,%,,,,,,,,,&&&&&&&&%%%%%%%%%%&&&&%*/////(&#                                                ...........
...........................heheheh.................&(//////,,,,,,,,,,,,,&####%#####&&,,,,,,,&,,(,,,,,,,,,,,,,,&&&&&&&&&&&&&&&&&&&&&(//(&#....                                              .............
.....................................................&%//////,,,,,,,,,,,*&//,,,,#&&&&&&&#//*,,,,,,,,,,,,,,,,,,,,*&&&&&&&&&&&&&&&/&(&%.........                                           ...............
......................................................./&(/////,,,,,,,,,,,&/&#&,...*&&%(.,/&&#////////////////////////((//////&&&%##&...........                                       .................
..........................................................%&(////*,,,,,,,,,/&**&,.&&/**/&,.(&%***%&&&&#(//////////////(#&&&&#((((##%&..............                                 ....................
.............................................................(&#////,,,,,,,,,,&&/&((*****************************%%%%&   (&#(((###&#...................                          .......................
.................................................................&&///,,,,,,,,,,,&(((****##**********%%/**********%%%/*/***&#(###&..........................                ............................
....................................................................*&%/,,,,,,,,,&((((**%%%%%(****************%%%**********#&##&,.......................................................................
.......................................................................(&%*,,,,,,(&(((((/********************(%%%/********(&&&((((#&....................................................................
..........................................&&&&%,.........................%&&*,,,,,,&((((((((**********/****************((#&((####&#.....................................................................
....................................*%&&&%,,,,,,....*&&&,............&&((((((&&,,,,,,&&((((((((((((/%%%%%#******/((((((&&####&&/........................................................................
...............................*&%,,,,,,,,,,,%&.....,,,,,,*&&*..*&&((((#(((((((#&/,,,,,,*&&&#(((((((((((((((((((((%&&(((##(((((%&.......................................................................
............................&&,,,,,,,............%.,,,,,,,,,,,,%&((#(((((((#######&,,,,,,,,,,,,,(%&&&&&&&&&&&%(((((((((####&&,..........................................................................
.........................&&,,,,,,,..........,,,,....,,,,,,,,,,,,,,/&&(((((#######%&,,,,,,,,,,,,,,,,,,&#(((((((((&(((((((((####&%.........................................................*&.............
......................%&,,,,,,,........,,,,,,,,,,,,,,,,,,,,,,,,,,,///(&%####%##&(//%,,,,,,,,,,,,,,,,*&(((((((((((((((((((((((####&..........................................,,,,,,,,,*&&###&,,,,,,......
...................,&/,,,,,,,.......,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,/////%&##&%(&&%,,//,,,,,,,,,,,,,,,&(((#((((((((((#((((((#(((#%##&&.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...,&&/(#####&............
.................#&,,,,,,,........,,,,,,,,,,,,,,,,,,,,,,,,,,/,,,,,////////#&##&&&,*/#,,,,,,,,,,,,,,,,&((((((((#((((((((((((((#((((#%#%&*,,,,,,,,,,,,,,,....................../&&/////(#####&............
...............&#,,,,,,,........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*///,//////////&#,##*//&,,,,,,,,,,,,,,,,#%(((#(((((((((((((((((((((((((#%##&&...............................&&#/////////(####&/............
,,,,,,,,,,,,/&,,,,,,,,.........,,,,,,,,,,,,,,,,,,,,,,,,,,,#%*,*////#/////////#&(&//&&,,,,/,,,,,,,,,,,,&((((((((((((((%&(((((((((((((((####%&........................*&&(/////////////(####&&*...........
..........&#,,,,,,,,........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&##((#&#/////&%//////&*&#/&&,,,,//,,,,,,,,,,,&#((((((((((((((#&(((((#(((((((#(######&,.................#&%//////////////////(####&#%%.........,
..........,,,,,,,,.........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#&##((((%&////%&&&//&....%..&,,*///,,,,,,,,,,*&(((#(((((((((#(#&#(((((#(((((((((####(,,,,,,,,,,,,,,&&(//////////////////////####&(##%%.........
............,,,,.........,,,,,,,,,,,,,,,,,,,,,,,,,*&&&&&&&&&##(((((&(#&##(&&,,,,,,,,,,#&,////,,,,,,,,,,&((((((((((((((#(#%&((((((((((((((*,,,,..........&&///////////////////////////####&/(##&,........
,,,,,,,,,,,,,,,,.......,,,,,,,,,,,,,,,,,,,,,,,,,%&#((((((((((%#(((((&&#(((&,,,,,...........*///,,,,,,,,&((((((((((((((((###&((((((/.................#&(//////////////////////////////###&(//##(&........
.....................,,,,,,,,,,,,,,,,,,,,,,,,,,,,/&%###(((((((((((((((((((&........................,,,,/...........,,............................&&/////////////////////////////////###%&///###&........
...........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&####&&###((((((((((((((((/,,,,,,,,,,,........................................................&&////////////////////////////////////###&////###&,.......
............................,,,,,,,,,,,,,,,,,,,,,/&#########((((((((((((/,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#&//////////////////////////////////////(##&/////###%#.......
,,,,,,,,,,,,,,,,....................,,,,,,,,,,,,*///(&%#######(((((((.....................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&%////////////////////////////////////////##&//////###&/,,,,,,.
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,............................................................................................&(/////////////////////////////////////////##&(//////###&,,,,,,,,
.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&////////////////////////////////////////////#&////////###&,,,,,,,,
.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.                                 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&/////////////////////////////////////////////#&/////////##%%,,,,&&##
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.                                          .,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&(/////////////////////////////////////////////(#/////////(##&,,&&#####
,,,,,,,,,,,,,,,,,,,,,,,,,.                                               ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%&//////////////////////////////////////////////(///////////##&&&//#####%
,,,,,,,,,,,,,,,,,,,,,        Don't ya want it? ??                       ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&//////////////////((##&&&///////////////////////////////////#&#///######&
,,,,,,,,,,,,,,,,,,                                                    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*&/////////////(&&&######//////////////////////////////////////%#///#####%&#
,,,,,,,,,,,,,,,,                                                   .,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&(/(//////%&&########/////////////////////////////////////////%(///######&##
,,,,,,,,,,,,,,,                                                ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&//%//&&#########/////////////////////////////////////////////////######&###
,,,,,,,,,,,,,,                                           .,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&//&#########////////////////////////////////////////////////////##(########
,,,,,,,,,,,,,,,                             #&&&# ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&//######///////////////////////////////////////////////////////##/#########
,,,,,,,,,,,,,,,,                        &&####&%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,/&//////////////////////////////////////////////////////////////##/##########
,,,,,,,,,,,,,,,,,,,,.              .,&&(####%&,,,,,,,/%&&&&&&%%%%%%&&&&%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,/&///&//////////////////////////////////////////(%&&&&&&&&&&#//##/(##########
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&((####%&,,/&&((((((((((((((((#########&(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,/&//&%&&(//////////((&&&&&&&#,/%///////////&&&&&&&&&&&&&&&&&&&&&//###########
,,,,,,,,,,,,,,,,,,,,,,&#,,,,,,,,,&((#(###&%&((((((#((((################&&&&*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&#&&&&&&&&&&&&&&&(**,,,,,,   &*       ,&&&&&&&&&&&&&&&&&&&&&@&&############&
,,,,,,,,,,,,,,,,,,,,&##&,,,,,,,&((((###&((((#(((((####%%&&&&&#(/,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&////&,,,,,,,,,,,,,,        %(           &&&&&&&&&&&&&&&&&&&&&&@##########&,
,,,,,,,,,,,,,,,,,,,&((##&,,,,/&((#((#%(((((((((#(((((((((((((((((%&%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#&&&&&&&&*&                   &(            .&&&&&&&&&&&&&&&&&&&@@%########&%,,
,,,,,,,,,,,,,,,,,,&#((##&/,,#%(((((#((((((((((((((((((((((((##(((((((%&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,/&&&&&&&&&&&&&&%&                *&               &&&&&&&&&&&&&&&&&&@&%########&&&&/
,,,,,,,,,,,,,,,,,,&((#(##&,(%(((((((((((((((((((((((((#(((((((((((#(((((&*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&&&&&&&&&&&&&#####&&             &&&&.              &&&&&&&&&&&&&&&&@&//######%&(////#
,,,,,,,,,,,,,,,,,,(&((#(##&&(((((#((((((((((((((((((((((((%%#######((#(((#&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*&&&######################&&/   ./%%#(((((##&#                 &&&&&&&%(/////#####&(////(###
,,,,,,,,,,,,,,,,,,,/&(((((##((((((((((((((((((((((((((((((((((&&&%#######((&,,,,,,,,,,,,,,,,,,,,,,,,,,,*&&#################################(((.(,(/((((#%%&                  ///////////###(//////(###%&
,,,&&#(((#&&&&&*,,,,,,&&&(%((((#(((((((((((((((((((((#&#((((((((&(,,,%&&&&&&/,,,,,,,,,,,,,,,,,,,,,,*&&######################################(((((((((#%%%%&                  ./////////(////////###&&&&&
,&(((((((((((((((((((((((((((((((((((((((((((((((%&&&&&&&%#((#((##&,,,,,,,,,,,&&#(((%&&,,,,,,,,,(&################&&&&%%%%%##&#############%%%%%%%%%%%%%&&                    ///////////////(#(////////
&((((((((((((((((((((((((((((((((((((((((((#&&&&&&&&&%%%%%%%%((((#(&,,,,,,,&&((((((%%%%&%,,,,,(&&%%%%%%%%&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&(                          /////////////////////(###
&(((((#(((((((((((((((((((((((((((((((&&&&&&&%%%%%%%%%%%%%&&%%#(((#(&,,,&&((&##%%%%%%%%%&(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,/&&/,,,,,,,,,,,,,,,,,,,,,,,,,,,,         /////////////////(####%&(
%(((((((((((((((#######(((((((((((((((%%%%%%%%%%%%%%%%%%%&&&&&%%(((((&&((((,*&&&&&&%%%&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,/&&&&&/*,,,,,,,,*#&&&%*           ,/*/////////////#(///&&&&
&(((((((((((((((((((((((((((((((((((((%%%%%%%%%%%%%%%%%&&&*,(*&%%#(&(((/,,,,,,/&&&&&&&&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*&,              / //////////////###&%**,
&#((((#((((((((((((((((((((((((((#((((%%%%%%%%%%%%%&&&*,,,,  & &%%((/,,,,,,,,,,,,,,,(((/&/,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&               ,///////////////#####&(
,&##((((((((((((((((((((#((((#(((((((((%%%%%%%%&&&*,,,,.       &&&%,,,,,,,,,,,,,,,*////#&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&                 &%/////////////######
,,&#######(((((((((((((((((#((((((((((((%%%%&&**,,,        *&&&%%#,,,,,,,,,,&,,#&(////&#%&&%/******/%&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&&,                (&///////////////######
,,,/&#########(((((((######(((#(((%&&(*,**(%%%&&&&&&&&&&%%%%%%/,,,,,,,,,,,##%/*(%(//%&**(*****%%*****((&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%&#     .,.            &%////////////////(#####
,,,,,,&&################%&((#&(((((&#,,*,*******,,,,,,,,,,,*&&(,,,,,,,,,,*///////&&/*******%%%**/(((&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&(,,,,*(&&               (&//////////////////#####
,,,,,,,,,,%&&&%%%%%&&&&&##&&((((&%*(#/,,*********,,,,,,,*&///#&&&&#((///((%&&&#(((&&&(((((((((((&&/,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&,                .&///////////////////#####
,,,,,,,,,,,,,,,,,,,,,(&&%#((((#&#&&/,*,,,,******,,,,,,,,,,,,,,,,,,,,,,,,&&  &(((((&&(((((&&&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&   ,,             &////////////////////#####
,,,,,,,,,,,,,,,,,,,,,,,&####((((&%///,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*/////(&%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&  ,,(             &/////////////////////(####
,,,,,,,,,,,,,,,,,,,,&#%&&&###%((&////,/,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,////(&&/,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,(%,,,&%            &#/////////////////////(####
,,,,,,,,,,,,,,,,,,,,,&%#(((&&###&&(/////,,,,,,,,,,,,,,,,,,,,,,,,,,,,////&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,##,,/&(   *       /&///////////////////#%/(####
,,,,,,,,,,,,,,,,,,,,,,,&###(((((####%&&&(///*,,,,,,,,,,,,,,,,,,,,////&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&,,&,&   ,(      &///////////////////(#&/(####
,,,,,,,,,,,,,,,,,,,,,,,,,&&#####((((((((/(,,*/(%#(/*,,,,,,,,,,,//(&(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,&#  ,&*    &(//////////////////(##&/#####
,,,,,,,,,,,,,,,,,,,,,,&&##((((((((##((,*,/,,,,,,,,,,,,,,,,,,,/(&(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&(#& ,,&*, #%//////////////////(###&(#####
,,,,,,,,,,,,,,,,,,,,,,,*&&&&&&%#(((//((,,,,,,,,,,,,,,,,,,,,*&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&/////&&%&&/&///////////////////####%%#####
,,,,,,,,,,,,,,,,,,,#&%######(((((#&(,,,/,,,,,,,,,,,,,,,,,,&#,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&///////####&///////////////////#####%&#####
................#&####(((((((((((((((&,,,,,,,,,,,,,,,,,,/&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*/####&(/////////////////(#######&##(/*
.............#&####(((((((((((((((#(((&(,,,,,,,,,,,,,,,,&(#%..................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*******,,,,,,,,,,,,,,,,,,,,
...........&####%(((((((((((((((((#((((%%,,,,,,,,,,,,#*,,&#(&*.........................................................................................................../&&&&..........................
........#####%#(((((((((((((((((((((((((&#,,,,,,,,/*,,%&(//&%(&..................................................................................................*&&&#(###&&..............,%&&&%(/(#&,,,
.........(##((((((((#((((((((((((((((((((&#,,,,,,,/(#/,&#%%&&#(%&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..........................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,(&&&#////(#####&/,,,,,,*#&&&%(//////////##%%,,,
,,,............/((((((((((#(((((((((((#(((&(,,,,,///#&/&##%#(((((%..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*%&&%/////////(####%&(*&&&&(//////////////////(##(&....
,,,,,,,,,,,,,,,,,,.......,/((((((((((((((((................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,%&&#/////////////#####&&%/////////////////////////(###%&.....
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...............................................................................................(&&(////////////////(#&&(/////////////////////////////#####&%,,,,,,
.........................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.................................................................#&#///////////////////(%///////////////////////////////(######&/.......
.................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&&//////////////////////////////////////////////////////##/#####&.........
.................................................................&&&%......................................................%&//////////////////////////////////////////////////////#///(####%&..........
.............................................................&&(((#&.....................................................&#///////////////////////////////////////////////////////////#####&............
........................................................./&#((((##&,..........,/(%&&&&&%(/.............................&%///////////////////////////////////////////////////////////#####&*.............
..........................................%.....&...../&(((((((##&....&&&%((((((((((((((((((((%&/.....................&////////(&&%//(&&%/////////////////////////////////////////(####&,...,(&&&&&&&&..
.......................................&...*........&#((((#((###&*&(((((((((((((##((((#######&&,.....................&//////&%///////////(&//////////////////////////////////////###&&&&&///(####&&.....
.........................................,.......#&(((((#((###&&((((((((#(((((((######%&&#..........................&/////////////////////////////////////////////////////////(##&&//////(####&&&.......
...................................&&%(#&#.....&&(((((#(((##%&(((((#(((((((#####&&&/...............................&(///////////////////////////////////////////////////////(%(////////(###%&#%%........
...............................,&#((((((((&,.#&(((((#(((##&&((((&((((((##%&((((((#%&&&%,...........................&/////////////////////////////////////////////////////////////////(###&%##&%.........
............................./&(((&&%(#((((&&(((((#((((##&(((((#((((((((((((((((((((((((((&&......................&#////////////////////////////////////////////////////////////////##&&####%&..........
............................&%#((&##&(((((%&((((((((((#(#(((((((%%%%%%%#(((((((((((##((((((((#&...................&/////////////////////////////////////////////(%&&&&&&%(/////////#&%######&...........
...........................#%###&#(##&(((%%(((((((((#(((&(((%%%%%%%%%%%%%%%#(##########((((((((#&....nom <3....../&//////////////////////////////////////#&&&&&&&&&&&&&&&&&&%////(#(/######&............
...........................&####&((##&((#&(((#(((#((((((((%%%%%%%%&&&&&&&&%%%%((##&&&#########(((&...............&///////(&/////////////////////////(&&&&&&&&&&&&&&&&&&&&&&&&&///(//(#####%&............
...........................&###%&(((%#&(&(((#((((((((#((#%%%%%&&*,,,,,,,,(&&%%%%((##&..../&&&&&&&&(......(&#(#...&//////&(/////////(%&&&&&             .&&&&&&&&&&&&&&&&&&&&&&/(////######&.............
..................,#%%#,....&#%#&(((##&%&((((((((((((((#%%%%%&,,,,,,,,,,,..,(&%%%#(((&*............,.#&&,....,&&&&&&&&&%&&&&%%%%%(#(/#%/&(                &&&&&&&&&&&&&&&&&&&&/////######&..............
..........*....&&(((((((((%&(&%##&(((##&#(((((((((/((((%%%%%&*,,,,,,          %&%%%((((&............../&&&&&&&&&&&&&&%#(((((*//*//*//,(/(###%&/           &&&&&&&&&&&&&&&&&&&//////#####&(..............
........&&&&.,&(((((((((((((((#&&#&(((((%(((((#((( *(((%%%%&&,,,,,             .&%%%((#(&......../&&(((((%%&&#########((((/*//*//*/*//,((#####%%&.        &&&&&&&&&&&&&&&&%///////#####&%...............
.......&&&&&&&(((((((((((((((((((((&&(((((((((#(((& (((%%%%&#,,,,                &%%%((((&...&&(((&#((%%%%%&&&########(((((/,//,//*(((((######%%%&&       &&&&&&&&&&&%(//////////#####&/................
......&&&&&%&%(((((((&##&%%&&(((((#(((((#((#(((((((((((#%%%&&,,,,                 &%%%((((&((((#(((&%%%%%%&&&&##########((((((((((((((######%%%%%%&         ////////////////////#####&.*&&&&............
%....(&&&&%%&##(((((###&%%%%%%&%((((((((((((((((((((((((%%%%&*,,                 / &%%%((((((#(((,,,,&&%%&&&&&###########################%%%%%%%&%            ////////////////#####&&%//(##&............
%%&..&&&&&%%&%(((#(#%#&&%%%%&&&&&&((((((((((((((#((((.(((%%%%&*,                 ( &%%%((((((*,,,,,,,,,,,/((&#%%%%%##################%%%%%%%&&                //////////////(##%&#/////##%&.............
%%%%&&&&&%%%%&((((#####&%%&&&&&&&#&&&((((((((((((((((/&(((%%%%&&,                  &%%%((*,,,,,,,,*/*,,*//(&%&&&*//&####%%#####%%%%%%%%&&&                   .////////////(%&#///////###&/..............
%%%%%&&&&%%%%%&(((######&&%&&&&&&&&%##(((((((#(((((((%&((((#%%%%&%                 %&%%,,,,,,,,,&%,,,///(&%(*&,*&&######%%%%%%%%%%&&#                       ////////////&#/////////###&(................
%%%%%%&&%%%%%%%&&((#######&&&&&&&&&&&&&&####((#(((((((#(((#(((%%%%%&#              &%%%,,,,,,,,,%,,%//%& %*/&/&###%%%%%%%%%&&&(,,,,,                       ..///////////////////(##&&&&&&/..............
%%%%%%&&%%%%%%%%%&&#(#%#####%%#########%####(((#(((((((((((((((((&&%%%%&&,       &&%%*,,,,,,,,,,,,/(&(**/**&%#%%%%%%%&&&&&&&&&%*,,,,,,.                     ./////////////////#%&(/##%&(................
%%%%%%%&%%%%%%%%%%%%%&&&#############&&###%###(((((#(((((&%//#%**********((####%#**,,,,,,,,,,,,,,%&((&&((&%%%%%%%%%&&&&,........../&%,,,   .&%//////////(&///////////////////(#&&&&&&&&&%/..............
%%%%%%%%%%%%%%%%%%%%%%%%%&..,*//*.../%%/..&####(((((((((((&(*//*********************,,,,,,,,&,,,&/*#&&&&%%%&&&(......................*&/,&%////////////////////////////////////////////((####&*.........
%%%%%%%%%%%%%%%%%%%%%%%%%%&......*&#&&.....&%##%#(#((((((&*/&/*********************,,,,,,,,,,&&**//#&#&%,..............................&////////////////////////////////////#%&%%%&&&&&&&%*.............
%%%%%%%%%%%%%%%%%%%%%%%%%((&.&&.&%#(((&......&%####(#(((%&&&/,*,,***************,,,,,,,,,,,,,//%&/..................................,&/////////////////////////////////////&//########&%................
%%%%%%%%%%%%%%%%%%#(%%(%(((&&#&&&#(((((&...&&&##&#####((((&///,,,,,,,,,,,,,,,,,,,,,,,,,,,,//&%.....................................&//////////////////////////////////////////&%/########&#.............
%%%%%%%%%%%%%%%%%%((((((((((&((&##(((((#&..(&##((((&&%####&///*,,,,,,,,,,,,,,,,,,,,,,,,,,&&......................................&(//////////////////////////////////////////////&#/#######%&...........
%%%%%%%%%%%%%%%%%%((((((((#(#((&#(((((((&....*&###%#((((##&///**,**,,,,,,,,,,,,,,,,,,,,%&.....,%&&%&...........................&#//////////////////////////////////////////////////&(/(#######&.........
%%%%%%%%%%%%%%%%(((((#(((((((((%((((((((&(......,&&########&((&%###((((#&#,,,,,,,,,,,,(,&&%*,,//&&*..........................%&/////////////////////////////////////////////////////&(///#######&/......
%%%%%%%(((%%%((((((((((((((((((#((#((((((&&*..&&&&&%%%###(((##&###((#((((((((*,,,,,,,,,,,,,**,,,,,,,*%&%.................../&////////////////////////###/////////////////////////////&////(#######&%....
&&%%%%((((((#(((((((((((((((((((((#((((((&&&&....(&&%#########&%#%(((((((((((((((,,,,,,,,,,,,,,,,,,#&#//*(&...............&(///////////////////////###&#(#&&(////////////////////////((//////#######%&..
&&&&&%((((((((((#(((((#((((((((((((((%%%%&&%%&..........#&&##%#&&#%(((((((#(((((((((,,,,,,,,,,,,,,,*,,,*&&&#............&#////////////////////////###&   /////////////////////////////%////////########&
&&&&&##%((((((((((((((((#((((((((((((%%%%&%%%%&.&&..............,&###(((((((#(((%(((((*,,,,,,,,,,,,,,/&//(&...........&&/////////////////////////###&       /////////////////////////////////////#######
,&######(((((((#((((((((((((((((((%%%%%%%%%%%%&&&&,...............&###(((#((((((((&(((((/,,,,,,,,,,,,,,(&%#%.........&/////////////////////////(###& ,        .////////////////////////////////////#####
....&&%###((((#((((((((((((#%%%%#%%%%%%%%%%%%%&&%&/................(&##((((((((((((#&((((((,,,,,,,,,,,,,,&.........&(/////////////////////////####& *,           *//////////////////////////////////(###
..&%##%%&&&&&%#(((((((((##((%%%%%%%%%%%%%%%%%%&%%%&..................&##%((((((((((((%&((#(((,,,,,,,,,,,,,&......%&//////////////////////////####&,&&   ,           //////////////////////////////////(#
.....(&&%###########((((%%%%%%%%%%%%%%%%%%%%%%&%%%&...................*&##(((((((#(((((#(((#(((,,,,,,,,,,,,&...*&///////////////////////////###%&(&.&   ,*   ,         /////////////////////////////////
.........&&%########&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%......................&#,,,,................................&(///////////////////////////####&#...&  .,/   .*,,         //////////////////////////////
................./&&&&&&&&&&&&&%%%%%%%%(/................................................................. .%%///////////////////////////(###%&.....(%  ,,&   ,/(,,          ///////////////////////////
.................................................................................../&&&,.....................,//////////////////////////####&%.......#& ,,,&,  ,*&&*,           ////////////////////////
.............................................................................%&&&///##&............................////////////////////####&*..........&&,,/&&& ,*&.&*,            *////////////////////
....,,,,,,..........................................................*%&&%(/////////##&%.......................................,,*//////((*,...............*&&,..,&&&..&(           .....................
....................................,,,,,,,,,,,,,.........../&&&#////////////////(###&&.................................................................................................................
....................................................,&&&#///////////////////////####&#&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,..........................
..............................................%&&(/////////////////////////////####&##&.................................................................................................................
,......................................./&&(//////////////////////////////////###%&(##&.................................................................................................................
......,,,,,,,,,,,,,,,.............../&%/////////////////////////////////////(###&#/##%&.................................................................................................................
.......................,,,,,,,,,,&&////////////////////////////////////////####&//###&.........................................................................................................,,,,,,,,,
..............................(&//////////////////////////////////////////###&(///###&,.......................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.............
............................&&//////////////////////////////////////////(##&(////###&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,......................................
,,........................&&////////////////////////#&%//////(&(///////(#&//////###&(.......(&&(.................................................................................................,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,*&/%&&%&&////////////////(&/////////////&/////%////////(##&%,,(&&/###&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.
.......................%%%////////&//////////////////////////////(////////////(##&%&%//(###&%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.............................
......................%&/////////////////////////////////////////////////////(##&#///(####&.............................................................................................................
,,,,,.................&(////////////////////////////////////////////////////(##&////(###&(........                      ................................................................................
,,,,,,,,,,,,,,,,,,,,,#%////////////////////////////////////////////////////(#%/////####&.....                              .............................................................................
.....,,,,,,,,,,,,,,,,&////////////////////////////////////////////////////#(/////#####&/,,.                                  ...........................................................................
..................,,,&//////////////////////////////////////////////////////////#####%&,.                                     ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.....................&/////////////////////////////////////////////////////////######&,       thanks, dude.                   ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
.....................&////////////////////////////////////////////////////////((####&/                                        ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,........
,,,,,,,,,,,,,,,,,,,,,&////////////////////////////////////////////////////////#%@@@&&.                                        ,,,,,,,,,,,,,,,,,,,,,,,,,,................................................
,,,,,,,,,,,,,,,,,,,,,&/////////////////////////////////////////////////////(&@@&@@@&,,                                      .,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,&///&/////////////////////(/////////////////////////&&&@&&@@@@%,,,                                    ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,%&/&#/////////////////////&(///////////////////////%&&&&&&@@@@&,,,,,                                 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                     ,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,#/...%&&&&&&&&&&&&&&&&&&&%(&(((((///////(%&%&&&,       &&&&@@@@&,,,,,,,,                            ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,                             ,,,,,,,,,,
,,,,,,,,,,,,,,,,.,,,..#########%&&&&&&&&&&&##%&&&&%%%###((((*(,#/%&        &&@@@&,,,,,,,,,,,,,                   .,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,         FAGGOT?                ,,,,,,,,
,,,,,,,,,,,,,,,,,,,#%########%&&&&&&&&&&&#############&((((((,(,#%%#       #@@&&,,#&&%&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*,,,,,,,,,,,,,&&*                                .,,,,,,,
,,,,,,,,,,,,,,,,,%&#########&&&&&&&&&##############&&%&##(((((##%%&       ,,,&#&(/##&&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,/&(((((((((((#&%,,,,&##(&                             ,,,,,,,,,
,,,,,,,,,,,,,,,(&#############%%#############%%&&&%%###&&##%%%%%&&      ,,/&(///###&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*&#####((#((((((((&*,%###(%/                       ,,,,,,,,,,,,
,,,,,,,,,,,,,,&#########################%%&&&%%%######%%%%%%%&&.       *&/////###&*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#&%###%%(((((((((&*&##((&,,,,,,,,,....,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,&%####################%%%&&&%%%%###%%%%%%%&&&%,,.         /////(##%&,**,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,#&%(((((%((((&&%((((((&((&&&#((#(,,,,&&%#,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,&##############%%%%%%&&&%%%%%%%%%&&&&&/*,,,,,            /////##&&%##&*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&((((##(((((((#(((((((((((((((#(&(((#,&#(%,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,%&######%%%%%%%%&&&&%&&&&&&&%&&&&&&%#*,,                  ./////(##%&*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&########&&&&&&&(((.((%%%%%%%(((((((#(#&#(&,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,&%%%%%%%%&&&&%(*,,,,,,,,,,,,,,,,,,,,,,,&                    /////(##&&,,,,,,,,/%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&,   .,,&%#((%&&,,,,,*&%((((((((%#(&,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,#&&&&%*,,,,,,,,,,,,,,,,,,,,,,(,,,,,,,,,&                  *&%/######&&,,,,,,,,,,,*#,,*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,/(        ,&%(%&.      ,,&%((%.((((((%,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&%,,  ..    .%&&&&#        ////////(####%&,,,,,,,,,,&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,(      *   &%%&          ,&%(&&((#((((/,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&&*             &********/&%  ///////////#####&,,,,,,,,,/,,,,,,,,,,,,,,,,,,(&&,,,,,,,,,,,,,,,,,,,,,,,%          ,&%%&    *      &%((((((%#(((&,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&&,,,,/#            &***%%%%***(&////////////#####&*,,,,,,,,,,,,,,,,,,,,,,,,/&&&%%&,,,,,,,,,,,,,,,,,,/&&((         &%(%&           &%(#((##&#((((##,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&*&&&&           (.(&/***%%%******&////////////#####&*,,,,,,,,,,,,,,,,,,,,,,&&&%%%%%&(,,,,,,,,,,,,,,/&&#((((&(#&&&*%#//%&          ,&%(((&#%#((((#((&*,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&&.    ,  && .&******&&&&&&&&&&&&///(/////////#####&/,,,,,,,,,,,,,,,,,,&&%&&%%%%%%%&*,,,,,,,,,,,,,&&&%%%&&&,,,*///////#%.       #%%(#&(*/&&#(#((((((&,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,&%&*  ,,*  &((*********&%##(&&(///&&#&&&/////////#####&*,,,,,,,,,,,,,,,,/&&&&%%%%%%%%%&&&,,,,,,,,,,,&&&&&&/,,,,,,&%******(##%(/(%##*/*,,*//*&###((((((((&/,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,/&(#& .,*,   &((#%%%/***%%%&#@@#//&&(/////&&////////#####&*,,,,,,,,,,,,,&%(&&&&%%%%%%%%%&&&**&#&,,(##(%&///,,,,,,,*,/*************/#*****,,,/&%%%####(((#(((&,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,&((##&,,&.    &%(((((********(&###&%/////////(&#/////(#####&,,,,,,,,,,,,&#(&&&%&%%%%%%%%&&%&##((&,,,%%#(((&(//*,,,,,,,,,,***************,,**,//&#####%######&*,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,&%/(###%&(       *&((((((&&((((((%&&&#////////////&#////######&,,,,,,,,,,,&##(#&(((%%%%(((&%##((((&,,,,,&%#(#((&%//%/(.#&,,,,,,*,*****,,,,,,/*///&/&&%####&&(,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,#&///####&           *&#((((((((%&&&&%&&&#///////////(&////######&,,,,,,,,,,&%#(((#((#(%((((#(((#((&,,,,&##((#&(((((%(&#&//&,,&,,,,,,,,,,,,,,//////&,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,(&////###&#                /&&&&&///&&///////////////////&///######%&,,,,,,,,,/%%#((((#(((((((((((((&&,,,,,,,&&%((((((((&&##((/#*,,,,,*//##%%&&&&&#(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,#&/////###&                 ,,,&&&////&&////////////////////&#/(######&(,,,,,,,,,&#%#((((((((((#((((&#((,,,,,,,*&##(((((((((((((&,,,,,(*&((#*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,&&/////(##%&                 ,,*&##@####@@#####/////////////////&/#######&,,,,,,,&&&&%###(((#(((#(((((((&,,,,,,,&###(((((((%(#((#((&,,/*,(&&%((%,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,&#//////###&.                 ,,,&&&&&%###@@#########//////////.   &########&,,,,,,(&&%###%((((((((%#(((&&&&&,,,,&##(((((((((&#(((((((&,,&(*&#((((&,,,,,,,,,,,,,,,,,,,,,,,,,//,(,,,,,,*,(#
,,,,,,,,,,,#&////////##%&                  ,,*&&%#&@####&@###########(/////,      &#######&#,,,,,,,&&&&&&&&%%%%%%%%%%&%%&*,,,/%##(#(((((((((&#(((((((#/%#&###((((&,,,,,,,,,,,,,,,,,,,,,,%(%,&*&&,##,,/,%
2023-04-24 23:43:54 -07:00
268a69c152 Descriptive commit message 2023-04-24 22:13:35 -07:00