package Ġru . sh ab ash off . primitives Ċ Ċ class ĠInt Point ( var Ġx : ĠInt , Ġvar Ġy : ĠInt ) Ġ{ ĊĊĠĠĠ Ġfun Ġadd ( a : ĠInt Point ): ĠInt Point Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠInt Point ( x Ġ+ Ġa . x , Ġy Ġ+ Ġa . y ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Point ( x =$ x , Ġy =$ y )" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this Ġ=== Ġother ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( java Class Ġ!= Ġother ?. java Class ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġother Ġas ĠInt Point ĊĊĠĠĠĠĠĠĠ Ġif Ġ( x Ġ!= Ġother . x ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( y Ġ!= Ġother . y ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġx ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ 3 1 Ġ* Ġresult Ġ+ Ġy ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊ Ċ }