#!/bin/bash
# http://stackoverflow.com/questions/28942535/bourne-shell-split-string-according-to-multiple-criteria-iptables-multiport-li
awk -v RS=',' -F : '{ gsub(/\n$/, "") } NF > 1 { r=(r ? r "," : "") $0;
if (r ~ /([^,]*,){6}/) { print r; r=""; } next }
{ s=(s ? s "," : "") $0;
if (s ~ /([^,]*,){14}/) { print s; s=""; } }
END { if (r && s) {
p = r "," s; if (p !~ /([^,:]*[:,]){15}/) { print p; r=s="" } }
if (r) print r; if (s) print s }'
IyEvYmluL2Jhc2gKIyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzI4OTQyNTM1L2JvdXJuZS1zaGVsbC1zcGxpdC1zdHJpbmctYWNjb3JkaW5nLXRvLW11bHRpcGxlLWNyaXRlcmlhLWlwdGFibGVzLW11bHRpcG9ydC1saQphd2sgLXYgUlM9JywnIC1GIDogJ3sgZ3N1YigvXG4kLywgIiIpIH0gTkYgPiAxIHsgcj0ociA/IHIgIiwiIDogIiIpICQwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIGlmIChyIH4gLyhbXixdKiwpezZ9LykgeyBwcmludCByOyByPSIiOyB9IG5leHQgfSAgICAgICAgICAgICAgICAgICAgICAgIAogICAgeyBzPShzID8gcyAiLCIgOiAiIikgJDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIGlmIChzIH4gLyhbXixdKiwpezE0fS8pIHsgcHJpbnQgczsgcz0iIjsgfSB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgRU5EIHsgaWYgKHIgJiYgcykgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICBwID0gciAiLCIgczsgaWYgKHAgIX4gLyhbXiw6XSpbOixdKXsxNX0vKSB7IHByaW50IHA7IHI9cz0iIiB9IH0gICAgIAogICAgICAgIGlmIChyKSBwcmludCByOyBpZiAocykgcHJpbnQgcyB9Jw==
MjE6MjIsMjM6MjQsMjU6MjYsMjc6MjgsMjksMzA6NDAsNjA6NjEsNjI6NjMsNjQ6NjUsNzA=
21:22,23:24,25:26,27:28,29,30:40,60:61,62:63,64:65,70