# coding: utf-8
require 'pp'
require 'minitest/autorun'
K=
->t{s=r=t.size
i=m=t[o=/ +/].size
(0...2**t.scan(y=/\|+/).size).map{|n|q=-1
x=t.gsub(y){|r|n[q+=1]<1?r:'\/'*r.size}
d=i+s-x.size
d<0||d<m&&r=x.gsub(o,' '*m=d)}
r}
describe K do
def test_case_0
assert_equal '<\/=||:)~~(:\/\/\/\/>', K['<|=||:)~ ~(:||||>']
end
def test_case_1
assert_equal '<|=\/\/:)~~(:\/\/\/=|>', K['<|=||:)~ ~(:|||=|>']
end
def test_case_2
assert_equal '<\/\/=||||:)~ ~(:||>', K['<||=||||:)~ ~(:||>']
end
end
IyBjb2Rpbmc6IHV0Zi04CnJlcXVpcmUgJ3BwJwpyZXF1aXJlICdtaW5pdGVzdC9hdXRvcnVuJwoKSz0KLT50e3M9cj10LnNpemUKaT1tPXRbbz0vICsvXS5zaXplCigwLi4uMioqdC5zY2FuKHk9L1x8Ky8pLnNpemUpLm1hcHt8bnxxPS0xCng9dC5nc3ViKHkpe3xyfG5bcSs9MV08MT9yOidcLycqci5zaXplfQpkPWkrcy14LnNpemUKZDwwfHxkPG0mJnI9eC5nc3ViKG8sJyAnKm09ZCl9CnJ9CgpkZXNjcmliZSBLIGRvIAogIGRlZiB0ZXN0X2Nhc2VfMAogICAgYXNzZXJ0X2VxdWFsICc8XC89fHw6KX5+KDpcL1wvXC9cLz4nLCBLWyc8fD18fDopfiAgICAgfig6fHx8fD4nXQogIGVuZAoKICBkZWYgdGVzdF9jYXNlXzEKICAgIGFzc2VydF9lcXVhbCAnPHw9XC9cLzopfn4oOlwvXC9cLz18PicsIEtbJzx8PXx8Oil+ICAgICB+KDp8fHw9fD4nXQogIGVuZAoKICBkZWYgdGVzdF9jYXNlXzIKICAgIGFzc2VydF9lcXVhbCAnPFwvXC89fHx8fDopfiB+KDp8fD4nLCBLWyc8fHw9fHx8fDopfiAgIH4oOnx8PiddCiAgZW5kCmVuZAoK