Merge branch 'main' into avm99963-monorail

Merged commit 34d8229ae2b51fb1a15bd208e6fe6185c94f6266

GitOrigin-RevId: 7ee0917f93a577e475f8e09526dd144d245593f4
diff --git a/features/filterrules_helpers.py b/features/filterrules_helpers.py
index 22acc7d..9d38b67 100644
--- a/features/filterrules_helpers.py
+++ b/features/filterrules_helpers.py
@@ -1,7 +1,6 @@
-# Copyright 2016 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style
-# license that can be found in the LICENSE file or at
-# https://developers.google.com/open-source/licenses/bsd
+# Copyright 2016 The Chromium Authors
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
 
 """Implementation of the filter rules helper functions."""
 from __future__ import print_function
@@ -22,8 +21,8 @@
 from framework import framework_constants
 from framework import urls
 from framework import validate
-from proto import ast_pb2
-from proto import tracker_pb2
+from mrproto import ast_pb2
+from mrproto import tracker_pb2
 from search import query2ast
 from search import searchpipeline
 from tracker import component_helpers
@@ -35,7 +34,7 @@
 # Maximum number of filer rules that can be specified in a given
 # project.  This helps us bound the amount of time needed to
 # (re)compute derived fields.
-MAX_RULES = 200
+MAX_RULES = 250
 
 BLOCK = tracker_constants.RECOMPUTE_DERIVED_FIELDS_BLOCK_SIZE
 
@@ -730,7 +729,7 @@
 
   elif action_type == 'add_ccs':
     cc_ids = []
-    for email in re.split('[,;\s]+', action_value):
+    for email in re.split(r'[,;\s]+', action_value):
       if not email.strip():
         continue
       try:
@@ -749,7 +748,7 @@
 
   elif action_type == 'also_notify':
     add_notify = []
-    for addr in re.split('[,;\s]+', action_value):
+    for addr in re.split(r'[,;\s]+', action_value):
       if validate.IsValidEmail(addr.strip()):
         add_notify.append(addr.strip())
       else: