func decodeArgAppendNoPlus(dst, src []byte) []byte {
	if bytes.IndexByte(src, '%') < 0 {
		// fast path: src doesn't contain encoded chars
		return append(dst, src...)
	}

	// slow path
	for i := 0; i < len(src); i++ {
		c := src[i]
		if c == '%' {
			if i+2 >= len(src) {
				return append(dst, src[i:]...)
			}
			x2 := hex2intTable[src[i+2]]
			x1 := hex2intTable[src[i+1]]
			if x1 == 16 || x2 == 16 {
				dst = append(dst, '%')
			} else {
				dst = append(dst, x1<<4|x2)
				i += 2
			}
		} else {
			dst = append(dst, c)
		}
	}
	return dst
}
func decodeArgAppendNoPlus(dst, src []byte) []byte {
	if bytes.IndexByte(src, '%') < 0 {
		
		return append(dst, src...)
	}

	
	for i := 0; i < len(src); i++ {
		c := src[i]
		if c == '%' {
			if i+2 >= len(src) {
				return append(dst, src[i:]...)
			}
			x2 := hex2intTable[src[i+2]]
			x1 := hex2intTable[src[i+1]]
			if x1 == 16 || x2 == 16 {
				dst = append(dst, '%')
			} else {
				dst = append(dst, x1<<4|x2)
				i += 2
			}
		} else {
			dst = append(dst, c)
		}
	}
	return dst
}
func decodeArgAppendNoPlus ( dst , src [ ] byte ) [ ] byte { if bytes . IndexByte ( src , '%' ) < 0 { // fast path: src doesn't contain encoded chars return append ( dst , src ... ) } // slow path for i := 0 ; i < len ( src ) ; i ++ { c := src [ i ] if c == '%' { if i + 2 >= len ( src ) { return append ( dst , src [ i : ] ... ) } x2 := hex2intTable [ src [ i + 2 ] ] x1 := hex2intTable [ src [ i + 1 ] ] if x1 == 16 || x2 == 16 { dst = append ( dst , '%' ) } else { dst = append ( dst , x1 << 4 | x2 ) i += 2 } } else { dst = append ( dst , c ) } } return dst }
// decodeArgAppendNoPlus is almost identical to decodeArgAppend, but it doesn't
// substitute '+' with ' '.
//
// The function is copy-pasted from decodeArgAppend due to the performance
// reasons only.
decodeArgAppendNoPlus is almost identical to decodeArgAppend but it doesn t substitute + with . The function is copy - pasted from decodeArgAppend due to the performance reasons only .