<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def default_scan(self, region='mainland', expected_num=20, val_thr_num=4, queue_timeout=3, val_timeout=5, out_file='proxies.json', src_files=None):
 """Default scan method, to simplify the usage of `scan` method. It will register following scan functions: 1. scan_file 2. scan_cnproxy (if region is mainland) 3. scan_free_proxy_list (if region is overseas) 4. scan_ip84 5. scan_mimiip After scanning, all the proxy info will be saved in out_file. Args: region: Either 'mainland' or 'overseas' expected_num: An integer indicating the expected number of proxies, if this argument is set too great, it may take long to finish scanning process. val_thr_num: Number of threads used for validating proxies. queue_timeout: An integer indicating the timeout for getting a candidate proxy from the queue. val_timeout: An integer indicating the timeout when connecting the test url using a candidate proxy. out_file: the file name of the output file saving all the proxy info src_files: A list of file names to scan """

        if expected_num > 30:
            self.logger.warn('The more proxy you expect, the more time it '
                             'will take. It is highly recommended to limit the'
                             ' expected num under 30.')
        proxy_scanner = ProxyScanner()
        if src_files is None:
            src_files = []
        elif isinstance(src_files, str):
            src_files = [src_files]
        for filename in src_files:
            proxy_scanner.register_func(proxy_scanner.scan_file,
                                        {'src_file': filename})
        if region == 'mainland':
            proxy_scanner.register_func(proxy_scanner.scan_cnproxy, {})
        elif region == 'overseas':
            proxy_scanner.register_func(proxy_scanner.scan_free_proxy_list, {})
        proxy_scanner.register_func(proxy_scanner.scan_ip84,
                                    {'region': region,
                                     'page': 5})
        proxy_scanner.register_func(proxy_scanner.scan_mimiip,
                                    {'region': region,
                                     'page': 5})
        self.scan(proxy_scanner, expected_num, val_thr_num, queue_timeout,
                  val_timeout, out_file)