Info() {
    local _set
    if CheckStatus; then
        printf "{\"status\":\"enabled\",\"last_blacklist_update\":{"
        if [ -f "$UPDATE_STATUS_FILE" ]; then
            $AWK_CMD '{
                if(NF < 4)
                    print "\"status\":false";
                else
                    print "\"status\":true,\"date\":\""$4"\",\"cidr\":\""$1"\",\"ip\":\""$2"\",\"fqdn\":\""$3"\"";
            }' "$UPDATE_STATUS_FILE"
        else
            printf "\"status\":false"
        fi
        printf "},"
        IptListBllistChain | $AWK_CMD '
        BEGIN {
            printf "\"iptables\":{"
        }
        {
            if(NR > 2)
                printf "\""(($10 == "!") ? $12 : $11)"\":\""$2"\",";
        }
        END {
            printf "\"_dummy\":false},";
        }'
        printf "\"ipset\":{";
        for _set in "$IPSET_ALLOWED_HOSTS" "$IPSET_ONION" "$IPSET_CIDR_TMP" "$IPSET_CIDR" "$IPSET_IP_TMP" "$IPSET_IP"
        do
            $IPSET_CMD list "$_set" -terse | $AWK_CMD -F ": " '
                {
                    if($1 ~ /^Name/) {
                        printf "\""$2"\":[";
                    }
                    else if($1 ~ /^Size in memory/) {
                        printf "\""$2"\",";
                    }
                    else if($1 ~ /^Number of entries/) {
                        printf "\""$2"\"],";
                    };
                }'
        done
        $IPSET_CMD list "$IPSET_DNSMASQ" | $AWK_CMD -F ": " '
            {
                if($1 ~ /^Name/) {
                    printf "\""$2"\":[";
                }
                else if($1 ~ /^Size in memory/) {
                    printf "\""$2"\",";
                }
                else if($1 ~ /^Number of entries/) {
                    printf "\""$2"\"]},\"dnsmasq\":[";
                }
                else if($0 ~ /^[0-9]/) {
                    split($0, a, " ");
                    printf "[\"" a[1] "\",\"" a[3] "\"],";
                };
            }
            END {
                printf "false],";
            }'
        printf "\"_dummy\":false}"
    else
        printf "{\"status\": \"disabled\"}"
    fi
}
