package Ġio . github . ps he g ger . a oc . common Ċ Ċ import Ġjava . io . File Ċ Ċ abstract Ġclass ĠBase Solver Ġ{ ĊĠĠĠ Ġabstract Ġval Ġyear : ĠInt ĊĠĠĠ Ġabstract Ġval Ġday : ĠInt ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġpart 1 (): ĠAny ? Ġ= Ġnull ĊĠĠĠ Ġprotected Ġopen Ġfun Ġpart 2 (): ĠAny ? Ġ= Ġnull ĊĠĠĠ Ġprotected Ġopen Ġfun Ġget Visualizer (): ĠTask Visualizer ? Ġ= Ġnull ĊĊĠĠĠ Ġprotected Ġfun Ġ< T > Ġread Input ( block : ĠFile . () Ġ-> ĠT ): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġdownload Input If Missing ( year , Ġday ) ĊĠĠĠĠĠĠĠ Ġreturn Ġwith ( File (" inputs /${ year }_ $ day . txt "), Ġblock ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsolve (): ĠAnswer Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġp 1 Ġ= Ġpart 1 () Ġ?: Ġreturn ĠAnswer . Empty ĊĠĠĠĠĠĠĠ Ġval Ġp 2 Ġ= Ġpart 2 () Ġ?: Ġreturn ĠAnswer . Part 1 ( p 1 ) ĊĠĠĠĠĠĠĠ Ġget Visualizer ()?. generate Visualization () ĊĠĠĠĠĠĠĠ Ġreturn ĠAnswer . Full ( p 1 , Ġp 2 ) ĊĠĠĠ Ġ} Ċ } Ċ