# 279 bytes
def q(s):
e=enumerate;z=list(map(lambda n:list(map(int,str(n))),s));d=[[0]*(max(map(len,z))-len(j))+j for j in z];x=['']*len(z)
for i,a in e(d):
for j,c in e(a):m=max(list(zip(*d))[j]);x[i]+="|"*(m-c+0**m+(j>0))+":8."[(c<2)|-(j<len(a)-1)]*c
for r in zip(*x):print(*r,sep='')