<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def validate_signature(uri, nonce, signature, auth_token=''):
 """ Validates requests made by Plivo to your servers. :param uri: Your server URL :param nonce: X-Plivo-Signature-V2-Nonce :param signature: X-Plivo-Signature-V2 header :param auth_token: Plivo Auth token :return: True if the request matches signature, False otherwise """


    auth_token = bytes(auth_token.encode('utf-8'))
    nonce = bytes(nonce.encode('utf-8'))
    signature = bytes(signature.encode('utf-8'))

    parsed_uri = urlparse(uri.encode('utf-8'))
    base_url = urlunparse((parsed_uri.scheme.decode('utf-8'),
                           parsed_uri.netloc.decode('utf-8'),
                           parsed_uri.path.decode('utf-8'), '', '',
                           '')).encode('utf-8')

    return encodestring(hnew(auth_token, base_url + nonce, sha256)
                        .digest()).strip() == signature