&&&&&&&&&&&&&&&&&$.+&x&&&&&&&&$&&&&&&$&&&&&&$$&&&&$x$$X&&&&$$&&$$$$&&&xX&&&&&&$$$:...;$$&&&&$&+.$$X$&$x++++;+++++x+xx++++++++++++;;;;;++;;;;;;+++;;+x+xx$&Xx&&;;$+X&&&x::;::&x:X&&&$$&&&$&&&&&&$$XX&&&&&&&&$x$&$x&$X$&&&xXxX&&XXxx+XX+xxx+;;::+&&&&  
  $&&&&&&&&&&&&&&&&&&$&&&&&&&$&&$xX$&&&xx&&&&&&$x+;+X$$&XX&X&&&&&&&&&$$&$&&&&&&&&&+....X&xXx&&&&;:$&X$$$$&&&&&&&&&&&&&&&&&&&&&xx&&&&&&&&&&&&&&&&&&&&&&&&$x$$xx&&:;$X&&&$x;;;:.;+:x$xxx$x&X&&$$&&&&&&&&&&&&&&$$&&&$$$$$$$&&$$xx&&$xxXx$&&xXx+x$XXx$&&&  
  &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&x+$&&&&&&&&&&&&$x+;;xX&&&&&&&&&&&&&&&$$&&&&&&$:..:;$&x;xX&&$+x$&$$X$$&&&&&&&&&&&&&&&&&&&&&xx&&&&&&&&&&&&&&&&&&&&&&&&$x$Xxx&&;:$x$&xx&x;;:::XxxxxxXXxXX$xx;xx&&&&x;$$xx&&&$;xXx.;x$Xx+x$x$$x$$Xxx$&&$xxXX&&XxX&&&&  
  &&&&&&&&&&&&&&&&&&&&&&&&&&&x$&&&&&&&&&&&&&&&&&&&&&&&&&&xxX&&&&&&&&&&&&&&$x$&&&&x:...x$&x&XX&&$xx$&$&&&Xxxxx+;x+x+++++++++x++;;;;;;;;;;;;;;;;;;;;:::;+xxx$&$x&&x;$xXxxx&x;;:::xXxxxXxX$x$&&&&xx&&&xxx$$xXx;+$$:;:xX&&$&xX$X$$x+Xx+x;:;;x&$&&&&&&&&$$  
  &&&&&&&&&&&&&&&&&&&&&$$X$&&&$X&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&&&&&&;...:xx&xXx+&&XXXX&$$X&&&&&&&&&&&&&&&&&&&&&&&xx&&&&&&&&&&&&&&&&&&&&&&&&&x$&$x&&$;XxXxxX$$+;;::;$&X+x$$xx&&&&&&$&&&X$$x$xx;.;$$x$&$X&$+X$$$xX$x+$Xx$Xx+:x$$X$X$&&$&&&  
  &&&&&&&&&&&&&&&xX$$&&&$$$$&&&X$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$;+$&&&&&&&&&&&$x::::x&x&xx:;&$Xx;;&$$$$&&&$&&&&&&&&&&&&&&&&&&x+&&&&&&&&&&&&&&&&&&&$&&&&&x$$Xx&&x;xxXx$X$$x;::::+Xxxxxxx$$&&$x$X$$$xxX&&Xx;+XXx&&&$&$$$$$$&&&&&$&$$&&&&&&&&$xX&&&&&x;  
  &&&&X&&&&&&&&&&$&&&$$&$&&&&&&&&&&&&&&&&&&&XX&&&&&&&&&&&&&&&&$$&&&&&&&&&&$;X$&&+...:X&x&xx+$&$Xxx;&$xX$$XXxxXXxxxxxxxxxxx+x;x+;++;++x++xx+++;;;++++;+xxxxX$$x&&x:xx$xxx$$&+;;:::$$xxx;;x+++xxxx&x$xX&xxxxX$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&X$&&&&&&&&;.  
  &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&Xx&&&&&&&&&&&&&&&XxX&&&&&&&&$&&&&x::.:+&&x&xx;x$$Xx;x&$x$X$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$&&$XXXxX&$x;xx$$Xx$$&x;;;::x$+::;xx+xxxxxx$&$&+x&$xxxX$&&Xx$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&++X  
  &&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&xxx&&&&&&&&&&&&$&+...:x&&x&Xxx;x$xx+;X$xxxx$$$$$$$$$$$$$$$$$$$$$Xxx$$$$$$$$$$$$$$$$$$$$$$$xxxxxX$xx;xx$Xxx$$&&;;;;:;xxx;+x;xXXxxxX$$XX$&$x;x$$&&$X+&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XX&&&&&  
  &&&&&&&&&&&&&&&&&&&&&&&&&&&&X&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$....;$&&x&Xxx;X$xx:X$$+;+;;;;;;;:::::::::::::;;;;;:::;:;;;::::::;;;;;;;;;;;++xX&&X:xXXxxx$$&&x;;;;;xx+$$xxXxxXxx$;:X&&&$&&$$&&$X&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$xx$&&&&$  
  &&&&&&&&&&&&&&&&&&&&&&x$$&&&&&&$x$$&$$&&&&&&&&&&&$XX&&&&&&&$&&&&&&&&&&&&&&&&x...:x&&&x$XX&xX$xxx:$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$;xX$+;x$$&&x+;;;;+$$$X+X&$xxX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&X&&&$&&&&&&&&&&&&&&&&&&&&$  
  &&&&&&&&&&&&&&&&&&&&$X&&&&&$&&&&&&$&&+xxx$$XX$&&&&$&&&&&&&X$$$x$&&&&&&&&&&&&....:x&&&x$Xxxx$$xXX$X$&&&&&&&&&&&&&&&&&&&&&&&&&+x&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$;xX$x+xX$&&&x;;;:;x$&&&$xxx&&&$&&&&&$$&$xXx&&&&&&$&&&&xxx$$X&&&&&&&&&&&&$$&&&&&&&xx:  
  &&&&&&&&&&&&&&&&$&&xx+x$$$&&&&&$&&Xx&$$x+x&&&$&&X&&&&&$$xx$$$&&$&&&x+x$&&&&x....+$&&&$x$x$$&&xX&$&&&&&&&&&&&$$xXXX$$$$$$$$$$;;X&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&+xX$x+xX$&&Xx+;;::+$&$&$$$$&&&&&&&&&&;:x$xx$&&&$&&&&&&&&&$Xx&&&&&&&&&&&&&&&&&&&$$&XX  
  &&&&&&&&&&$$$&&&&xxx$&&&&&&&&&&&&$+;$Xxxxx;x&&X$$$$x&$X&&&&&&&&&&&&XxxX&&&X:...:xXX&&$x$x$$&&xXx+xxxxx++++++;++++++;;+++;++++;;;;+;;+++;++++++++++++;;;;++xxxxxxx$$xxxX$&&;x+;;;::x&&&&&&&&&&&&&&&+.x&$X$$$Xxx&$x+xxx&&$&&$$X&&X$&&&&&&&&&&&&$&&&&&  
  &&x:x$&&&&$&&&&&&$&&&&&&&&&&&&&&&XX&$$&&$&$$&&$&&&$:;$&&&&&&&&&&&&&&xx$&&Xx....;$&$&&$x$xx+$&Xx+$&&&&&&&$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&xxX$X+x$$&&;xx;;::.;&&&&&&&&&&&&&&&$$&&&$x$x::;$&&&&&$XxxXX;xx;;x$xX&&&&&&&&$XX+;$&x  
  &&&&&$XX$&&&&&X$&&&&&&&x&$&&&&&&&&$X&&&&&&$&&xX$&&&XxxX&&&&&&$&&&&&&&$$&$x.....+$&x$&$x$Xxx&&Xx$&&&&&&&&&&&&&&&&&&&&&&&&&&&&;x&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&xXxX$$xXX$&&+;$;:.::.x$&&$Xx$&&&$&&&&&$X&&&&x:x$$&+$;:;X$$&&+&x;;x$$&&&&&&&$$Xx;.:XX$  
  &&&&&&&&&&&&&&$;:+&&&&&&&$&&&&&&&&$$$&&&&&&&&&&&$$Xxxxxx&&&&&&&&&&&&&&&&&x....:x$xx$$$x&Xxx$$$x$&&&&&&&&&&&&&&&&&&&&&&&&&&&&+x&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XxXXXXXX$&&$xX;::::::x+xx+&&xx&&$x$&$&&&&&&xxxx&&&&$$&&$$&&x&&$$&&&$Xx;x$X$$&$;;x+$&  
  &&&&&&&&&&&$$&&&xx$&&&&&&&&&&&&&&&&&&&&&&&xx&&&&&$Xxxxxxx&&&&&&&&&&&&&&&&...::;X$x+x$$x&$XxX$$Xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;:::;;;++xxxXxXX$XXx$&&:++x;:;:..;x&xxX$xxX$XXxx;;x+::;x$&XxX$$&&&&xx$xx$$xX$$X;;xx;X$$&$$$$$XX$  
  &&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&xxxxxx&&&&&&&&&&&&&&&x...::x$X+;;$$x$$$&&$$XX$$&$$$$$$$$$$$$$&&&&&&&&$$$$X$$$$$$$$$$$$$$$$$$$$$Xxx+xxxX$$$&$xxXX&&$x$&&::;x;::::.:&&&$$$XXXxX$$&x:::..:x$&&&&&&x:;::;Xx+++;x$X$$&$$&&$xxx$$$X$$$  
  &&&&&&&&&&&x&&$&&$x$$&xx&&&&&&&&&&&&&&&$$&&&&&&&&&&&xxxxx+x$&&&&&&&&&&&&:....;$$x;:x$&x$$x$$&$XX&&&&X$&&&&&&&&&&&&&&&&&&&&&&:x&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&x$xXx$$$x&&&+:;++:..:..;&&&x$$$X;;x;$&&+xX$x+xxxX+x:;$&X;:;:+xxXx&&$XxxxxX+xXX$&&&&X&  
  &&&&&&&&&&$&&&&$$&&&&xxx&&&&$&&&&&&&&&&&&&&&&&&&$X&&$XXxxxxx&&&X$&&&&&&x....:x$$x;;x$&X$$X$$$XXXx&&&&&&&&&&&&&&&&&&&&&&&&&&&:+&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$xX$&&$x&&&x::;x;..::..Xxxx+;xxx$$&&&$$$X;;;.:+:.:xxx;:.;X;x$&XX+&&&x+Xx;x$&&$xx&&&&  
  $&&&&&&&&&&XX&&&&&&&&&;;&&$x;xx&&&&&&&&&&&&&&&&$$$X&&&&&$$&&$&&&&&&&&&&:....:$$x+;xx$&$X$$&$$XXx;;+xxxxxxxxxxxxxxxxxxxxxxxxx::xXxxxXXXXXXXXXXXXXX$&$$$xxxX$$$$x$xX$&&$x&&&x;:;xx:.:::.:x&&$X$Xx+$&+;x$$$&&Xxx++::::;xxxxxXX&&+:;$$x$xX$+x$xxX&&&&$$  
  &&&&&&&&&&&&&&&&&&&&&&&&&&&&&$xx&&&&&&&&&&&&$$&&$$$$&&&X+++xxxx&&$xX&&x:...:;&&x;;x&$&$x$$&&xxXx;;++;;;;;;;;;;;:;;+;;;;::::;::::::::::::::::::::::::::::::::::;Xxx$&&$x&&&$+:;X$;;;::.:xxxx$&&$$$$x+x$$&&&&&&&x+x&&$X$&$:;&&&&$xXX$&&&&&Xx&&$xxxx$&  
  &&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&&&&&&&&XXXxxXXXXXXXXXxxxxxxxx+X&&&&;::::;$&$x;+X&$$$x$$$$$$$$&&&&&$&&&&&&&&&&&&&&$$$$$$$$xxX$$$$$$XXXXX$X$$$XXXXXxxX$$Xxxxxx$x&&&&Xx&&&&x;;X&xxxx+;;:::.::;+xxX&$$&&&&&&&&&&&&&&&Xxxx::&&&&&$&$xxxxX&x&&xxX$&&&x  
  &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&XXXXxX$$$$$$$$&&$xxxx++;;xxxx+xxX$$&&$x;x&&&$$xx$&&XXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&xx&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XxX&&&&x&&&&x+;X&$Xxx++++++xxxxx;;:::;xx$&&&&&&&&&&&&$X$+:;&&xxxxxx+xxX$&&&Xxxx&&&$;  
  &&&&&&&&&&&&&$&&&&&&&&x&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXX$Xxx;;:xX$&&$$$$$$XX$&&$+;X&&&$$xx$&&$x$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;+&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Xx$&$&&X&&&$x+;$&x&&&&xXXx++++xxx$;.:::;:;X$&$&&&&&&$x$&$$&&Xx;;x&Xx$&$&&X$xxxxxX&&$  
  &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXX$$;::::;;&$$$$$$$&&&&&&&&$xx$&&&$&X$$&&&&&x;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;xxxxxx+;;++++;;+;;;;;++++++++xx+x&$&&&&&$&&&&x+xX&X&&&&&&&&&&&$Xxxx+.....:.x&&&&&&&&&&$&$X$xxX$+;;;x$&&$x$$x+xXXxxXxx  
  &&&&&&&&&&&&$&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&$$$$XX$&+:.:..:$&&Xxxx&&&&&&&&$&$xX&&$&$&XxXx+++;+;;;;;;:::::::::::::.............................................;;;x$$$&&&$$xx$$X&&&$&&&&&&&&&&$x;;.......+X&&&&&&&&&&&&&$x&$$Xxxxxx;;x&$Xx+XXx+;X+  
  &$X$&&&&&&&$&&&&$;x$&&&X$&$&$&&&$XxxxxX$&&&&&&$$$$$&&X:...::;&&&$$xx$&&$&&&&$&$X$Xx$+$&$X$x;;;;;;;;;;:::::::::::;;:::::.::::::::;::::::::::::...::::::::::::::::::::x&&&&&$x$x$$X$&&Xx&&&&&&&&&xX+x:......:$&&x$$x&&&&&&&$$&$xxX$$x++x&&&&&&$x;;$&x  
  $&&&XXX$$$$&&&&&&&&&&&&&$$&$$$$XXxxxX$$&&&&&&&&$$&&&$:::.:::$&&$&&XX$xX$&&&&$&$X&&$xx$$Xx;;::::::::::::::::::::::::::::::;:::::;;;;+::::::::::::::::::::;;;;;;;;;;;;;x$&&&&$$x$$X&&&&&&&&$&&&&XxX&;x:...::.+$$xx;x$&&&&$xxX&&Xx+;xxxx$xx;;:;;;;x$$&  
  &&&&&&&&$&Xx$$&&&$X&&&&&&&&&&&&$X;;;$&&$XX$XxxXxxX$$;:::.::x$&&$&&$&&&&$&&&&$&$X$&$&$X+$x;;;+x+xxxx;;;;:::::;;:::;;++x$XXxXxxxxxxxxxx;;;;;;;::::::::::;;;+xxxxxxxx+xxx$$$$$$+x$$X&&&&&&&&&&&&$xxX&X++:.....:x&$;xxx$X&&&$&&$xXx+x$$x+X+$&x;$&&&&$$$  
  xX$&&$&&$xxx&$&&&&$&&&&&&&&&&&&&&$x&&$XXXX$$xxxxxxxX::::::;&&&&X&&&&&&&&&&&&$&$XxX&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$Xxxx$$X&&&&&&&&&&&Xx+xX&&xx;......:&&Xx+X&&X$$&$$$XX$$XxxX$x;;;;+X&&$xx++  
  :::$&&&&&&&&&&&&&$Xxxx$&&&&&&&&&&&&&&&&&&&&&&&$Xx$&:::..::X$&&&X$&&&$$&$&&&&$&&$$$xxX$x$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$x$x$$X&&&&&&&$XxXXXxx$&&&++:....::;&$XxX&&x;+xxx;+&&$+::::;;;;;:;+X$XXx+  
  ;;X&&&$&&&&&&&&$$&&&x;;;;;x+xx$&&&&&&&&&&&&&&&&&&&x::::::;$&&&&X$&&&$xx;$&&&$$$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$XXx$$X&&&x$&&xx$&$$xx$&&&x;;:...:.:x$&&&$$X$&$&$x$&&$Xx&&&&&$x$$x;;;;x$X  
  &&&&$&&&&&&&&&$$$&&&x++;xX&&&Xxxx$$Xx$$&&&&&&&&&&&:::::::$$&&&&X$&&&&xxx:x&&$$$$XXxxx$$XXXxXXxxxXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXX$XXXXxxxxxxxx$&&&&&xxx$$X&&&&&&x.$$&&&xx&&&&x;+:....:::xX+xXX$&$XxxXxX$&&$&&&&&&&$&&x;;;;:+  
  &&&&&&&&&&&&&&&&&&$XXx$&&&&&&&$$&&&Xxxxxx+xX$$xx+:::::::x&$&&&&$$&&&&$;+&$&$$$$$$$x+;X$$$x++xxx$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$Xxx+;:::::::::;;:::.:;XXxx&&$&$X$&&$x$&&&&&$xxx&&&&:+;;.....:::x;;xxxxxxxxxx$$&&&&&$+;;:;x$&&$Xx++  
  &&&&&&&&&&&$XxXxxx;++xXx;;+x$Xx+;+xx&&$xx&&&&&&&x:.::::;$&$&&&&$X&&&x$&$&$&$$$&$$$XxxxxxxxxxX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$Xxxxxxxxxxxxxxxxxxxxxxx$x&$X$&&Xxx&$$xxxxxx&&&&++;+:.....:::::;xxxxxxxxX&&&&&&&x;;;;;;;x$$X;+x  
  xx$&&&&$xx+xx$$&$$&&$$XX$&&&&&&&&&&$&&&Xxxxxxx$$:::::::x$&$&&&&$X$&&&&&$X+&$$$&$$&$xxXxxxX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXX$$XxX$$$$$$X$$XxxX&$X$&&$xXx;xX&&$xX&&&&xxxx+:.....:+xxxxXxxxxxX$&&&&&&&&&&x;x$x$&&&&&$  
  &&&&&$$$$&$X&&&&&&&&&&&&&&&&&&&&&&x++;xxx;xxx+x:::..::;$&&X$&&&$X&&&$&&&$;&$$$&&$&$$&&&$$&&$$&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&X&$X&&&Xx&$&&&&&&xX&&&&xx&$x;:..:.:;;X&$$$&&&x;x&&&&&XX&&&&+&&&&&&&&&&  
  X$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$x$&&;:;$&xx+:::::::x&&&$$&&&$X&&&&&&&X+$$$$&&$$&$;;&$$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XX$$$&&&&&&&&&&&&&&&&&&Xx&Xx&$X&&&&x&&&&&&&$x$&&&&+x&&xx;.....::+$$$$&&&&$&&&&&&$Xx$$$$&$Xx+X&&&&  
  &&&$xx&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$x$&&x:::::.:+&&&&$$&&&$X$&&&$xx+x$$$$&&$Xx$$xXxxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&X&&X&&&&xx$&&&&&$x$&&&&+x&&$x+::....:;x&&&&&&&$&&&&&xxX$&&&xXXXx;;xx$&  
  &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&+::::..;X&&&&$$&&&$$X$&xxxx+x&$$$&&$$$xxxxx$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXX$$$X$$$XXXxxxxxX&$X&&&&$XxX$&&&xx$&&&$xx&&&Xx;......:;$&&&&&&&&&&Xx+x$&&x;;;;xxxxxxxx  
  &&&&&&&&&&&&&&&&&&&&&&&&$xx$&&&$xx$&&&&&&&&&X:.:::::x&&&&&$$$&&&$$$Xxx;x$&&&&$&&$$xxxXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$xXxX$$&&&&&&&&&&&&&&&&&&&&&&&&x;;;;;;;;;;;xx++++;$&$$&&&&&X$$xX$xxx$&&&Xxx&&&&xx:.:...::x&&&&&$$$Xx+xX$$X+;$&$x&&XX$$XX  
  &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;::::.::$&&&&&$$$$&&$$x+xx&&&&&&&&&&$xxX$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$Xxx+;;+;;+xxX$$$&&&&&&&&&&&&&&&&&&&x+xxxxxxxxxxXXXxxx$&$$&&&&&&X$$$xxxx$&&&xxX&&&&$xx:.....::x&&&&&&xx$$$&&&&&&&&&&$$Xxx$&&  
  &&&&&&&&&&&&&&&&&&&&&&&&&&&&X+;x$&&&&$$$$$$x::.:.::x&&&&&&$$$&$&$$$$&&&&&&&&&&&&$xx$$&&&&&&&&&&&&&$$$&&$$$$$$&&&&&$$$$Xx;;;:::::::;;;xxxxX$$$&&&&&&&&&&&&&&$XXXX$$$$$$$$$X$XX$&$$&&&x+&&&&&$XxX&&&&xx$&&&&&xx;:.....:;x$&&&&&&&$&&&$&&&&X&&&&&&&x&$  
  &&&&&&&&&&&&&&&&&&&&&&&&$XX$X$&&&&&&&&&$X&x:::.:::;$$&&&&&&$$&$$$$$&&&&&&&&&&&&&$$X$&&&&&&&&&&&$X$$$$$$x+xXX$$$$xxxxxx+::::...:::::::;;;;+xxXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&x&&$$&&&$xX&&&&xx$&&&&&$xx:.....::x&&$X;x&&&&&&&$&&&&&&&&&&&&$X  
  &&&&&&&&&&&&&&x;+xxx$&$$&&&&&$$&&&&&&&xxX$+:::::.:x&$&&&&&&$$$$$$$$&&$$$$X$&&&&&$&$$&&&&$&&&$Xxx$$$$Xx;;xXxX$xx+;+xx+;:::.......::::::;;;;;+xxx$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&&$&&&&&&&x$&&&&xx&&&&&&&$xx:.:...::x$&&&&&&$$&&&&&&&&&&&&&&&&Xx  
  &&&&&&&&&&&&&&&&&&xx$x$&&&&x$$&&$$$$$X$&&X::.::.:;&&&XX&&&&$$x&$$$$$&&&&&&&&&&&&$$$&&&&&&&&xxxxxxXxx+::+xxXXx;;;;+;;;::...........::::::;;;;;+xxxX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&&&&&x$&&&$xx&&&&&&XXxx;::....::$&$&&$$$$&&$&&&&&&&&&&&&&X$  
  &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XxX$&&&&&:::::.::$&$&&x$&&&$$&&&$$$X&&&&+;X$&&&&&&&$&&&&&X++;+xxx;;::;;++xx;::::;:;::.............:::::::;;;;+++xxxX&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&&&&&&&$&&$x$&&&xxx&&&&&&&&&xx:.:....::&&&&&Xx;:;xx$&&&&&X$&&&&&&  
  &&&&&&&&&&&&&&&&$&&&&&&&&&$X$X$&&XX&&&&&x::::.::+&&&Xx$&&&&$$&&&$$$&&&&x$&&$$&&&&$xx&&&&x;;;;+xx;;::::;;;:::.:::::::............:::::::::::;;;;;;xxxX&&&&&&x+;;;;;++++++++++x&&$$&&&&&&&$&&&&x$&&&Xxx&&&&&&&&&xxx:.....::;xxXxx;;xx$$$&&$$$&&&&&&&&  
  &&&&&&&&&&&&&&&&&&&$x+&&$$X$&&&&&$&&&&&$::::::::$&&&&&&&&&&$$$&&&$$$$$&$&&&&&&&&&$xx&&&X;;;;;;;:;::::;:::::..::.::................:::::::::;;;;;+++xx$&&&&&x;;;;;;;;;;;;::::x&&$$&&&&&&&&x:;xx$&&&xxx&&&&&&&&$+xx;.:....::x$$$xX$xxx&&$&$xxXXxxxxx$  
  &&&&&&&&&&&&&&&Xx&&$x$&&&&&&&&&&&&&&&&&;:::::::x&&&&&&&&&&&$$$&&&&$Xxx$&xx$&&&&&&$+;X$$x;;::;:::::::;:::::..::.::.................:::::::;;;;;;++xxxxx$&&&&x::;;;;;;;;;;:;;;x&&$$&&&&&&&&$x$$x&&&&xxX&&&&&&&&&&$+x::.....::$&$$XX$$Xx$&&&&&&$$&Xx&&  
  &&&&&&&&&&&&&&&&&&&$$$$&&&$&&&&&&&&&&&x:::::::;$&&&&&&X$&&&$$$&&&&$$$&&&&&&&&&&&&&$$$XX+;;:::::::::;::::::.......................::::::::;;;;;;++xxxxxX$&&&$xxxxxxxxxxxxxxxx$&&$$&&$&&&&&x;+xX&&&&xx$&&&&&&&&&&&xx+:..:...:;&&&&x+;;;&&&&&&&$&&&&&&  
  &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$::::::::X&&&&$&$xx$&&$$$&&&&$$$&X&&$X&$&&&&$$$XXxx;;:::::::::::::::........................:::::::::;;;;;++xxxxX$$&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&X:;xx$&&&&xx$&&&X$&&&&&&&xx;......::+$x+;;;;x&&xxx$&&&&&&&&  
  &&&&&&&&&&&$&&&&&$x+;$&&&&&&&&&&&&&&&::::::::;&&&&&&&$xX$&&&$$&&&&&$Xx$&$&&&&&&&$$&&&$x+;;:::::::::::::::........................:::::::::::::;;++xxxXX$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$X$x$$x$&&&&xx&&&&$x$&&&&&&&xx:::....;:xx+;;;x&$++xX$$&&&xx&&  
  &&&&&&&&&$$&&&&&&XX&&&&&&&&&&&&&&X$&x::::::::X&&$&$XxxxX&&&&$$&&&&&$;.:&&&&&&$&&&$$&&$x+;;;;::::::::::::::..................:::::::::::::::;;;:;++xxxxX$$&&&&&&&&&&&&&&&&&&&&$$&&X$&&&&&&&&$x$&&&$xx&&&&&x+xx$&&&&xx+.:....:;:+++;x&&&&&&&$&&&&x&&&  
  $$&&&xX&$x$&&&&&::x&&&&&&&&&&&&&&&&&::::::::+$&x:;$&$xxx$$&&$&&&&&&$X$&&xx&&&X$&&$$X&$x+;;;;:::::::::::::::::::....::::..:::::::::::;;;;+++xxxxxxxxxxxxX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&x$&&&$xx&&&&&x+X$$&&&&&xx:::....:::xx$&&&&&&$&&&&&&&&&&  
  $$$&&&&&&&$&&&&&$Xx&&&&&&&&&&&&&&&&;::::::::$&$X&&&&&xxxx$&&$&&&&&&$XX&&&&&&$&&&$$$xX$x+;;;;;;;;;;:;:::::::::::::::::::::::::::;+xxX$$$$$XxxxXXX$$xxxxxxX$&$xxxxx+++xxx+xxxx&&$&&&&$&&&&&&&&x$&&&$xX&&&&&X+x&&&&&&&$xx:......::x&&&&&&&&$XX&&&&&&&&  
  x&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&X::::::::x&&$&&&&&Xxx+X&&&&&&&&&&$$$&&&&&&&xx&&$&xx$x+;;;;;+xxxxxxxxxXXXxxx;;;:::::::;;;;;+xxX&&&&&&$XxxxxxX$$$$XxxxxxX$&X;;x++++++++++xxX$&&&&&&&&&x&&&&&X&&&&$x$&&&&xxx+&&&&&&&&xx;...:...;;X&&&$&&&&$XX$&&&&&&  
  &Xxx&&&&&&&&&&$&&&&&&&&&&&&&&&&$&&;::::::::$&&$$xx;;xxxx&&&&&&&&&&&$$&&&&&&&&$$&&&$Xx$x;;;;;xxxxxxxxxxxxxxX$$$Xx+;;;;+;;+++xxxX$$$Xx;:::::::;;xX$&&Xxxxxx$&+;x&x;++x;:..:++++xX&&$&&&&&&&&&$$&&&&Xx&&&&&x+xxx&&$&&&&Xxx:....:.:;x&&&&&&&&$xxX&&&&&&  
  $$x$&&&&&&+:xx&&&&&&&&&$&&&&&&&&&+::::::::x&&&&&&$xxxxxX&&&&&&&&&&&$$&&&&&&&&xx&$xx;:+$+;;;;xxxx+;;:::.::;;++xxxxx+++xx+xxxxxxxxx;::..::::;;;+xx$$$$Xxxxx$$X$&&x;;;;;;;+;++xX$X&&&&&&&&&$X&X$&&&&Xx&&&&&x;+++$&&&&$&&xx;..:....:;x$$&&&&&&xxX&&&&&&  
  &&&&&&&&&x;:x&&&&x$&&&&&$X$&&&&&X::::::::;X&&$XXxxxxxxx$&&&&&&&&&&&&$$&&&&$$&&&&&Xxx;:x+;;;;+x+;;:::::::::;;+++++++;;;;;;+++xxx+;;;;;;xX&&&$$X$$$$$$xxxxx$$&&&&+;;;+;+;;::;:xxX&&&&&$&$&&$$$$&&&&xx&&&&$x++;+;&&&&&&&$xx:......:::$&xx$&$X&&&&&&&&&  
  &&&&&&&&&&$;:X&&&x$&&&&&$$$$$&&&;::::::::x&&&&&&&&Xxxxx&&&&&&&&&&&&&$&&&&&;xxxXxxxx++;x+;;;;;+;;;;+xx+++xxxxxxxx+;;;::::;;;;xx++;+xxx&&&&&$x&&&&&$Xx++xxx$&&$$$;;;;++++++++:x&&&&&xxxx&&&&&$$&&&$xx&&&&$x+;;;:x&&&&&&&Xx+:..:...::x&&&$x&&&&&&&&&&&  
  &&&&&&&&&&&x:x$&&&&&&&&&&&$$&&&x:.::::::;$&&&&&&&&xxxx$&&&&&&&&&&&&&&&&&&+xxxxxxxxx;;;;+;;;;;;+xx$$x;$&$&&$$$Xxx+;::::..:::;;;;;+x+:.:x&&X++xxXxxx+;;;+xx$&&$xx;;;+++++++;;;;;;++++++x+$Xx$X$&&&$xX&&&&$xx;;;;:&&&&&&&&xx;.......::x&&&&&$x$&&&&&&&  
  &&&&&&&&&&&&&X$&&&&&&&&$$$&&&&$;::::::::x&&&&&&&&xxxxx&&&&&&&&&&&xx&&&$x+xxxxxxxxxx:;;;+;;;;;;;+xxx;:;$&&$;;xx+;;:::::...::::;;;;:::::;;;;;;+xXXx+;;;;+xx$&&$++++++++xxx+++++++++++xx+xx+$$X$$&&Xx$&&&&&x+;;;;;+&&&&&&&$+x:.......::x$&&&&$&&&$X&&&  
  &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+::::::::;$&&&&&&&&xxxx$&&&&&&&&&&&&&&&&xxxxxxxxxxxxxx:;;+;;;;;;;;;;;;:::::;;+x+::::::::....::::::::;+xxxxxxx$$$x+;;;;;;+xx$$$x;;++++xx+xxxxxx++xxxxxxxxxxx+X$&&&&Xx&&&&&&$++::;x:$&&&$&&&x++....:..::;$&&&&&&&&&&&&&  
  $xX$&&$xx$XX&&&&&&&&&&&&&&&&&x:::::::::x&$xX&&&&xxxxx&&&xX&&&&&&$&$&&&xxxxxxxxxxxxxxx::++;;;:::;;;;;;;++xxx+;::::::::::...:::::::::::;;+xx++;;:::;;;;;+xX$XX+:x++++x+xxxxxxxxxxxxxxxxxxx+xX$&&&&Xx&&&&&xxx+;::+;;&&&&$&&X++:.......::;&&&&&&&&&&&&&  
  &&&&&&&$xxxx&&&&&$xx+x$$&&&&$;:::.::::;$$$$&&&&&xxxx$&&&x;$&&&&&&$$$&&xxxxxxxxxxxxxxx+:;+;;;;:::::;;;;;;;;:::::::::::::...:::::;:::::::::::::::::;;;;+xxXXx;+$x+++++x+xxxxxxxxxxxxxxxxxxxx$&&X$&xx&&&&$$&Xxx;:;;:x$&&&&&&x++........::x&&&&&&&&&&&$  
  &&&&&&&&X&&&&&&&x::;;x&&&&&&x:::::::::x&&&&&&&&xxxxx&&&$$X$&&&&&&&&&&&xxxxxxXXxxxxxxxx;:;;;;;:::::::::::..:::::::::::::...:::;:::::::::::::::::::;;;;+xxXx++xxx++++xxxxx+xxxx+++;++++++++x$&&&&&xx&&&&&&&&xx+:;;;;$&&&&&$X+;;.......:::&&&&&&&&&&&&  
  xx&&&&&$&&$X&xx&&&&&&&&&$&&X:::::::::;$$X$&&&&&xxxxX&&&&&&&&&&&&&&X$&&$xxxxXX$$$$XXxxx+:;;;;::::::::......::::::::::::::...::;:::;:::::::::::::::;;;;xxX$xxx;xxxxxxxxxxxxxxxx++;;;;;;;++xx&&&$&$xX&&&&&&&&X+x:;+;:x&&&&&&&&+;:.......:::&&&&&&&&&&&  
  &&&&&&&&X+;&x+xXXXX$&&$$&&$;::::::;;:X&X::.:x&xxxxx&&&$&x$&&&&&&&&&&&&$xxxxxxxxXXXXxxxx;:;;;:::::::::....:::::;:::::::::..::::::::;;::::::::::::;;;+xxX$$x+++xxxxxxxxxxxxxxxxxx++++++++xxx&&&&&$x$&&&&&&&&$xx+:;;:;&&&&&&&&x+;:.......:.+&&&&&&&&&&  
  &$x&&&&&&&$&$$xxx&&&$&&$&&X::::::;x;;&$x:::::xxxxxX&&Xxxx+&&&&&&&&&&&&xxxxxxxxxxxxxxxxx+:;;;;:::::::::::::::;;;::::::::.:::::::::;;+;;;::::::;;;;;;xxX$$$Xx+;;:::::::::::;;;;;;;;;;+;+xxxxX&&&&$x$&&&&&&&&&X+x;;+x:x&&&&&&&$+;;..::...:::$&&&&&&&&&  
  &$$&&&&&&&&&&&&$$XxX&&&&&$:::::::x+:$$&&&x;+Xxxxxx&&$+xX$$$&&&&&&x+;;++++++xx++;;;;;::::;;;;;;;::::::::::;;;x;;:::::::::::;;;;;;;++xx+;;;;;;;;;;;+xxX$$$$;::::::::::::::::::::;;;;;;;;;;++xxxxxxx&&&&&&&&&&&xx+;+x+;&&&&&&$&$;;:.......:::$&&&&&&&&  
  &X&&&&&&&&$&$Xx$$$x$&&&$$;:::.::+x;x$$&$Xx$$xxxxx$&&$X$x$$x$&&&&&x;++++++++++++++;++++;;;++;;;;;;;;:;;;;;;xxx;;;;;;;;;;;;+xxX$$$$$$XxXx+;;;;;;++xxx$$$$&$+;;;;;;;;;+++++++++;+;+++++++;;;;+++xxxx&&&&&&&&$$&x+x;;+x:x&&&&&&&$+;;:.......::;&&&&&&&&  
  &$&&&&&&&&&&&$$$&&&&&&&&$::::::::::X$&$x$&&xxxxxx&&&xX$$&$x$&&&&&$xxxxxxxxxxxx+++++;;;;;;;+;;;;;;;;;;;;;+xxxx;;;;x$$&$$X$$$&&&&&&&&XXXXx+++++xxxxX$$&&&&X;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++xxx&&&&&&&&&&XXxxx::;;;$$&&&&&Xx;;:.:::....::x&&&&&&&  
  xX&&&&&&&&&&&&&&&$$&&&&&::::::::::x$$&$$&&&$xxxxX&&x;;x&&$+&&&&&&&$$$$$$$$$$$X$$$$$$$$$$$$x;;;;;;;;;;;;+xxxx;;;;;;+++;+xX$$$$$$$$$$xxxxxx+xxxxxX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$xX&&&&&&&$&&&&xxx;:;x;+xX&&&&xxx;;:.....:..::+x$&&&&  
  xx++$&Xxx&&&&&&&&$x&&&&x:::::;;;:;$$&&$&&&&Xxxxx&&$;;x$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&x;;;;;;;;;++xxxxx;;;;;;;;;:;+++;;xxxxxxxx+xXXxxxxxxX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$x$&&&&&$&&&&&&&xxx;;;;:;x&&&&xxx;;;...:.....::X$$$&&  
  x+;::x&&&&&&&&&&&X+$$$$:::;;::;;:x$&&$$&&$Xxxxx$&&&$&$X&&&&&&xX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;;;;;;;;+xxxxxxxx+;;;;;;;::;;:;;;+xxxxxxx$$$$XxxxX$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&x$$x&&&&&&&&&&&X+xx;;;;x&&&&&xxxx;;:.........:;$$$&&  
  &&&&&&&&&&&&&&&&&xX&&&;:::::::::+$$&&$&X;xxxxxx&&&x&$xX$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&X;;;;;+;;+xxxXX$$Xxxxxxxxxxxxx$$$$&&&&&&&&&&&$$xxX$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$x&&$&&&&&&&&&&&&xxx;+x+;&&&&$xxxxx;;:...:.:...:x$$$$  
  &&&&&&&&&&&&&&&&&X$&&x::::::::::x$&&&$&$XXXXxx$&&&&xx$$+;x&&&$x&&&&&&&&&&&&$&$$&&&&&&&&&&&&&&x;;;;;;;++xxxXXxX&&$x;:::::;+;;+x+xX$&&&&&$XxxxxX$$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$x&&&&&&&&&&&&&&&Xxx+;+x;+&&&xxxx$$;;:..........:X&&&  
  &&&&&&&&$&&&&$$XxX$&$::::::::::;$&&&&$$&$Xxxxx&&&&&&&&$;x$&&&&&&&&&$$$$&&&$$$$$&&&&&&&&&&&&&&$+;;;;;;;;;++;;;;;;xx;;;:...:..:xx$&&&$xxxx;;;+xx$$$$$$x$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&Xx&x$&&&&&&&&&&&&&xxx;+++:X&&xxxx$&x;;:....:.:...;&&&  
  X$$&&&&&&&&&&$$$$&&$;::::::::::x&&&&&$&&$xxxx$&&&$$$&&&&&&&&&&&&&&&XXXXXXXXXXXX$XXXX$XX$$$XXX$Xx;:;;;;;;;;;:::;;;;;;+x++xxxxxx+;;++++x+;;++xx$$$$$XxxxxxxxxXxxxxxxxxxxxxxxxxx+++xxxxxxxxxxxXXXxX&&&&&&&&&&&&&&&&Xxx+;++;:&&xxxx$&$+;;.......:...x&&  
  &&xxx&&&&&&&&&&&$$&x::::::::::;$&&&&&&&&$xxxx&&&$x$&&&&&&$X$X&x$&&&XXXXxXxXXX$$$$$$$$$$$$$$$$$$$x:;;;;;;;;;;::;;;;+;;;:;;;;;;;;+xxxxxx+;+xxx$$$$Xx+$xxxxxxxxxxxxxxxxxxxxxxxXXxxxx;;;+xxxxxxxxXx$&&&&&&&&&&&&&&&&&xxx;;x+;x&xxxx$&&x;;:.......:...&&  
  &&&&&&&&&&&&&$$&&&&+::::::::::X&&&&&&&&&$Xxx$&&&$&&&&&$&&&$x&&&&&&&$xxxxxxxxX$$X+:;;$$$$$$$$$$$$$X;:;;;;;;;;;:;;;;;;;;;;;;+;+++xxxxxxx;++xx$$$$Xxx&&;++xxxxxxXxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxX$$$&x&&$&&&&&&&&&&&&$xxx;xx+;Xxxxx$&&&x;+........::.:&  
  &&&&&&&&&&&&&&&&&&X:::::;::::+&&&&&&&&&&$Xxx&&&&&&&&&&&&&&XXX&&&&&$$XXXXXXXX$$$x:;x$$XXX$X$$$XX$$$x+;;;;;;;;;;:;;;;;;;++xxxxxxxxxxxxx;;+xx$$$Xxx$$$&x;.....:+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$&&&&&&&&$$&&&&&&&&&xxx;;++:xxxxx$&&&$+;;........::.x  
  &&&&&&&&&&&&&&&&$X;::::;:::::X&&&&&&&&&&$Xx$&&&&&&&$$$$&&$XxxxxXXX$$$$$$$$XXXXXXxxXXXXXXXXxXXxx++xxx+;;;;;;;;;::;;;;;;++xxxxxxxxxxxx;;+xxX$$xx$&&$$$&$$x:......:;+xxxxxxxxxxxxxxxxxxxxxxxxxxxxx$&&&&&$&&$$$&&&&&&&$xx+;;+;xxxxX$&&&&x;+:.....:::::.  
  xx&$$&&&&&&&&&&&&x:::::::;;:x&&&&&&&&&&&&Xx&&&&&&&+X$$&&&XxxxxxxxxxxxxxxxxxXxXXxxxxxxxxxx++;.:;++;;++;;;;;;;;;;;:::::::::;;;;;;;;;+;;;xxX$XxX$&&&$$$&&$X+:..........:;+xx++++xxxxxxxxxxxxxxxxxxxxxXXX$$$$$$&&xx$&&&xxx+;;xxXxx$&&&&&&+;+.....:::::;  
  &$&&XX$&&&&&&&&&$:::::::Xx;;$&&&&&&&&&&&&$$&&&&&&&$$x;+x$xxXX$$$$$$$$$$$$$$$$$$$$$$$$x;:......:;;;;;;;;;;;+;;;;;::::::::::::::;;;;;;;xxX$XX$$$&&$$$$$$$$x:..............:;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&&&&&xX&&&&Xxx+;;+xxxx$&&&&&&$;;;..:::::::;  
  &$$$&$X$&&X&&&&X+;;;;;;X$x;X&&&&&&&&&&&&&$$&&&&$$&&xx$&&&xxXXXXX$$$$$$$$$$$$$$$$Xxxx:..........:;::;;;;;;;;;++;;;;:::::::::::;;;;;;+xX$$$$X$$&&&$$$$$$$Xx::.................;xXXXXXXXXXXXxXXXXxXXXX$$Xx$&&&&&&&&&&&&xxx;;+xxxx$&&&&&&&x;x;..;+:;:;+  
  &&&&&&&$$&&$$&&&$xxxx$$X;;X&&&&&&&&&&&&&&&&&&&&&&&X$&&&&X$&&&&&&&&&&&&&&&&$&&&$+.................:::;;;;;;;;;+x+++;;;;;;;;;+++++xxx$$$$$$$X$$&&$X$$$$$$x+::....................;x$$$$$$$$$$$$$$$$$$$$Xx&&&&&&&&&&&&&$xx+:xxxxX$&&&&&&&$++x+::;;;+:x  
  &&&&&&&&&&&&&$xx+;++xx+;+$&&&&$x$&&&&&&&&&&&&&&&&&xx$&&&&&Xx$&&&&&&&&&&&&x;.......................;;;;;;;;;;;;;+xxxxxxxxxxxxxxxX$$$$$$$$$XX$&&$$$$$$X$Xx;::.......................;$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Xxx:xxxx$$&&&&&&&$xxxxxx$&&&&&  
  &&&&&&&&&&$$x+++;;;;;;:x&&&&&&$x$&&&&&&&&&&&&&&&&&xx$&&&&&&&&$&&$X;;+;:............................:;;;;;;;;;;;;+xxxXX$$$$X$$$$$&&&$$$$$$X$$&$$$$$$$XXx;;:.::.........................x$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Xxx+xxxx$$&&&&&&&&xxX$;.:::;;x  
  &&&&&&&&&&$;:+;;;::;:;X&&&&&&&&&&&&&&&&&&&&&&&&&&&&XX&&&&&&&&X$x....................................:;;;;;;;;;;+++xxxxX$$$$$&&&&&&$$$$$$$X$$&$$$$$$$Xx:;::::..............................+$&&&&&&&&&&&&&&&&&&&&$&&&&&Xxxxxxx$$&&&&&&&$x$&$x;:..:.:  
  &&&&&&&&&x;;;;;:::;;x&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&$;..............................:........;;;;;;;;+++++xxxxxXX$$$$$$$$$$$$$$X$$$$$$$$$$$x;;:::::.................................:$&&&&&&&&&&&&&&&&&&$&&&&&xxxxxX$&&&&&&&&xx$$xx++:..::  
  &&&&&&&X;;;;;::::;;x&&&&&&&&&&&&&&&&&&&&&&&&&&&&&X$&$$&&&&$$x.........................:.......::.......:;;;;;+;++++xxxxxxxX$X$$$$$$$$$$$$$$$$$$$$&$+;;:::::....................................:$$$&&&&&&&&&&&&&&$&&&&&Xxxxx$&&&&&&&&&xxx$$x+++;:..  
  &&&&$x;:;;;;::;;:+$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&X$XXX$$x+:....................................:;........:;;+;++++xxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$x+;;:::::.......................................;$X$&&&&&$&&&&&&&&&&&&$xxxx$&&&&&&&$$xxxXX$x;;+;;:  
  &&x$$+;;;;;::;;;x$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&x:.......................................:.......;:........:;++++xxxxxxxxxxxxX$$$$$$$$$$$$$$&&$xx++;::::::.........................................xxxxX&&&&&&&&&&&&&&$xXxxX$&&&&&&&&Xxxxxx$&X+++++  
  &&$+;;;;;;:;;;;x&&&&&&&&&&&&&&&&$&&&&&&&&&&&x;............................................::.......;:........:;+xxxxxxxxxxxXxXX$$$$$$$$$$$&$$x+x++;;;::::...........................................xxxxX&&&&&&&&&&&&XxxXxxX&&&&&&&&&xxxxxx$&&$x+++  
  &$;;;;;;;;;;:+$&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$;.............................................:;:......::.......:..:;xxxxxxxxxxXXX$$$$$$$$$&$xx+++;;;;:::::............................................;xxxxX&&&&&&&&&&&$XXxxxX$&&&&X&&&XxX$Xx$&&&&x++  
  x:;;;;;;:;;:x&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&+................................................;;:......::.......:::..::;;xxxXXXX$$$$$$Xxxxxx++;;+;;::::::............................................:xxxxxX&$XX&&&&&&&&&xxx$$&&&&$x$&xxXX$$$&&&&&X+  
  :;;;;;;;;;;$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$;..............................................:....:;:.......::.........::::::::;;;+++++++xxxx++;++;;;;:::::..............................................xxxxxxX$$&&&&&&&&&$xxX$&&&&&&x$XxxXXX$$&&&&&&$  
  ;;;;;::;;x&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$;....................................:.............:...:;:.......::..:::::.....:::::;;;;++;;;:;;;;;;;;;;;;:::::..............................................xxxxxx+&&&&&&$&&&&$xXx$&&&&&&$xxxx$XX$$$&&&&&&  
  ;;;;;::;X&&&&&&&&&$&&&&&&&&&&&&&&$$&&&x...................................:...:...:..:......;;..:;:....:...::...:::::::::::::::::;;;;;;:::::;;;;;::::::...........................................::.x++xxxx+$&&&&&&&&&XxXX$&&&&&&$x;+xXX$$$$&&&&&&  
  ;;;;;:+$&&&&&&$$&&$&&&&&&&&&&&&&&XX&&+......................................::.::::::........:+:.:;;......:..::...:::::......:::::::::::::::::::::::::.........::::..............................:;.;xxxxxxxxx&&&&&&&&$XxxX&&&&&&$x;:+xxX$$$&&&&&&&  
  :;;;;x&&&&&&&&&XxX&&$&&&&&&&&&&&&x$&;.................................:::....::.::::::.....:::.;;.:;;:.....:..::...:::::......::::::::::::::::::....::::::::::::::.............................::;;.xxxxxxxxxX&&$&&&&&$Xxx$&&&&&xxx;;+xxx$$&&&$&&&&  
  ;;;+$&&&&&&&&$$xxX&$$&&&&&&$&&&&&$&+....................................:::...:;:;;;:::....::::::+::;:::...:....::.....:.......::::::::::::::::.......:::::::::::.............................::;+.;xXXXXX$XXx&&XX$$$$$Xxx$&&&&&xxx;;+xxx$$&&$&&&&&  
  ;:x&&&&&&&&&;+xxX$&$$$&&&&&&&&&&&&x.......................................:;:::;+;:;;:::..::::::::+::;::::..::...:;:.............:::::::::::::...............................................:;++;.xx$$$$XXXXX&&&&&&&&$xxX&&&&&$x+x+;+xxx$$$$$&&&&&  
  ;x&&&&&&$$&&&$$$$$$$$&&&&&&&&&&&&X.........................................:;;:;x+;;;;:::.:::::;::;+::;;::::.:;...:;::..:........::::::::::::...............................................:;+;;.xx$&&&&&&&&&&&&$$&&&XXxx$&&&&$xxx+xxxxX$$$$$$&&&&  
  $&&&&&&&&&&&&&&&&$&&&$&&&&&&&&&&&...........................................;+++xx;+;;;::::;::::+:+x;:;;;;;;:.:;...:;;::::.......::::::::::::...............................................;+;;:;xx&&&&&&&&&&&&&&&&&&XXX$&&&&&$X+;xxxxxX$$$$$$$&&&  
  &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&X..........................................::+xxxx+x+;;;::;;;::::;:xx::;;++;;..;;:..:;;:::........::::::::::................................................;+;;.xxx&&&&&&&&&&&&&&&&&&XXx$&&&&&Xxx+xxxxx$$$$$$$&&&&  
  &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&:...........................................:;xxxxxxx;;;;::;;;:::;;+x+:;;;x+;:::;::..:;:::.........:::::::::...............................................:++;.+xxx&&&&&&&&&&&&&&&&&&XXX$&&&&&XxxxxxxxX$$$&$&&&xx$  
  &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&x............................................:;xxxxxxx+;;;;:;;;::::;;xx;:;;+x+;::;;:...:;;:.........:::::::.............................................:...:x;;;x+xx&&&&&&&&&&&&&&&&&&XXX&&&&&&$xxxxxxx$$&&&&&&&&&$  
  &&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&;.............................................:xxXxxxxx;;;;::;;;;:::;+x+;;;;xx+;;;+;:..:;;::........::::::..............................................:...;x;;xxx;x&&&&&&&&&&&&&&&&&$XXX&&&&&&$xxxxxxx$&&&&&Xx+xxX  
  xxX&&$$$&&&&&&&&&&&XXX$&&&&&&&$:.............................................:+X$xxxxx+;+;;:;;;;:::;+xx+;;;+xx++++;::.::;;:.........:::::............................................:::...+++xx+xxxX&&$XX&&&&&&&&&&&$XX$&&&&&&&XxxxXX$&&&&&&Xxx&&&  
  ;;;x$X&&$XX&&&&&&&&$xxX&&&&&&$;...............................................:x$Xxxxxxx++;::;;;;:::;xxx+;;;xxx++++;;::::;;:........:::::...........................................:.::..:xxxx+xxxxxxxXxxxxxxX&&&&&&$XX$&&&&&&&&xxxxXX$&&&&&$$$$&&  
  x+;;xxx&&&&&&&&&&&&&&&&&&&&&&x.................................................;xXXxxxxxx++;:;+;;;:::+xxx;;;+xxxxxx+;;::::;::........::::...........................................::::..:xxXxxx+;xxxxxxxxxxx+&&&&&&$XX$&&&&&&&$xxx+xx$&&&&&$$$$$&  
  xx++xXx+X&&&&&&&&&&&&&$&&&&&X:..................................................;x$Xxxxxxx++;:;+;;;::;xxxx;;;xxxxxx++;;:::;;:.........:::...........................................:::;..;XXxxx+;+xxxxxxxxxxxx+&&&&$XXX&&&&&&&&&x+;;+xX$&&&&&&&$&&  
  xxx+xXXxX$&&&&&&&&&&&&$&&&&$;......................................:............:;X$XXxxxxx+;;:;+;;;::;xxx+;;;xxxxxx+++;;::;::........:::...........................................::;;.:x$xxxxx+;xX$$$$$X$XXXXx&&&$Xx$&&&&&&&&$x+;;xX$&&&&$&&&&&&  
  &$Xxxx$$$&&&XX$&&&&&&&&&&&&x........................................::..........::+$XXxxxxxx+;:;++;;;:;xxxx+;;+xxxxx++++;;;;;:.........::...........................................::;;:;X$xXxx;:;xXxxxxXxxxxxxXx&&$Xx$&&&&&&&&$x++;x$&&&&&xx$$$$&  
  &&&&&&&&&&&&&&&&&&&&&&&&&&$:.........................................::::........::x$xxxxxxxx+;:;++;;;:;xxxx;;;+xxx++xx+++;;;::........::...........................................:;+;;x$XXxx::;++xxxxxxxxxxx+;xX&$xx$&&&&&&&&$xxxx$&&&&&&$xxXXX$  
  &&&&$$$&&&&&&&&&&&&$&&&&&&$...........................................:::::.......::XXXXxxxxxx+;:+++;;;:+xxx+;;;xxxxxxxx++;;;;::.......:::.........................................::;+++x$XXxxxxx++xxxxxxxxxxxxxxxX$xX$&&&&&&&&$xxxx&&&&&&&&$xxX$$  
  &&&&&&&&&&&&&&&&&&&&&&&&&&+............................................::::::.....:::XXxxxxxxxx;;;x+;;;:;+xxx+;;+x+++xxxxx++;;;::......:::........................................::;xxxxX$Xxxxx+++;++;;;++++++x+++x$XX$&&&&&&&&XxxxX&&&&&&&&&xxXX$  
  &&&&&&&&&&&&$$&&&&$&&&&$&&+.............................................:::::::::.:::xXxxxxxxxx+;:;x++;;:;xxxx+;;+xxxxxxxxxx+;;;::.....:::........................................:;+xxxx$XXxxx+++;:;+;;++;+++++;;;x$X$$&&&&&&&&xXxx$&&&&&&&&&$x&&&  
  &&&&&&&&&&&&$$&&$$$$$$X&&&x.............................................::::::::::::::XXxxxxxxxx+;:+x++;;:+xxxx;;;+xxxxxxxxx++;;;::....::::......................................:;+xxxxxXXxxx++++;:;;+;;;;;+x+;++xX$X$$&&&&&&&XxXXX$&&&&&&$$&$$x&&  
  &&&&&&&&&&&$X&&&$$$$$$&&&&$..............................................:::::::::::::xXXxxxxxxx+;;;xx+;;:;+xxx+;;;+xxxxxxxxx++;;;:::..:::::...................................:::;+xxxxXXXxx;++;;;;;;;;;;++;;+;;;xX$$$$&&&&&&&xxXXx$&&&&&&&$$$$Xx$  
  &&&&&&&&&&&$&xx$$$$XX&&&&&&:..............................................::::::::::::+XXxxxxxxxx+;;;xx+;;:;+xxx+;;+xxxxxxxxx+++;;;:::.:::::.................................::::;:;xxxxXXxx+++;;;;xxxx+xxxxXxxxxxX$$X$&&&&&&&&xxXxx$&&&&&&&$X$$$Xx  
  &&&&&$&&&&&&&x$$$XXX&&&&&&&x...............................................:::::::::::;XXXxxxxxxx++;;+xx+;;:+xxxx+;;+xxxxxxxxx++++;;;:::::::.................................:::;;;+xxxxXxxx+;;+++xXxxx+xxxxxXXxxxX$$$$&&&&&&&$xxxxx$&&&&&&&$XxX$$x  
  &&&&&&&&&&&&&$$$Xxx$&&&&&&&x...............................................::::::::::;;XXXxxxxxxxxx+;;xx++;:;xxxxx+;;+xxxxxxxxxx+++;;;::::::..............................:.:::;+;;+xxxXXxxxxxxX&&&&&&&&&&&&$$&&&&XXX$$&&&&&&&&+xxxx$$&&&&&&&&$X$$$  
  +x$&&&$&&&&&$$$XxX$&&&&&&&&:...............................................::::::::::;;XXXXxxxxxxxx+;;;xx++;:+xxxx++;++xxxxxxxxxx+++;;;;:::::.....................:...:...::::;+x;;+xxxXXXxxxX&&&&&&&&&&&&&&&&&&&&XXX$&&&&&&&&X+xxxx$X$&&&&&&&&$X$$  
  XxX$&X$&&$X$$$$XX$&&&&&&&&;................................................::::::::::;;XXXXxxxxxxxxx+;;+xx+;;:xxxxx++++xxxxxxxxxxx++;+;;;;;::::...................:.......:::;;xx;;xxxXXXxxxxx&&&&&&&&&&&&&&&&&&&&XXx$$$&&&&&&x+++xxXXX$&&&&&&&&$X$  
  $Xx$&&&&$$$$$$XX$&&&&&&&&;................................................:::::::::::;;XXXXxxxxxxxxx++;;+xx+;;;xxxxx++;++xxxxxxx+++++++;;;;;;::::.:...............:::::...:;;;xxx++xxXXXxxxxxx&&&&&&&&&&&xx$$$&&&&XXx$$$$&&&&$++x+xx$$XX$&&&&&&&&$X  
  &XX$&&&&$$$$$XX$&&&&&&&&x..................................................:::::::::::;$XXXXxxxxxxxxx+;;;xxx+;;+xxxxx++++xxxxxxx+x+++;+++;;;;;;::::::.........:..:::::::..:;;xxxxx+xxXXxxxxxxxx&&&&&&&&&&++xx$$&&&XXX$$$$$$$&$+xxxxX$XXx$&&&&&&&&&$  
  &&&&&&&$X$$$Xx$&&&&&&&&X...................................................:::::::::::;XXXXXxxxxxxxxxx+;;+xxx;;;xxxxxx++++x+x+xx++++++++++;;;;;;;;:::::...:.:...::::::::..:+xxxxxxxxxXxxxxxxxx;$&&&&&&&&&+;xX$$$$&XXX$&$$$&&&$xxxxX$$$Xx$&&&&&&&&&&  
  &&&&&&&X$$$XX$&&&&&&&&&....................................................:::::::::::;XXXXXxxxxxxxxxx++;;xxx+;;+xxxxxx++++x+xxx++++++++++;;;;;;;;;;;::::::::::.:::::::::::+xxxxxxxxXXxxxxxxx+;:;+;;;++xxxxXXX$$XXXXX$$$$X&&&$xxxx$$$$XX&&&&&&&&&&&

