Honestly, I would be tempted to move the logic for this into your Implementation (I assume you are using Adobe Launch).
In Launch you can pull out specific query strings into different Data Elements and apply logic to them.... here in Processing Rules I believe all query string values will be grabbed... so you could look for specific values in the "in line" conditions (by this I mean the "+Add Condition" that is directly next to specific line - but you can only have one rule here, and you may not be able to cover all the options you need)...
I don't know what values are expected... and since there is always the risk of Google search / Discovery / Showcase / etc adding multiple UTMs to your URLs, I don't know if you could reasonably "exclude" all potential values, and I don't know if you have anything in your cid which is always there to trigger a positive rule....
In Launch you can create a data element to pull the value of only CID and pass it to v101, you could modify your processing rule to say if "v101 is set", then "set event104" (or you could move that logic in to Launch as well). This provides a lot more control, but it is a shift in implementation.... I wish I had a "magic bullet" solution.