duplicated block id: 1 size: 53 cleaned lines of code in 2 files: - challenge4/frontend/components/voice-mode.tsx (22:91) - challenge5/frontend/components/voice-mode.tsx (28:97) duplicated block id: 2 size: 24 cleaned lines of code in 2 files: - challenge4/frontend/app/api/session/route.ts (4:30) - challenge5/frontend/app/api/session/route.ts (4:30) duplicated block id: 3 size: 23 cleaned lines of code in 4 files: - challenge4/frontend/app/api/search_location/route.ts (3:33) - challenge2/frontend/app/api/search_location/route.ts (3:33) - challenge5/frontend/app/api/search_location/route.ts (3:33) - challenge3/frontend/app/api/search_location/route.ts (3:33) duplicated block id: 4 size: 18 cleaned lines of code in 3 files: - challenge4/frontend/app/api/create_itinerary/route.ts (5:27) - challenge5/frontend/app/api/create_itinerary/route.ts (5:27) - challenge3/frontend/app/api/create_itinerary/route.ts (5:27) duplicated block id: 5 size: 16 cleaned lines of code in 4 files: - challenge4/python-backend/app.py (0:0) - challenge2/python-backend/app.py (0:0) - challenge5/python-backend/app.py (0:0) - challenge3/python-backend/app.py (0:0) duplicated block id: 6 size: 16 cleaned lines of code in 3 files: - challenge4/frontend/app/api/get_response/route.ts (7:28) - challenge2/frontend/app/api/get_response/route.ts (7:28) - challenge3/frontend/app/api/get_response/route.ts (7:28) duplicated block id: 7 size: 15 cleaned lines of code in 2 files: - challenge4/frontend/components/voice-mode.tsx (94:111) - challenge5/frontend/components/voice-mode.tsx (100:117) duplicated block id: 8 size: 7 cleaned lines of code in 6 files: - challenge4/frontend/app/layout.tsx (24:38) - starting_point/frontend/app/layout.tsx (24:38) - challenge1/frontend/app/layout.tsx (24:38) - challenge2/frontend/app/layout.tsx (24:38) - challenge5/frontend/app/layout.tsx (24:38) - challenge3/frontend/app/layout.tsx (24:38)