# File lib/reststop.rb, line 58
  def self.qsp(qs, d='&;', y=nil, z=H[])
    if qs.kind_of?(String) && !qs.nil? && !qs.empty? && qs =~ /^<\?xml/
      qxp(qs)
    else  
      m = proc {|_,o,n|o.u(n,&m)rescue([*o]<<n)}
      (qs||'').
          split(/[#{d}] */n).
          inject((b,z=z,H[])[0]) { |h,p| k, v=un(p).split('=',2)
              h.u(k.split(/[\]\[]+/).reverse.
                  inject(y||v) { |x,i| H[i,x] },&m)
          }
    end
  end