Kenneth Chen Ko Han

Also just a passenger on this train

kenneth.chen1337@gmail.com / linkedin / huggingface

I build AI systems that ship to production — computer vision pipelines, speech recognition, voice agents. Most of my work sits at the intersection of "make the model work" and "make it work reliably"


Experience

AI Lead, Co-founder 2023 - 2026
resumify logo Resumify

Co-founded non-profit with YellowRibbon.gov.sg, HTX, and Singapore Prison Service. AI platform helping ex-inmates craft resumes for job placement. Secured $24,100 grant from National Youth Council. Signed 12-month MOU with YellowRibbon. Featured on Zao Bao.

Next.js, LLM Agents, OpenAI API, ElevenLabs

AI Engineer Volunteer 2023 - 2026
raid logo RAiD, Republic of Singapore Air Force

Video analytics platform for RSAF with NUS grad students and NCS engineers. Speech recognition and speaker diarization for Air Traffic Control using NVIDIA NeMo and vLLM on H200 GPUs. Finetuned canary-1b and parakeet-tdt.

NVIDIA NeMo, vLLM, PyTorch, NVIDIA H200

AI Intern 2024
bifrost logo Bifrost AI

Prototyped novel data visualization method for customers like NASA, BigBear AI and DSTA using JinaCLIP. Trained YOLOv6-lite for ST Engineering's Unmanned Vehicles Team, boosting accuracy 16%+. Fine-tuned StabilityAI VAE for synthetic-to-real domain adaptation.

YOLO, VAE, JinaCLIP, OpenCV

AI Engineer Intern 2023 - 2024
govtech logo GovTech Singapore

Red-teamed GovTech's AI Image Detector with custom-trained LoRAs. Built end-to-end CV pipeline for MSO's OneService App automating classification of thousands of daily municipal reports. Developed real-time animal welfare detection for NParks using OWLv2. Prototyped XAI tool using Few-Shot Segmentation.

OWLv2, LoRA, Few-Shot Segmentation, XAI


Research & Community

Not serious researcher 2025

Holding State-of-the-Art Word Error Rate on the ATC-ASR benchmark with finetuned parakeet-tdt

SEA-VL Contributor SEACrowd, 2025

Annotated data for ACL 2025 accepted paper on vision-language datasets

Founder, Competitive Programming Interest Group SP, 2022

150+ member Discord / 3 workshops / 3 competitions / team ranked top 6% globally at Reply CodeTeen

Vice President, AI Club SP, 2022

Nationwide hackathon across all 5 polytechnics, sponsored by Google and AI Singapore


Education

National University of Singapore, NUS College 2026 - 2029

Bachelors in Computer Science, Minor in Mathematics

NUS Merit Scholarship

Singapore Polytechnic 2021 - 2024

Diploma in Applied AI and Analytics

CGPA 4.0/4.0 / Lee Kuan Yew Award / IMDA Gold Medal / SP Scholarship


Skills

LanguagesPython, C++, JavaScript, SQL
AI/MLPyTorch, OpenCV, YOLO, Grounding DINO, Transformers, NVIDIA NeMo
GenAILLM Agents, LoRA, VAEs, MLOps
WebNext.js, React
InfraAWS Lambda, Docker, GCP, NVIDIA CUDA, Git, LaTeX